mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Compare commits
3190 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f79ad969a4 | |||
| 916635782d | |||
| 96ff2246fa | |||
| 1b10918258 | |||
| 11099d2575 | |||
| 52071831de | |||
| a133ce4714 | |||
| 608b04ca26 | |||
| 2b6ad83b36 | |||
| 0b9dc3c296 | |||
| 47e0ccbe29 | |||
| 5d720e75f5 | |||
| ad03ae0390 | |||
| 90d709972d | |||
| f77d3440f6 | |||
| 1b84274673 | |||
| f601d95d27 | |||
| c16d63c011 | |||
| 4e0e0265d0 | |||
| bbf661e74e | |||
| e5253bbf35 | |||
| c2591eea02 | |||
| cf0e9febe5 | |||
| a3696b07df | |||
| 32e1be7493 | |||
| 46a37c9199 | |||
| aea4996a45 | |||
| 28257fca25 | |||
| f846881e88 | |||
| 961e955ee4 | |||
| ac7569bc51 | |||
| 1cd49c52d2 | |||
| 8338ff75c8 | |||
| a215476303 | |||
| 7e765011b8 | |||
| c2e4fcfebd | |||
| e649ecb7a0 | |||
| fc45ed4aaf | |||
| 5c6956b5d5 | |||
| 8a728e2ec9 | |||
| 9a515fc99e | |||
| 71ab0560f2 | |||
| 255c8cd547 | |||
| e36b2bcd93 | |||
| 79aede17c6 | |||
| 23afcb430c | |||
| 5d4d2d817c | |||
| 8a2234d2b5 | |||
| 3526b286c3 | |||
| d0b9a8e052 | |||
| 497ec9b2f1 | |||
| 7a4353bc4a | |||
| 0b2fa174d5 | |||
| 9b0cd732e3 | |||
| 062e410efc | |||
| 1faa2c3f77 | |||
| 70c7635af6 | |||
| 7ae87cf15a | |||
| c73e91094f | |||
| 98df4659b5 | |||
| b2e2b06fc2 | |||
| a039a36b8f | |||
| d6c4b2b95c | |||
| eb34cb7e23 | |||
| bc26f0bda4 | |||
| 210d5ef30d | |||
| b174c2c601 | |||
| fa075d0224 | |||
| 4a6c0e340b | |||
| 65604849ac | |||
| 276de3c7b0 | |||
| 0ccd31865d | |||
| ab2f79bd19 | |||
| 33ac9e4f5e | |||
| 7f1e2370d2 | |||
| a2aec43d22 | |||
| aaae4d7728 | |||
| 2d1e08fbd1 | |||
| de4e27f5d7 | |||
| 60e79db7b0 | |||
| 00114714d1 | |||
| 62f98a8cc5 | |||
| c6d9a22d16 | |||
| fab1c09db3 | |||
| 1911f11e51 | |||
| dfec7cb0bb | |||
| 8f11112c43 | |||
| 5071a61692 | |||
| bd2736ab09 | |||
| 04196de46e | |||
| e4c334e84c | |||
| 6214f187e0 | |||
| 55857b803a | |||
| d1c68f38d7 | |||
| ab80f5e399 | |||
| 457e4dadce | |||
| f556fcf3fc | |||
| fd88dbd7df | |||
| 97f440ebab | |||
| 3dcc8e916d | |||
| a1a7b903b6 | |||
| a9a7c3fb22 | |||
| c76f50a2f8 | |||
| 55c2b426f4 | |||
| c5729090b3 | |||
| d3a98c0164 | |||
| 2bd9d2fdf3 | |||
| 7065c1a563 | |||
| 866a36448f | |||
| 02155b0b97 | |||
| 8e15985b83 | |||
| 96b5eae285 | |||
| 898844453d | |||
| e9e87d89c9 | |||
| 5f31790f7a | |||
| ff9884b73d | |||
| 27bf69fd98 | |||
| e71d04bd9d | |||
| 3b802bac97 | |||
| 2129ed7492 | |||
| 96a7298071 | |||
| da6c775fb8 | |||
| a445b973c2 | |||
| 8f5a7218b8 | |||
| c4ea1ee198 | |||
| 4d678fc7a7 | |||
| 738fea25e6 | |||
| 349bed9dbc | |||
| 032ec1dffd | |||
| b04bd26758 | |||
| d67a10268a | |||
| 0d1877efb7 | |||
| d43ff48bc6 | |||
| e02c6e81be | |||
| d23d795160 | |||
| 2b5ffd05a2 | |||
| e297f32b31 | |||
| 0f64eadedb | |||
| 13d1d3d3e9 | |||
| 1204a9a501 | |||
| 8e7e317e4b | |||
| 05ffb10eaa | |||
| b1474a84c4 | |||
| 454ef30d56 | |||
| 0570672f95 | |||
| cf8b06f9c2 | |||
| ba77b4632c | |||
| 40c65b46be | |||
| a4ec604b1b | |||
| 9ae3d1623c | |||
| 551d356b79 | |||
| 931e81a8a0 | |||
| 64a1fd5e7b | |||
| 25b61c9838 | |||
| d1dde6f1a0 | |||
| 57427336fa | |||
| c2ef4a871c | |||
| cd1e176b1d | |||
| de1339af79 | |||
| 2171b5530b | |||
| 1a6a9b5cb5 | |||
| 3001b0b6d2 | |||
| 2011bf6464 | |||
| f70be27826 | |||
| 27b407ba48 | |||
| ee22dd9b26 | |||
| 3941d51d1e | |||
| be7a75c7c9 | |||
| a8e5a98d5f | |||
| cac8df19c1 | |||
| fe04849ca4 | |||
| 419437b1fa | |||
| 6e78bc880d | |||
| 29ec077815 | |||
| 8a054f5cdf | |||
| 4310394fc7 | |||
| bc7aa9d328 | |||
| 1cd73fd770 | |||
| 11ddc810d7 | |||
| 69ff1ca505 | |||
| 848a1762f9 | |||
| 492d86393e | |||
| a70e9c63bc | |||
| a90cdc2cdb | |||
| 37d77e458b | |||
| 2b1db43259 | |||
| 5f80804661 | |||
| fba86b7071 | |||
| 539d067dc4 | |||
| 54b8c99431 | |||
| 69e0524960 | |||
| 36810c9127 | |||
| e4fa81b16b | |||
| 3c2f982bb2 | |||
| c6930b4ffd | |||
| abec59d9bf | |||
| 86edbdf9a5 | |||
| b7fc8748d2 | |||
| e9a116c1c8 | |||
| cd3b39581d | |||
| 24e04314d8 | |||
| 0368fa0f36 | |||
| eb169b49ed | |||
| eaf3b7fd9f | |||
| cba1724045 | |||
| 77529ecc7e | |||
| 902f7a33d1 | |||
| 48ae9df1cf | |||
| 06668af052 | |||
| a6e7d21f80 | |||
| 84d1d8a68d | |||
| 5890849e42 | |||
| 086c0e71cc | |||
| 3404bea247 | |||
| a5756e42ce | |||
| fb2e149f95 | |||
| 2c0c356371 | |||
| a7c9bf8f1d | |||
| 7b1715cfcf | |||
| 22b709b4d7 | |||
| f0ffe097da | |||
| 27c918d810 | |||
| de8746898a | |||
| 7f2e1ed97d | |||
| 4cd3b71c07 | |||
| 791c786bf7 | |||
| 41a358764f | |||
| 3d077122c6 | |||
| f3a393080c | |||
| 71553d5aa4 | |||
| e97569a4bb | |||
| cd56cb6dc8 | |||
| 162e96cebd | |||
| 6d29cda8ea | |||
| f215c343b4 | |||
| f3b8e8158a | |||
| 9d31985ae0 | |||
| 28c99c4d4f | |||
| b31ceac8c9 | |||
| e9a17f9593 | |||
| 35b301b382 | |||
| fdb49b7b69 | |||
| 7f47ac262c | |||
| 4325e5f9d3 | |||
| 0e604235fb | |||
| 4551f1eadc | |||
| eb5180471e | |||
| 796190157a | |||
| 297f963990 | |||
| fdf39011dd | |||
| 044c8b59c2 | |||
| f69aab7562 | |||
| d79a6977dc | |||
| aa20538015 | |||
| 36b6e4b5ff | |||
| 4eae0651d6 | |||
| 2fd4e80650 | |||
| 99fee71d3a | |||
| 291dbbe0bb | |||
| 8a49166605 | |||
| 8d649c370b | |||
| baf917818c | |||
| 585d2e5a4a | |||
| 6ca66fa683 | |||
| ddc20afc2c | |||
| cd7f4e5c1f | |||
| d5dbf1b8eb | |||
| 676cdaf04a | |||
| 3cd9e6d397 | |||
| ab6424731c | |||
| 3870d16cbc | |||
| e802ed01e1 | |||
| 74bac4cec6 | |||
| 85a5dcd7ee | |||
| aeaa86c88f | |||
| 0da7b35757 | |||
| 690a75022c | |||
| 5d57702985 | |||
| 2d0baac6fe | |||
| b1c9245223 | |||
| 3685bb311c | |||
| 4673d68387 | |||
| 98175e438f | |||
| 8d01de861f | |||
| 5aa6386249 | |||
| 2341689208 | |||
| 6823e0e241 | |||
| 31b5771a19 | |||
| c1b84ee96f | |||
| 237d20eed2 | |||
| dd988ad3cf | |||
| c609c616f0 | |||
| 93cb4b1be3 | |||
| 4b1190f54b | |||
| 664c14b894 | |||
| dbb4b67491 | |||
| 1c10b51ec2 | |||
| a280d5822c | |||
| bf6747d362 | |||
| b96ab6bd1f | |||
| 1d61dba795 | |||
| cc522274b6 | |||
| 7bf7e80100 | |||
| 528e3e3e15 | |||
| d69ff8e495 | |||
| 59153b1a38 | |||
| f1499aeae4 | |||
| 657d04adb2 | |||
| c46f81630d | |||
| 55d5573e17 | |||
| 2aed22cd6b | |||
| 8796dacf93 | |||
| 24fc302a32 | |||
| 5dbfc32c3e | |||
| 90283fab8a | |||
| d809afc62a | |||
| 5a7ed95b7e | |||
| eb73c4592b | |||
| aa55140bd7 | |||
| b4f7005f7b | |||
| c085828e02 | |||
| 147fd5de04 | |||
| e38498ecba | |||
| fbea298e13 | |||
| e0eecd44cb | |||
| a214c3a7cd | |||
| ce07772680 | |||
| f38ddc22f1 | |||
| b2e5f6a039 | |||
| 86dc8b5eb0 | |||
| 83060ec8a0 | |||
| fab394f33f | |||
| 6506542e35 | |||
| d5fa2f3070 | |||
| 73116f6375 | |||
| e2d2aba8e5 | |||
| b4820e0e05 | |||
| 46ab617a67 | |||
| 3541a01301 | |||
| bddf255598 | |||
| 9b58a31759 | |||
| 6d27258090 | |||
| 0507f52a84 | |||
| 2203b9a98e | |||
| 96380b314e | |||
| 8502c3cea3 | |||
| c1673b148c | |||
| 04c84c7a9a | |||
| 53dfc2f2d1 | |||
| 2e77b8ef2f | |||
| 62d6f365cb | |||
| eb67c01e34 | |||
| 0a72a6d1c8 | |||
| d7d64cbead | |||
| 519e950218 | |||
| fb3152fe65 | |||
| 4130df7b6c | |||
| d529009e26 | |||
| 5362ad02db | |||
| 98e3fc20d5 | |||
| 15f10641aa | |||
| 572dfd97ce | |||
| d6022efefb | |||
| de0146e007 | |||
| 837b4d5d9b | |||
| 472677cc61 | |||
| 641b77da3b | |||
| 583eb8d41e | |||
| ce17a08b17 | |||
| 6cf6013fd6 | |||
| e5812bb7c7 | |||
| 239fb5115a | |||
| 7f22fa5ce2 | |||
| 712014cfd8 | |||
| a2ac053f85 | |||
| 446b8da69a | |||
| 27fbc6fa06 | |||
| cc160a50c8 | |||
| ce3aa935d4 | |||
| 8828e9c678 | |||
| 10365d431a | |||
| def2fb7f85 | |||
| b77268485d | |||
| 21046acdd7 | |||
| 4a86601909 | |||
| 246e62242c | |||
| 9bddef6976 | |||
| 5f9526d4a0 | |||
| f382bc9bc8 | |||
| 9363fb6e68 | |||
| 566c44a74b | |||
| a327e4e1fe | |||
| 5e37534f4f | |||
| e1acff706f | |||
| a87e1d3467 | |||
| 7dc713d4fb | |||
| 958badadf9 | |||
| 30f804bfd9 | |||
| 5399478419 | |||
| b0fe9d0c5b | |||
| adfdac39ef | |||
| 9edbe9fee2 | |||
| 502f612aa2 | |||
| eb5eb69be3 | |||
| ad3faa301d | |||
| dba6f3c705 | |||
| a44a287ca9 | |||
| 1b2a57a220 | |||
| 663d780b77 | |||
| 0f929b4a88 | |||
| 92aa553740 | |||
| f7e0d6e004 | |||
| 56fb02d113 | |||
| 8958e6e28b | |||
| 624ed0e449 | |||
| 46a71964d1 | |||
| 3f1cc2707d | |||
| 566b612613 | |||
| da33dda7dc | |||
| df7390ad2a | |||
| cc0baaafec | |||
| 810f7dc592 | |||
| 783aa4c7be | |||
| 16280f1957 | |||
| 6593ff5fac | |||
| 47679d47ba | |||
| 524f4cc285 | |||
| 4a74b4a934 | |||
| 0caa98998f | |||
| 01d99fec57 | |||
| 919ab72ece | |||
| d7d7596b10 | |||
| 12ef2e6510 | |||
| f03a7584dc | |||
| 782c8aad32 | |||
| 6cf47b33f4 | |||
| 1dd6e91180 | |||
| 92742e8b69 | |||
| d15762cb36 | |||
| 5fc0a26c59 | |||
| 12e2413944 | |||
| e51258029d | |||
| 78dcd9065c | |||
| 404139b8d0 | |||
| 86ac3febbb | |||
| f3da6a7f1b | |||
| 7edc38716f | |||
| 4608620da8 | |||
| 7307376d43 | |||
| 244dc8e33f | |||
| 00d9ed438b | |||
| 93f935237d | |||
| 5029172e12 | |||
| cb52f87188 | |||
| b3cbcbf7ad | |||
| 8ee5b43ce0 | |||
| d2dbd64a21 | |||
| 2fe7f309af | |||
| 1cd225e279 | |||
| 71226b6b37 | |||
| 6a1e2a8e05 | |||
| 27cc65a08a | |||
| 07f1c63459 | |||
| 0f50633f87 | |||
| 37daa3f56a | |||
| bae1da1f1e | |||
| 53a33cfb19 | |||
| 7e515862a5 | |||
| 194f2f6b26 | |||
| b2665a2e68 | |||
| 4fa833bac2 | |||
| 6275bc8fa2 | |||
| 34afdf71e3 | |||
| 968002fb2a | |||
| 6035597060 | |||
| 5e8e20fbed | |||
| 6430a9394f | |||
| 513301aeae | |||
| edd5d6aead | |||
| 4b0ca24396 | |||
| 14541b9ee4 | |||
| b3b0a158a7 | |||
| d36b6038a2 | |||
| 45e89465d1 | |||
| 4cef6d3f68 | |||
| 9ecee62d94 | |||
| 8f5baab348 | |||
| d090b6cd70 | |||
| b8b98795b4 | |||
| 3fb845fc97 | |||
| e0c0166faf | |||
| 64308d7cf0 | |||
| 06d0754982 | |||
| 9af65f4e39 | |||
| 8085865daa | |||
| 687836b781 | |||
| e7854cdf40 | |||
| 9a91a1695b | |||
| 6b8804ec27 | |||
| bbe72674e2 | |||
| 12c93209a3 | |||
| 101b79ea49 | |||
| abab3dc3d6 | |||
| 4f19fca2ed | |||
| c667dd6624 | |||
| b1831a0467 | |||
| da3a6b3189 | |||
| ab849cc03d | |||
| 81e03f64db | |||
| a267039f5b | |||
| 75ac8dae17 | |||
| 0aed94b748 | |||
| 5af4ebba9e | |||
| a8f0c12d0f | |||
| e5351899c5 | |||
| cc7644bc36 | |||
| f6cc44d386 | |||
| 6a61318513 | |||
| 0d5a478949 | |||
| aee82236cc | |||
| 559f274677 | |||
| fa094e152c | |||
| 13c6b18c3f | |||
| ecd3aeed88 | |||
| d2f8669552 | |||
| 8ba3ab030d | |||
| 503f916d54 | |||
| 7aca8b1d7b | |||
| f28221336c | |||
| ed07e856e4 | |||
| 9b5c153e64 | |||
| c937c57160 | |||
| 1dab4b08d5 | |||
| 2db34852ea | |||
| de62b3b383 | |||
| a83cdd6e7f | |||
| 805f1d1214 | |||
| 3f1960eee3 | |||
| 1e7c85d310 | |||
| 6fd694af1f | |||
| 3c570883e0 | |||
| e8a134c14a | |||
| bb85447946 | |||
| 703893e3f3 | |||
| 94cbb259cf | |||
| 8b4aae06e6 | |||
| e025ec2b8e | |||
| 3b7454007a | |||
| 3f446a7e47 | |||
| 8b45546ebd | |||
| 1ce6307a56 | |||
| a989422bca | |||
| acce41ba3e | |||
| 88bab0600c | |||
| 14cb9c60c1 | |||
| e2aad28114 | |||
| f60727c480 | |||
| a757b69f03 | |||
| 31c852f4f0 | |||
| 4264dfdf67 | |||
| 49095378d7 | |||
| 057c217457 | |||
| 558c0ea251 | |||
| ffbc5d2baf | |||
| e756e269a4 | |||
| ddb082e106 | |||
| 08b93a69af | |||
| 12960e474e | |||
| ad0b19caf4 | |||
| aec81dd7dd | |||
| 875eca3fc0 | |||
| cb30e1362c | |||
| 70e07e3ce1 | |||
| 6ea4d86ab2 | |||
| da26208a1f | |||
| 75b406e010 | |||
| a3491ee217 | |||
| 133d86fff5 | |||
| 9d2bd72cfd | |||
| b7bd889049 | |||
| acb46e412d | |||
| 4be596506d | |||
| 420d8170dc | |||
| bdfcbe65bb | |||
| c3d5a5a886 | |||
| 52d7a1d14f | |||
| 4564f4302a | |||
| 9e29ea719e | |||
| d7ccf0b95e | |||
| 15c931783f | |||
| 0fd3ea574e | |||
| a7137cfc4d | |||
| 0c5d24171a | |||
| dffe7aa55e | |||
| 42d7ee8d8f | |||
| 53814fddbf | |||
| 3ecd57c8b4 | |||
| 69a40508b7 | |||
| 71d875e0b5 | |||
| af2f11bff2 | |||
| 80f2dce1b3 | |||
| 70225b2ca6 | |||
| f44d81f706 | |||
| d70d4d50f0 | |||
| 4a898653ae | |||
| e1168478cd | |||
| e27a20f9ae | |||
| d89679d394 | |||
| b0a891c7ba | |||
| 2764479c11 | |||
| 5be41c5892 | |||
| ad3a1dbd8f | |||
| 2da365690e | |||
| c2f6f2d1b5 | |||
| 21470d1711 | |||
| 58d3c2a914 | |||
| ed3cfd6c55 | |||
| de35674fdc | |||
| a36e31ab0f | |||
| 24c136c1e1 | |||
| 77132ec0a2 | |||
| b5bec4339f | |||
| 0daf5042d9 | |||
| 675b6a2acc | |||
| ed3a8f7916 | |||
| df48636232 | |||
| 445850393f | |||
| c9f2320e39 | |||
| c66424204d | |||
| b607481860 | |||
| fb6f0ac83d | |||
| 7da913775f | |||
| 941ec4b354 | |||
| bda5c3bbb9 | |||
| 32d0357e1f | |||
| 6f18cc2c60 | |||
| f936175708 | |||
| 96d5940126 | |||
| 6803651681 | |||
| 5ea8a3ba5e | |||
| a090c47c05 | |||
| f83cbee774 | |||
| 23d500eca4 | |||
| addabe9fca | |||
| a8d819694d | |||
| 5a3a5a37ab | |||
| f1fe7ea410 | |||
| d39df6d82d | |||
| f4326c0cd7 | |||
| be08660d01 | |||
| 33890472f3 | |||
| 0f9730814b | |||
| b28acbabe8 | |||
| fbb533200f | |||
| f5f2a38c7e | |||
| 71768d09a6 | |||
| bb0d3e72e9 | |||
| 780c66ef5b | |||
| 4e63672518 | |||
| d985f924a3 | |||
| 4a587e96d4 | |||
| aa490d4dd3 | |||
| 99a4f2f5df | |||
| 515cde9544 | |||
| 8959a61c33 | |||
| 8f368ad64c | |||
| 3e1f2135f5 | |||
| ce7eec890b | |||
| ab4eba01a3 | |||
| 968b8b6ec6 | |||
| 50db6f16cb | |||
| 8f161b09ee | |||
| 1d118aa59d | |||
| 60a5242758 | |||
| 3b7ea8504f | |||
| 15e001ee35 | |||
| a69bff9e4e | |||
| a20e5fe003 | |||
| 2f20d4a3c7 | |||
| 0c91d6b648 | |||
| f4eb7ac3d0 | |||
| d3231b89ec | |||
| 12f6d9407c | |||
| 28ab074cbe | |||
| 13d4f7e8b7 | |||
| 200fba5615 | |||
| b85f72b992 | |||
| 1d25169cc6 | |||
| e36a0296c8 | |||
| 0960534d01 | |||
| 8887978540 | |||
| 1d60f40d03 | |||
| 613a3a8507 | |||
| 04fdec16ca | |||
| dd1bbb7c01 | |||
| 5acf726115 | |||
| f1e45a5ab9 | |||
| 9f77442c23 | |||
| 9b5fbdfa96 | |||
| 42db0d787e | |||
| ce87bb8461 | |||
| 55f026bac4 | |||
| 117131b03d | |||
| 56521b789f | |||
| 6c4b0c9c86 | |||
| c785e7f3a7 | |||
| ae26d32681 | |||
| ed962804e3 | |||
| eb323157f2 | |||
| dd7573a745 | |||
| e15a1a92fe | |||
| 9cee4a6696 | |||
| 63b2ddfff3 | |||
| 08073f5c08 | |||
| b49d7331ff | |||
| 58fc9d7bcb | |||
| 2f553229a9 | |||
| 6d3729a132 | |||
| 7132984ebf | |||
| 0cad3436fd | |||
| bb8c58c84b | |||
| 8aa54ed2e2 | |||
| efb1511c59 | |||
| 34e9d98bee | |||
| b25c3d3022 | |||
| 2de73e8c02 | |||
| fb04ac8a69 | |||
| a4b767303d | |||
| 81535011fb | |||
| a97e7ef52d | |||
| 4b86a6384b | |||
| 889721fd7e | |||
| 96f6c8a510 | |||
| 1df71c6504 | |||
| f354046cc5 | |||
| b27a36246d | |||
| 74615f508e | |||
| 204696035d | |||
| cbd5d75532 | |||
| d06c4a5104 | |||
| 26be4d9b20 | |||
| 9d47eef3e9 | |||
| 38b693c7fd | |||
| 6c146707f0 | |||
| 40d2f8d11d | |||
| cd0c129afb | |||
| 30a36f315c | |||
| d77af73a75 | |||
| b6cdf0e002 | |||
| 63cd907eba | |||
| 56e02231db | |||
| 42518d300e | |||
| a2a8d85cd4 | |||
| bb1dc3c8b4 | |||
| 5750ef2687 | |||
| 083304c9a3 | |||
| 290531e5d4 | |||
| 9b963ae9cf | |||
| 8e70be5415 | |||
| 8beb92191c | |||
| 89fac276c1 | |||
| d322c08d98 | |||
| e175b310f5 | |||
| fe5f52b7c2 | |||
| 7df8eacf0e | |||
| 5dca22470f | |||
| 3d71c4e609 | |||
| a9e7c6794b | |||
| b9c467142f | |||
| aca965565e | |||
| 65a203838b | |||
| 08c9874687 | |||
| e273f78465 | |||
| 8301f402c5 | |||
| caab9eae47 | |||
| f5282fdc98 | |||
| d560fcc0a8 | |||
| fd6259fed4 | |||
| 9e95aece26 | |||
| 6f93961f67 | |||
| a2c4b69bae | |||
| 9ca7cc5008 | |||
| 2e952f0550 | |||
| 83ba081ebb | |||
| c9d77f53da | |||
| 93caa36664 | |||
| cb27880fd0 | |||
| c591ed20cc | |||
| f94e98e09d | |||
| 029908f8a1 | |||
| 56c3301e54 | |||
| 23bf5cb929 | |||
| 71929b726e | |||
| 8669c75795 | |||
| 35cbbe2fb1 | |||
| a0970d0963 | |||
| 14756b05b7 | |||
| 316c85f0ce | |||
| 0b1c7f2642 | |||
| b0d0186dd4 | |||
| d72d114f19 | |||
| 98798e39c6 | |||
| 82b5b08dfc | |||
| 9205100eb3 | |||
| af318a7c79 | |||
| 8f043e88fd | |||
| 212c1466f7 | |||
| 046e54f3f5 | |||
| a0cf3f13c3 | |||
| d400135f60 | |||
| 62f1eb1967 | |||
| 856933b884 | |||
| eab909f76b | |||
| 30799c7b8c | |||
| de4c288490 | |||
| 3e06b085b7 | |||
| 3344987b6e | |||
| c3246cf089 | |||
| 07dd157167 | |||
| 50870e499b | |||
| 59cad91a22 | |||
| 8032ffa3fd | |||
| a6e490f70a | |||
| 1eaefde012 | |||
| e72ad2def4 | |||
| a3d82f82de | |||
| cfce809885 | |||
| 433656c178 | |||
| 760242fa4d | |||
| 40033e4482 | |||
| cb90b1d92a | |||
| b01dd7eefc | |||
| c257b901ac | |||
| 1873515006 | |||
| 34a2091dfc | |||
| cb76784260 | |||
| 4982e1e1ed | |||
| c087e9e9e4 | |||
| fef9e77478 | |||
| 4716b633e2 | |||
| 4dae14c0b0 | |||
| 798c8ee702 | |||
| f6974d1064 | |||
| 78289248c8 | |||
| bdbe8e811c | |||
| 5a0c45a87d | |||
| 13316ce210 | |||
| fb5ae0133c | |||
| 3c7cf1b061 | |||
| 31064ad4f2 | |||
| 579ac545a2 | |||
| f5c983c280 | |||
| 39cedff4ef | |||
| d22975e7e6 | |||
| 5dceb4b7db | |||
| 226a04adb6 | |||
| 8e055fba82 | |||
| 108ff55a61 | |||
| eaa3aa0e96 | |||
| 42ce6f11a5 | |||
| d1d2a13ea0 | |||
| d82cca8f9f | |||
| 99c2f645f4 | |||
| c7d7063297 | |||
| 4ee24be05f | |||
| 7c913592fd | |||
| cf16340335 | |||
| ed30c40f93 | |||
| 34b5b7c973 | |||
| 5333ce006d | |||
| 438989724f | |||
| b2c308fc71 | |||
| 70f2a11c75 | |||
| 1475162206 | |||
| 211ca6c9f7 | |||
| 1b5ec0a65c | |||
| c80406cee4 | |||
| 3a582632f2 | |||
| 0cadeb36da | |||
| 594737c899 | |||
| 238fc8969d | |||
| d90357944e | |||
| 1878b8fc33 | |||
| e82fd3c949 | |||
| 12b733c7ee | |||
| 482a9565eb | |||
| 636389cf04 | |||
| 05d0e8980f | |||
| be0cbaf0a2 | |||
| 9a07b8d4b2 | |||
| 1fc91b3a3c | |||
| ac3481ca16 | |||
| d4a6acac39 | |||
| 35c93fcbe9 | |||
| dfcacb08c7 | |||
| 00b306a24c | |||
| bb287c0ccc | |||
| e43158c3c7 | |||
| 722e3d307c | |||
| c1bda3059d | |||
| 52269454c6 | |||
| bdb90074b0 | |||
| ee27029c26 | |||
| c87c8f2b4f | |||
| 3ed7ceb243 | |||
| e489ec84de | |||
| 49e361476d | |||
| 029ea786ef | |||
| 3159d88bca | |||
| ac6c9e0d0b | |||
| 7c34ac7533 | |||
| 928f64d821 | |||
| 697c63f74e | |||
| aee00012ab | |||
| fd8bc44647 | |||
| 1f61877c5f | |||
| 9fbba9f2a8 | |||
| 1ef57ca394 | |||
| 8c1853c65d | |||
| 165990c135 | |||
| 0fff666352 | |||
| 7fc15de8ce | |||
| 597326bddc | |||
| 4caed2c4cd | |||
| 3025d2281e | |||
| 5176d58940 | |||
| 2f6aebcad5 | |||
| f6b0d35e6e | |||
| c63c4ea729 | |||
| 0df69b205a | |||
| 52621c8bc7 | |||
| bafc91dd67 | |||
| beaa3b4494 | |||
| 1c8f05e0ce | |||
| 0dfbf40855 | |||
| 81b6f331c6 | |||
| d596a09c3f | |||
| 0655ef49e5 | |||
| 27ea7c9ffc | |||
| b5197ee222 | |||
| 457cfc29ed | |||
| 179ad9a61e | |||
| 979f303d57 | |||
| fd3bfc0f5d | |||
| fe1e498125 | |||
| 0c2b6c7ac9 | |||
| 0b510a8d93 | |||
| 784fd18470 | |||
| c5bee8701d | |||
| b4e130c4d7 | |||
| ecb60a3452 | |||
| 70cfa996d1 | |||
| 18289bfdb4 | |||
| 43fcaadcb1 | |||
| e48072bcae | |||
| 6b82644d77 | |||
| d3914f513b | |||
| 1d0e88553e | |||
| 5c202eece6 | |||
| bd32484a1e | |||
| b4ae30d5b2 | |||
| 1ff71c824c | |||
| 7482463667 | |||
| d0cda627dd | |||
| 7df0bcea7f | |||
| 85b3ccafc4 | |||
| 43429aa84b | |||
| b19bce8d30 | |||
| be8771f21b | |||
| 91af8c2b62 | |||
| 9917f7907d | |||
| 65d6a6f56d | |||
| 7e79a38520 | |||
| 55eb92bfc1 | |||
| bc8a66ccd7 | |||
| d0f7c93970 | |||
| 5ff9863b8d | |||
| fcf2742de3 | |||
| 8985173d4d | |||
| 287f3b39e0 | |||
| a1b4f43735 | |||
| 546a3e8a6c | |||
| 7a068930a8 | |||
| fdbc9334ca | |||
| d04e2158ca | |||
| 36ce9c0be6 | |||
| 7abf16abe3 | |||
| 537eaf52fa | |||
| 94ea9c6d87 | |||
| 2d7a8a5b75 | |||
| 34407c4a1c | |||
| dd85d4263e | |||
| 8f534e9bff | |||
| 2f15678363 | |||
| a51a953d83 | |||
| 236667333c | |||
| 8d42cf008d | |||
| b52466e4c7 | |||
| f422a6ed01 | |||
| 8962897eb7 | |||
| f99a3f9d74 | |||
| b908cb4d85 | |||
| 8f5d21945d | |||
| d19d447532 | |||
| b5431fab8f | |||
| f40e1997c9 | |||
| 97bde00af7 | |||
| 998ef28451 | |||
| 344fe41905 | |||
| c46aa7a777 | |||
| ce2fb1d062 | |||
| 4f3879ae71 | |||
| 5e2e67db6e | |||
| a6968ce575 | |||
| 562e6a1bf5 | |||
| 15a3df0c50 | |||
| 1035103910 | |||
| 17fdfc6741 | |||
| c3143cbd79 | |||
| 89afbf2bc1 | |||
| 0949f112d0 | |||
| 17e3a5d5cc | |||
| 90f659326b | |||
| aadd92f861 | |||
| e2d192a67d | |||
| 8e4b9bd04f | |||
| d3db4b428f | |||
| 71afd00742 | |||
| 5010aa346d | |||
| 8ecbc5b505 | |||
| 474242d241 | |||
| 04ea2ce07d | |||
| 96fa62ac80 | |||
| 818d813b98 | |||
| 1429fd87c2 | |||
| e91e1d7f71 | |||
| b542bae8fc | |||
| 9a6e7e2dc3 | |||
| cede0396c5 | |||
| b78ad9e751 | |||
| b9bfc60806 | |||
| 88b73c18a2 | |||
| d75f7675d5 | |||
| 23d217004f | |||
| 00de3e3d37 | |||
| 7ae49de02a | |||
| dc358d4244 | |||
| f93c317e7a | |||
| e258e9ba63 | |||
| c8b6532510 | |||
| 81e6c62c5a | |||
| 289fbd68b6 | |||
| 82b0045a98 | |||
| 8690a92afd | |||
| 6033e40cc9 | |||
| 99f7544762 | |||
| c58e69f4d1 | |||
| aff18b27d1 | |||
| 223a26df7f | |||
| c01c52da81 | |||
| 1f6b4b23e0 | |||
| 3e7732e2b2 | |||
| 6a8c6827a0 | |||
| 1f6707479e | |||
| a2eccad79e | |||
| 8bc6926391 | |||
| 01636d6f32 | |||
| 19e4bb58e5 | |||
| 2bcb58703c | |||
| 92033834cd | |||
| e05b881856 | |||
| e370c81b3b | |||
| 446f47a5e8 | |||
| 6724f57810 | |||
| cb4d5363f4 | |||
| f4dc89c7fe | |||
| 5594f48bdc | |||
| f0a65c6553 | |||
| 92119b07b7 | |||
| bb66fe9fc5 | |||
| 3807ac3bc2 | |||
| 08ef7e79a2 | |||
| 1308f051e5 | |||
| 1aeaa320a9 | |||
| 244ee7a2bd | |||
| 0469fe7b59 | |||
| 9977c2f4c2 | |||
| 0b1fa41c21 | |||
| 58f2b9d3f0 | |||
| bf1bcd40a2 | |||
| c1493bf1f4 | |||
| d7f080283b | |||
| 6d0da9364c | |||
| 981f48c49e | |||
| a378aa92b1 | |||
| 3fdefb4952 | |||
| bbeccbca46 | |||
| 549b8353e9 | |||
| 8ea92919c0 | |||
| 8c12c53e6e | |||
| a1b56ad817 | |||
| 63feee4774 | |||
| ad10681ba0 | |||
| 7e56083ec9 | |||
| 8f74b9362a | |||
| 54261fd1a1 | |||
| d517e8cf2a | |||
| ed87cc0047 | |||
| 289575b9cd | |||
| 4213824325 | |||
| 995b87e3bc | |||
| 75804f709e | |||
| 2e820186b5 | |||
| 31158a5f5b | |||
| 536337f50d | |||
| ad75893298 | |||
| 7375130f0f | |||
| 387f411ae0 | |||
| 2ed60fea2b | |||
| f9651c90ee | |||
| ab4ac2b7c0 | |||
| 1736e169cf | |||
| f640bef308 | |||
| fa16a17aec | |||
| 03fc3a4426 | |||
| 315204b20d | |||
| 6a099ce6d4 | |||
| 9fbda8fb64 | |||
| e59dba4519 | |||
| c6fb020fda | |||
| 95c844630e | |||
| c5c6d3d5dd | |||
| 7a6c2b058d | |||
| 2281e35cda | |||
| 2cf3c85d67 | |||
| cb77881c6a | |||
| d53184868d | |||
| 95b84f314f | |||
| 7859d6ef03 | |||
| e7b960c74d | |||
| 0a65c6b5f4 | |||
| ebbbfe51a5 | |||
| 7cf83f1d85 | |||
| 9a3fa3ef2a | |||
| 469c077079 | |||
| d29966342b | |||
| 31b326da5a | |||
| bbb8b19ee3 | |||
| 162b520374 | |||
| 803d216e53 | |||
| 2703621d01 | |||
| 38709cbc15 | |||
| 380a4c2e1a | |||
| 52c72bf6a2 | |||
| 42b155cd92 | |||
| d8f57d3b9b | |||
| 8a5af04247 | |||
| 4347807ca1 | |||
| 1b835cde13 | |||
| 3b5673220e | |||
| 877efea69d | |||
| db6c71a1e6 | |||
| 6e000bf3f4 | |||
| fcaf871c48 | |||
| 61d953d370 | |||
| 33f065f649 | |||
| 072b887a21 | |||
| e0e4d2f6cb | |||
| 24e08cee67 | |||
| c2ba4614d4 | |||
| ae7fa7d1aa | |||
| 31ccfafc84 | |||
| 816d91b328 | |||
| 2f82b50cfc | |||
| de49cc012f | |||
| 09370f1dcc | |||
| 13a192b77b | |||
| 6b194a1e97 | |||
| a34aa4109a | |||
| 235bd4af94 | |||
| 65d502d36f | |||
| 0a26bab1a2 | |||
| 4d538e3439 | |||
| 26e21b5207 | |||
| ae8807041e | |||
| ba0359e3d1 | |||
| e664bc77a0 | |||
| 975f73115d | |||
| fbf77242de | |||
| 54b3fc1866 | |||
| e49f1a481c | |||
| 76bcd744e0 | |||
| 1f9078d5fb | |||
| dab91f313e | |||
| 34c4fbee25 | |||
| 274976815c | |||
| d152746a58 | |||
| 66dbc15f86 | |||
| f9876cfaf5 | |||
| fed80cf2fa | |||
| 68e5ceb928 | |||
| ae4ecd4667 | |||
| 39fd527e89 | |||
| b27a22038a | |||
| b6ec92a557 | |||
| 5c44484c24 | |||
| 03a278a5f1 | |||
| 18a9a92f4e | |||
| f42206b55f | |||
| f78048d617 | |||
| 52728d1ef1 | |||
| d4a4e91d5a | |||
| 51ca6f0ef2 | |||
| 5d97b35ba4 | |||
| 2bdc1e4a6d | |||
| 787379808e | |||
| 9a658a2818 | |||
| 079d80adcb | |||
| 8ec5685786 | |||
| 769ab7b238 | |||
| eae4921ccd | |||
| 2a28ba7060 | |||
| eaabba0860 | |||
| f892022232 | |||
| 3ab0a4ee5e | |||
| dfa93c344c | |||
| adfc2ef30d | |||
| 1ce32462e0 | |||
| f8549eaa13 | |||
| fc280b1cd6 | |||
| 6438c9a88a | |||
| 302b575f29 | |||
| e1c87770bd | |||
| b5d9d81704 | |||
| dc92a8c07f | |||
| b3b7b82dda | |||
| fc8784c540 | |||
| f290275406 | |||
| 17fe15948a | |||
| ff99d9bbb9 | |||
| 6957bc3eba | |||
| 38f11a9f4a | |||
| ea43991901 | |||
| b739a465a5 | |||
| a469bad6e3 | |||
| 98c72833c4 | |||
| 51781066b6 | |||
| 393baf5265 | |||
| aa6dd092f7 | |||
| 00e47257e1 | |||
| 01911afb0f | |||
| fe3e7357d5 | |||
| 541c90eacf | |||
| 4641c135e7 | |||
| 5c403b39eb | |||
| 1ba6c9b73f | |||
| 2ede1b0d65 | |||
| 3e5c005714 | |||
| 217c5157e1 | |||
| 6783e79c15 | |||
| 7f3a658611 | |||
| 25a10fb642 | |||
| 96a6cadc66 | |||
| 189cb94892 | |||
| 9e948c0c37 | |||
| 974b0cc984 | |||
| a202a87a67 | |||
| 7e33da3883 | |||
| 446d694b1d | |||
| 040c6abdef | |||
| 35cb3fec1f | |||
| 118bd98f4f | |||
| df69792402 | |||
| 6e20801b45 | |||
| 1ba89fb865 | |||
| 8a2e46cb53 | |||
| 8df2390d9d | |||
| f5789d5059 | |||
| f97a7b1ea3 | |||
| 1a0ecb17a7 | |||
| bc447c4522 | |||
| bebdd90aa2 | |||
| 7d91973ddd | |||
| d98d1859b4 | |||
| 2e34600e01 | |||
| 4e4d69235d | |||
| 29125519d9 | |||
| f4991f5e0d | |||
| 46c6efee45 | |||
| 600ebb2669 | |||
| ed64dba0ad | |||
| 690a614ba5 | |||
| b48e6d508d | |||
| 65a469ef92 | |||
| 41a4eedb63 | |||
| 19bec43364 | |||
| 97d699156e | |||
| 21f134cf71 | |||
| 80b361fe7d | |||
| 32c752a71f | |||
| 1fe41b8b23 | |||
| b59980bd62 | |||
| 464aa7c8c4 | |||
| c3bddd9e5d | |||
| 9646ac25ae | |||
| b928936f2b | |||
| 69448ebba0 | |||
| 98cd78c3a4 | |||
| 6f3776d5ad | |||
| 879715efe9 | |||
| 7e5421862b | |||
| 599e2d0d8b | |||
| 964c75126e | |||
| ee60028d7c | |||
| c7fc617a21 | |||
| 1bec6aacad | |||
| ac64868d4c | |||
| 23283244e9 | |||
| c4e6dea3a3 | |||
| ffd60188c2 | |||
| 0da5552fdf | |||
| 37acb4cfc2 | |||
| 7651a7e472 | |||
| ad51fa70e4 | |||
| 0a6b3efbbc | |||
| c3e060d13b | |||
| 58865ae153 | |||
| b620e1b6e4 | |||
| 2fb242b9bb | |||
| b763dd2e3c | |||
| b9bc3d0597 | |||
| 014c219089 | |||
| d43e0a4bc8 | |||
| d321366de7 | |||
| d0a03fa9aa | |||
| bb657dc536 | |||
| 49a39cbd80 | |||
| e25a2b267d | |||
| 3b581bf5e3 | |||
| 399821046f | |||
| 47bcde4efe | |||
| 213b4ddf64 | |||
| 5bd69e0b73 | |||
| e049cff2ed | |||
| 5510223302 | |||
| 78b7fcd7ae | |||
| 0f71d4e2af | |||
| fd08ef00c3 | |||
| fee2eb653f | |||
| 85d7b5063e | |||
| 8bc77fa710 | |||
| e111568c34 | |||
| 500a32a1dc | |||
| 5387175ed1 | |||
| 87c3d6cf9d | |||
| 4c7cbbe184 | |||
| 63a3da31a9 | |||
| 97ca849c85 | |||
| 334d61559b | |||
| 607c9b57f7 | |||
| ce06cd0c4c | |||
| 8555b7d5fe | |||
| 583f907dd3 | |||
| 18de7c5da1 | |||
| 5e052325ea | |||
| ffebbbe0af | |||
| 03b25199d9 | |||
| a9c99b5fb1 | |||
| e5e30596f0 | |||
| d733569179 | |||
| 1569b58dab | |||
| c2654f2a3d | |||
| 43b611e39e | |||
| a2614b0020 | |||
| 01d20d1b13 | |||
| f4c6818570 | |||
| 709ac68a97 | |||
| c6a4f83a9d | |||
| b8d0b5df96 | |||
| d7bd15b4e2 | |||
| 1937f47043 | |||
| f2b19e9701 | |||
| e49127b686 | |||
| 9cbbca4712 | |||
| d12680c027 | |||
| 319c9d3522 | |||
| a33cf2fc7f | |||
| e8d1e2d246 | |||
| 830aee3ae4 | |||
| 9ae72e5a74 | |||
| c7accbd1fb | |||
| 39337c4bf2 | |||
| 92e3d6d3cc | |||
| a6fd52ae70 | |||
| 089f817962 | |||
| 97653a5be7 | |||
| 9c81eb5bd1 | |||
| 543c5a59d9 | |||
| 3517208b92 | |||
| 345565349f | |||
| 172308579a | |||
| 9860be4434 | |||
| 8ae061d50b | |||
| 57b89540f7 | |||
| 00de58f59d | |||
| 50f5752b95 | |||
| 98ad73ce7d | |||
| 7f12d47f7b | |||
| df1bac754b | |||
| be72b15872 | |||
| 700e91629d | |||
| 95e747e400 | |||
| 1ba4412bd4 | |||
| b72955c5db | |||
| 44647e33fb | |||
| 6d69fc21d5 | |||
| 53a0196dea | |||
| 2e3e75a39c | |||
| 525f318e17 | |||
| a3d083e7bd | |||
| 2267f1bca2 | |||
| 85baa9afc7 | |||
| 8f97f55e67 | |||
| 19070ca5c9 | |||
| 32ac61f890 | |||
| ce2727862d | |||
| d6141591ed | |||
| b1a044ba14 | |||
| 0af7c8b984 | |||
| eae2ef8d85 | |||
| 3599c01b97 | |||
| e3e027e663 | |||
| 170686840c | |||
| 89a787fc32 | |||
| 56bec09bfd | |||
| 341d7a0b55 | |||
| c76649d296 | |||
| 738568bf6d | |||
| c549d52123 | |||
| e6c7efc0d5 | |||
| b730fb350d | |||
| e147129642 | |||
| 3f097fa83c | |||
| 9a971f16dd | |||
| 272cbbb8b6 | |||
| 1d14056ebc | |||
| 8c69e55bdd | |||
| 77a07b09a5 | |||
| 39e06f668e | |||
| 150a76650e | |||
| 4016df7fc7 | |||
| 8422e3cd3b | |||
| 827fc16fbe | |||
| 9b2208b97d | |||
| 8a34dcf222 | |||
| 282a6b50a5 | |||
| 02fe14ffe3 | |||
| 0c1659cf48 | |||
| 5c8132d476 | |||
| 1627332a20 | |||
| 23d0b0e194 | |||
| 0e490d791a | |||
| 6aae00a6ee | |||
| 2f11ac944d | |||
| 42acdac865 | |||
| 459313292e | |||
| 49f766a593 | |||
| 08612c0cd5 | |||
| 7c72b34986 | |||
| 0be13c04ce | |||
| 0cdbdefeb2 | |||
| d396c8dc7e | |||
| 13ee681c22 | |||
| 7f863a7b6a | |||
| d8cbbf4c2f | |||
| 3e1c28687a | |||
| 2625d6cd26 | |||
| 930e76f8a9 | |||
| dae64684b1 | |||
| 6db7f67972 | |||
| 561298b43c | |||
| 7c08b05fcd | |||
| 9bee310052 | |||
| f76ede5078 | |||
| dc9e6ffdd5 | |||
| b8e5f7d01b | |||
| 32841d6596 | |||
| 4d2830732f | |||
| c8d5ae5f52 | |||
| dbf5e2c0af | |||
| 981ce25bfc | |||
| 6eb4e89fe2 | |||
| 3d71a1a8ff | |||
| d9407f6534 | |||
| 6ec06a8342 | |||
| 0398c6a018 | |||
| 93d1688e13 | |||
| 72cde59fdb | |||
| 03bfb325cd | |||
| 06f7208e20 | |||
| 1dcaa7e5cb | |||
| fd3abeca46 | |||
| e9f1734f88 | |||
| c5b124790e | |||
| c8e8cd05fa | |||
| f60dd5b3c7 | |||
| 22fd371f3f | |||
| 25b8ccfdbd | |||
| 34e6fdaf64 | |||
| f443771b12 | |||
| dad67014be | |||
| a8f61fa7f4 | |||
| 4c3f3ea607 | |||
| 05c7e09041 | |||
| 5e127f15e2 | |||
| 94bfcfc9a6 | |||
| 6738395c7f | |||
| d565300d25 | |||
| bb1534f674 | |||
| c3b585d811 | |||
| 08d23ee5bd | |||
| 9b5c287820 | |||
| de5447c4a3 | |||
| 989935db24 | |||
| c025475f8b | |||
| af50c8a956 | |||
| f9791c3825 | |||
| 668940e5bd | |||
| ff44478342 | |||
| e02a4cdfea | |||
| bafc119c9c | |||
| 4f4a3cc8fa | |||
| 891bcb87ce | |||
| 385f82cde6 | |||
| 46445c7772 | |||
| 52c3ac384e | |||
| 73864cf5f2 | |||
| 5adbcb151f | |||
| 64e9652941 | |||
| 4cdd59d70d | |||
| ec4fcf4d7a | |||
| fdde20948b | |||
| 4ec1a1ec9d | |||
| b701cc43aa | |||
| 4a083fa784 | |||
| 657c45d9b4 | |||
| 6a31f998cb | |||
| b414fe2058 | |||
| 1f01c756de | |||
| 7be5253d15 | |||
| e1949a4cf3 | |||
| ec8fa5d6cc | |||
| a3ea929707 | |||
| 972a1eff53 | |||
| 43081b2a28 | |||
| 09c617010a | |||
| 186bfb4b89 | |||
| 8e3519236d | |||
| 53b78c1f84 | |||
| 1e8a9867fe | |||
| 6ec88fceba | |||
| 67b71d296c | |||
| 512c7bba6c | |||
| 51c88417d6 | |||
| d05c4ae889 | |||
| fc936844bd | |||
| ced58f6cfa | |||
| ad53cd99c3 | |||
| dbcf20c3f4 | |||
| c691df5cac | |||
| 7515049b17 | |||
| 4c5ff20a07 | |||
| 38460e9163 | |||
| 882f47f6bc | |||
| 603fa295f4 | |||
| 55850f870c | |||
| 398c6a6aa3 | |||
| 9d50ad16ff | |||
| ce41b18a93 | |||
| 42dc1645a9 | |||
| 0922267efb | |||
| e7f34c71e4 | |||
| f455929de3 | |||
| e2a7eab89f | |||
| 5ffd7e9537 | |||
| ef5e5e417a | |||
| 6e936ffafc | |||
| 66d7c464c4 | |||
| 4c8abba476 | |||
| 2cc6ed350c | |||
| 7a3be96e58 | |||
| 472073bdd1 | |||
| f01d10d49e | |||
| fcb820ce1d | |||
| e29057693e | |||
| c4bf58282c | |||
| 856183aab6 | |||
| 37fc76e4da | |||
| 82da4217a2 | |||
| 4b1be35195 | |||
| b8a0f9faae | |||
| 88d61afb97 | |||
| 564d76f041 | |||
| 3b6bb53335 | |||
| 1a39c5e01a | |||
| 8d31ec4b57 | |||
| dd998710d4 | |||
| 9d9e09e93c | |||
| 1fa69a32f3 | |||
| 1d91829136 | |||
| 1a3a76c379 | |||
| 2498d81922 | |||
| c5319eda0c | |||
| 2a8fcbf1d4 | |||
| 77f3429df9 | |||
| 177a87cfb9 | |||
| 868fd15f74 | |||
| e8ac0d8eb0 | |||
| 8ba10ab8ba | |||
| 120057be57 | |||
| 6a543bb12d | |||
| efbaf157a2 | |||
| 8b015a7d04 | |||
| 9737d61f14 | |||
| 2249fef63f | |||
| a40275c659 | |||
| add329c8ea | |||
| a6e59cc6ff | |||
| 7e4f9f48cd | |||
| 993eb9809d | |||
| 660e7a8f4e | |||
| 103611fd74 | |||
| e3b54624c3 | |||
| 5ea2bc345c | |||
| 068868953f | |||
| 4973518a1f | |||
| 840caf8ba4 | |||
| 4f90a015a9 | |||
| a80642bfaf | |||
| 14801e3620 | |||
| bfadbbb73f | |||
| 01cff05f71 | |||
| 20bf33ca68 | |||
| 9a397e8882 | |||
| ff84f09478 | |||
| 4e7f35c108 | |||
| 923540e5b5 | |||
| 9dd175bb82 | |||
| 55428c64fb | |||
| 8bd724353e | |||
| f2dd9d1a5f | |||
| 9220b65861 | |||
| f4e1082ab5 | |||
| d01a4f1c4d | |||
| f8be868a2b | |||
| 93fa98720c | |||
| 6b737f4b55 | |||
| a40242fb86 | |||
| 73845ec7fd | |||
| a7a4a48a2c | |||
| 7f0691ee09 | |||
| 4db485cc8a | |||
| a8e1f9117f | |||
| fc52fb3c17 | |||
| 8eb21889bf | |||
| d67b672a0c | |||
| 286eb3fe9a | |||
| e88f00c27d | |||
| 27ccd7d2d3 | |||
| 441ec10b5f | |||
| 240a553c55 | |||
| 77dc170f13 | |||
| d43563fa75 | |||
| 258e4cda5a | |||
| ab2235f7cd | |||
| a2fc2fb9d6 | |||
| 96a3ac70ca | |||
| 61b5ad4e02 | |||
| 88435e51bb | |||
| 8c0843b218 | |||
| 5e7b33ba61 | |||
| d6d117c5dd | |||
| ded794244d | |||
| ecc44c6cec | |||
| 5e8422be62 | |||
| b0fd733e95 | |||
| a86ed9ee33 | |||
| f201a55045 | |||
| 0ec2180022 | |||
| d03f203553 | |||
| 346744aa02 | |||
| 1f24c4fbec | |||
| 22515b9f0c | |||
| 128118003b | |||
| 49eff29fac | |||
| e3faa6db48 | |||
| 54163e612a | |||
| bb9897acbf | |||
| 02fa4142a7 | |||
| e06edbc6fe | |||
| d05a7233db | |||
| efdc370ca2 | |||
| 1d9dc39390 | |||
| f5c5d1fb57 | |||
| 4decd0c631 | |||
| c2c69d2a8e | |||
| 1e13179d78 | |||
| ff03e6c2a8 | |||
| 71e4ddb7b4 | |||
| c1532e8e1f | |||
| 468f5dd0b1 | |||
| a4be4bcc56 | |||
| fe19e83d1e | |||
| 1928974f0a | |||
| 9161d5d3fb | |||
| 2825342c14 | |||
| 4b2cc293cf | |||
| cd75c6e502 | |||
| 3de0f27479 | |||
| 9c6fa52d76 | |||
| 54a3b6efd6 | |||
| 1406c5c781 | |||
| 224ba9144d | |||
| 35a3c4e803 | |||
| e7a62ee9d4 | |||
| 96bdb12014 | |||
| 9a953c7182 | |||
| b81a43d6bb | |||
| 4ca1ea0595 | |||
| 5b4d1d0bae | |||
| ac94da49fd | |||
| 6ac102569e | |||
| 8bb58c35cb | |||
| 1137a38594 | |||
| 6a3fad4a3a | |||
| 43c935b79e | |||
| 1ef9329036 | |||
| feb203abc2 | |||
| 9ae39513d3 | |||
| c8b91b8e61 | |||
| c23a0ee4a8 | |||
| a90b578e9c | |||
| 328395dfea | |||
| a5baf69f57 | |||
| 62445265e6 | |||
| a18d19b6f7 | |||
| 8ef62fd670 | |||
| 0852fc134e | |||
| 191669ea1a | |||
| af28e9d319 | |||
| 22b00f4354 | |||
| 5b3860103e | |||
| 2604226810 | |||
| 6c25c52a50 | |||
| 8c6b665fc5 | |||
| c4a767e038 | |||
| fa40db9ce2 | |||
| bca42bf3de | |||
| 4d1c217905 | |||
| 855245068c | |||
| 583c6b4944 | |||
| ede2accb1c | |||
| edf7e2b4f0 | |||
| 758f59303a | |||
| 12b710d212 | |||
| fec6f7b85f | |||
| 22d1811e94 | |||
| 8262f8802c | |||
| 715425185b | |||
| dd260234e4 | |||
| 613df67e27 | |||
| 06258d3c74 | |||
| af801f1dcc | |||
| 0cae25d1d5 | |||
| 988cbc406d | |||
| 1ec288eb9a | |||
| bb4cf4eebc | |||
| 750a9bde7e | |||
| ec2ddfb477 | |||
| a472fe382a | |||
| 91c065377f | |||
| f8df8a0afe | |||
| 4f3bd8b91b | |||
| fa56a45026 | |||
| 2259629dba | |||
| 9af13304d5 | |||
| 6f4bcbb548 | |||
| b5c502714c | |||
| 33d688543d | |||
| 7fe60af017 | |||
| 24ba23f132 | |||
| ef7d753e03 | |||
| 4cd39bbcbd | |||
| 5b08350475 | |||
| f847267c3c | |||
| c298122393 | |||
| 8c7a59ed39 | |||
| b5e3467cc3 | |||
| 5f434e77db | |||
| aa6f11ee62 | |||
| 4d10b801bb | |||
| e78dbed50d | |||
| 7b853f2136 | |||
| 2906945525 | |||
| 93fe2e8f50 | |||
| 1b7111bb03 | |||
| c2dd57e895 | |||
| 8534679f04 | |||
| b52180ff9a | |||
| 7c83535528 | |||
| db8a0b3a6f | |||
| 262fb3314c | |||
| 7f6d3186cf | |||
| 3e5f946338 | |||
| 17a7820d96 | |||
| 320befbc53 | |||
| e9d42264c0 | |||
| 5abab316fb | |||
| 2316968096 | |||
| 5b17cf6da3 | |||
| 177a57e4ef | |||
| 59924c4b4e | |||
| b4cd2f065d | |||
| 59d420543f | |||
| 6305ac3f20 | |||
| c701d480b8 | |||
| 195709f629 | |||
| 084ae03ddb | |||
| 4725acd2e7 | |||
| 609afe6de3 | |||
| 17ea6e66c8 | |||
| b8144ef394 | |||
| bb700daba1 | |||
| 9bfe8762ff | |||
| 444e82d520 | |||
| 046cbc06cf | |||
| 5b9c2383cf | |||
| 908609c3f8 | |||
| b22eeeab9d | |||
| b625b724c7 | |||
| 54bb1e79d3 | |||
| 643dc749f2 | |||
| 4dd402f49a | |||
| f0aa7d3212 | |||
| 721e4ec5d8 | |||
| e632f0df3f | |||
| c371fea966 | |||
| bd63cc0d6b | |||
| b05605a24b | |||
| 35a86586ab | |||
| 00fa7e7afe | |||
| e9535abe9f | |||
| dac870635f | |||
| 1c2a45aa98 | |||
| 743800155c | |||
| ee5fed4dbb | |||
| 444cdb6b9a | |||
| 894239a034 | |||
| b8091509f4 | |||
| 0239816790 | |||
| f0bda85e87 | |||
| 5a42572d79 | |||
| 8cd9dfaef4 | |||
| eeb757f5a4 | |||
| fa6b903edc | |||
| 747341f8eb | |||
| da48349248 | |||
| c83b1d9f67 | |||
| a7e4ced942 | |||
| 70277f26bd | |||
| cd34915ef9 | |||
| e45a14e8df | |||
| 953a14ce13 | |||
| ee79088f92 | |||
| 422b462bb8 | |||
| 984e343ae1 | |||
| 550039df32 | |||
| 1e2614ece9 | |||
| a4c2eff0de | |||
| b6d868a176 | |||
| 1b31dc3b72 | |||
| b47e7155ab | |||
| ca2d91a7f8 | |||
| 89d70ff2cb | |||
| beb86b072c | |||
| e796ed7d72 | |||
| ebb375dfda | |||
| 7f30be5eba | |||
| 986a7783ab | |||
| 47be7419d2 | |||
| 6c1434724f | |||
| f6a0121f1a | |||
| c7b7bd928c | |||
| 40b53144a8 | |||
| 5920ff19d1 | |||
| 7cce201567 | |||
| 5fe1188c5b | |||
| a95d7117c7 | |||
| b569af10a5 | |||
| cff91a5235 | |||
| 0aee8e6d53 | |||
| 00a18714e4 | |||
| aecf675627 | |||
| ee3898085c | |||
| 73e5c70e39 | |||
| 3694c008ea | |||
| 45f5ba45f7 | |||
| 915e41e0ac | |||
| b0e9f2a255 | |||
| 1d7b17f149 | |||
| 45d3a1d490 | |||
| dc574f6606 | |||
| 70d591d505 | |||
| 32464079da | |||
| ea70fb9404 | |||
| c09f25b8d0 | |||
| 132c041182 | |||
| c886341ac1 | |||
| 45121fa2f8 | |||
| 526523c5a3 | |||
| 4fab74ffdd | |||
| 27a7c792b0 | |||
| d25a2a79d8 | |||
| 5e24200521 | |||
| 6ed6802123 | |||
| 76f4c5bfe3 | |||
| e5aceb9b8c | |||
| f9f887535f | |||
| f88b208a57 | |||
| 30025abbed | |||
| 84ac4f343d | |||
| 0773ad19e6 | |||
| c89a45e08b | |||
| d632fcc2a2 | |||
| b2087497ae | |||
| ece6f2a907 | |||
| e5472df42c | |||
| f395aa1257 | |||
| a326867444 | |||
| 732c29b2cb | |||
| e5b9dfca5d | |||
| 45c7f8b9f6 | |||
| 32f0be300a | |||
| 24fe803997 | |||
| 41eeaf8cd7 | |||
| daa7328a86 | |||
| bf656716ed | |||
| 372366adc0 | |||
| 6b4566fe9a | |||
| 59836490a3 | |||
| 7e0613e2e9 | |||
| e82902f387 | |||
| 20760b8ce2 | |||
| 8ab7ddd5ca | |||
| 60cbfc54e8 | |||
| 32f755dc10 | |||
| 855fb66aef | |||
| 0064635fe7 | |||
| fb6142cb9d | |||
| 5e62690318 | |||
| 2750b471ba | |||
| 5d4dbb3eb5 | |||
| 08471d634f | |||
| 6a64a2849c | |||
| dfd40deb5c | |||
| 4f5567cf3c | |||
| bc28411096 | |||
| 2f330e16a6 | |||
| 4dbd3b05e9 | |||
| 4a93c91011 | |||
| d1dc39447d | |||
| 8f1b0db9ae | |||
| e1e54ae2da | |||
| d2e0712a92 | |||
| 43cb660f80 | |||
| 804d0822f2 | |||
| 31af7b633d | |||
| e32f76c8db | |||
| b339ea1866 | |||
| 18f53a9350 | |||
| 9d42b9d4f4 | |||
| 574fa40950 | |||
| 561dc7e8c5 | |||
| 1fe1155834 | |||
| 52ae479593 | |||
| 5940f95c3f | |||
| f188a48f48 | |||
| c8f4f52e4f | |||
| cdae42d897 | |||
| 291edf8319 | |||
| 53186e12d2 | |||
| 8c2534b572 | |||
| 896832f05c | |||
| 80c5e10c9d | |||
| 9649851e31 | |||
| 12a18a4e03 | |||
| 95bca8599a | |||
| 4e8df0bc79 | |||
| b49aa4413f | |||
| 03776dac88 | |||
| 2a3f16a4d8 | |||
| 26fbe3babf | |||
| e28e8b56b1 | |||
| 536b080451 | |||
| 952d16458c | |||
| 2dc6aa71de | |||
| 94f51bda81 | |||
| 6c056e4289 | |||
| 9e98968d04 | |||
| 56925eff71 | |||
| 012f04acd2 | |||
| 388b680547 | |||
| 4c7e16a33c | |||
| d997dae36c | |||
| 920adde65f | |||
| 7066a55813 | |||
| 6b24197cf1 | |||
| 0c96caff02 | |||
| 209a3874c8 | |||
| abc74e21d0 | |||
| 42478ac950 | |||
| 7dfe4af359 | |||
| c066c24449 | |||
| 4a6d338a08 | |||
| 9057ea652b | |||
| a9cb8de197 | |||
| 683955bb5e | |||
| db2930ed33 | |||
| a763b497a2 | |||
| ed86945e14 | |||
| 5a4ca8479f | |||
| 694ea6abe4 | |||
| 9018e9a252 | |||
| 8bd6f45fb2 | |||
| a5c4cb9438 | |||
| e78b399810 | |||
| 53f53200df | |||
| f3f627572f | |||
| 916a84b041 | |||
| 1f0f8ae1b4 | |||
| db67132ce2 | |||
| 125110e805 | |||
| fb2b4b2797 | |||
| 539f1cab81 | |||
| 04e58e38f0 | |||
| 2194dd5899 | |||
| 2799b63869 | |||
| 6d94535ff8 | |||
| 8fa09793eb | |||
| 8f29d012a2 | |||
| 0a577290ba | |||
| 79d5bdd78b | |||
| 23dd433b20 | |||
| 194faf5eff | |||
| 8f9d36085b | |||
| 2342956bb1 | |||
| 892c415382 | |||
| 63ccb0fbee | |||
| 1136916768 | |||
| 8e1d208ac2 | |||
| e6b69fe2f4 | |||
| 9ca2b70ee3 | |||
| 1f976ae79a | |||
| 79e57e8965 | |||
| 795a7fcb3b | |||
| 85a551fb63 | |||
| b9d6b59991 | |||
| 99ee15f65f | |||
| 487e9ae95a | |||
| d7521d04a7 | |||
| 6af132ab18 | |||
| f42c1df7a9 | |||
| c434d82807 | |||
| b694019e19 | |||
| e0185bd0c3 | |||
| e13683874a | |||
| 28ac386e08 | |||
| 4b9da896ab | |||
| 1870b3fba4 | |||
| fb079be1bd | |||
| fc342a90ee | |||
| 269855a862 | |||
| bdacbac1b2 | |||
| 88877241e3 | |||
| 6561216356 | |||
| 01a4770af4 | |||
| 874129f41c | |||
| 4e0cd2f9b0 | |||
| 64c361f806 | |||
| f2c9aec380 | |||
| 68582b65d1 | |||
| 2ef8b83da0 | |||
| 218b36ab8d | |||
| 8ebcbe8636 | |||
| 5b7deea769 | |||
| eb75805c88 | |||
| 26fea8bf52 | |||
| 44c5e23bc1 | |||
| b4f424737c | |||
| 9484e549b4 | |||
| 2e054bf9d9 | |||
| c75e65eb4c | |||
| 18c41a4846 | |||
| 61735c2790 | |||
| 461006b3b8 | |||
| e872a4c0ac | |||
| 5af2d1b472 | |||
| 6044929214 | |||
| 1175fd4150 | |||
| f293394cf4 | |||
| c0c11cf928 | |||
| ecbc73d33b | |||
| 4f9d22bcb0 | |||
| 7a261ba649 | |||
| 81d95a9108 | |||
| 57b46c22ef | |||
| 7ecfa52517 | |||
| 8de5e88469 | |||
| 7f8988278c | |||
| 26b2256fa8 | |||
| 67facf5e69 | |||
| 92e2385650 | |||
| ebec731098 | |||
| 2fdcd75eab | |||
| ccb5105ff7 | |||
| efeaf9b8d1 | |||
| 9e7d7a366d | |||
| af4a07d12f | |||
| a3b83ecace | |||
| 955025a3a1 | |||
| c0dd3db439 | |||
| afe1c7b341 | |||
| 6d53f5745b | |||
| 75bb782da7 | |||
| b3d9d4cc6e | |||
| 03b10cb446 | |||
| 53fcb5e639 | |||
| b87dad75fc | |||
| 03a7332f8a | |||
| c8a848766d | |||
| f9103ee77c | |||
| d21ad2ae43 | |||
| e1ce3d8456 | |||
| 8b6c3c288b | |||
| 0f9433c7ce | |||
| 0275791b2c | |||
| dd474f72ea | |||
| 1b918413cb | |||
| eb2aada6d9 | |||
| 6dcf645e88 | |||
| f61bf56d14 | |||
| b78fca4290 | |||
| b6cc7c823a | |||
| da2bf87c2b | |||
| 15ed64791f | |||
| fc7751a4e3 | |||
| a98dc97e48 | |||
| 82dc397171 | |||
| 20e92bbf95 | |||
| a30e9ac37f | |||
| 09862cdd1c | |||
| 30ed03be15 | |||
| 005fea0701 | |||
| e0bd7f3e84 | |||
| abec57becd | |||
| cdc74ada43 | |||
| 281ee487cb | |||
| 02efc63109 | |||
| bdf1295693 | |||
| c3b8e90a3e | |||
| 8e0216281d | |||
| e721f6c942 | |||
| 20eb11bf3f | |||
| 9a4a9a805f | |||
| 74920d70b7 | |||
| 5a2b693092 | |||
| e2bae2e187 | |||
| 1c9b9d5e0f | |||
| 0d5b92520b | |||
| 809020965f | |||
| d612b64b4b | |||
| 7c15562236 | |||
| 2cd312f396 | |||
| 74a8455e13 | |||
| db83a36fc4 | |||
| 2f88cf34ea | |||
| d796de176c | |||
| d44da46e1e | |||
| 9d12314f22 | |||
| 2e83d4e9c8 | |||
| c352a057e8 | |||
| 8293a06d40 | |||
| 6b78d139ee | |||
| c95b3dd04b | |||
| 51c33e0701 | |||
| a707ded8b2 | |||
| 0756b8ff90 | |||
| a2d1a74e3d | |||
| 840d679e49 | |||
| 658d35739a | |||
| cbf727460b | |||
| 22d4592a1a | |||
| 446ef4d577 | |||
| 4aae8eabca | |||
| 53deeec405 | |||
| 6a77d1d1c6 | |||
| 6e789e0697 | |||
| f2db638138 | |||
| 5bbe04dd69 | |||
| 79087dda1e | |||
| 6d9778e913 | |||
| d7f98f26d0 | |||
| fc2cb5f533 | |||
| 995beaefa1 | |||
| b71f62fcad | |||
| 5388697b0c | |||
| 377f454872 | |||
| e3c6e9b3f9 | |||
| 82909e892f | |||
| 6133c11f38 | |||
| 25de0c763f | |||
| 941b9d0ec1 | |||
| 136d123ba2 | |||
| c036733ff8 | |||
| 9ac1a088b5 | |||
| 62289d1310 | |||
| a29d7cb8b3 | |||
| 8264f89be2 | |||
| 98f7b9d647 | |||
| 711d0017df | |||
| 6bf0f0faf3 | |||
| 021f9f64b4 | |||
| 925979c534 | |||
| b9c53b877c | |||
| a081b37d6d | |||
| 01107f5a07 | |||
| a324d9f8d9 | |||
| 72a48b656f | |||
| 9834392df8 | |||
| 9545a3e7f3 | |||
| 3428df7bac | |||
| d71477e8a3 | |||
| c100d54aa5 | |||
| 721fc5e7ac | |||
| cb0360008b | |||
| 31e0f5e177 | |||
| bf78be5e81 | |||
| ba1a0f7763 | |||
| f77fe887ae | |||
| b4c8269729 | |||
| 7b49631c73 | |||
| 57e5fea9cc | |||
| 046e0f7710 | |||
| 76d3b45fb8 | |||
| 3dba3a4d06 | |||
| 2b78a8b617 | |||
| c73bd8b904 | |||
| 3727b7391a | |||
| a3cab2d098 | |||
| 92d8d9ad05 | |||
| 9ce86699ed | |||
| c051240cd4 | |||
| 978d80e198 | |||
| ccd47865bd | |||
| 725b60245f | |||
| 23c427495b | |||
| cac9293d87 | |||
| 137d757631 | |||
| 06052da308 | |||
| 9cd8cb0662 | |||
| 3430f915d3 | |||
| f172cc86b3 | |||
| 22f6607545 | |||
| 95c96bbffc | |||
| f76bf0cee1 | |||
| 6ae8c69efa | |||
| c8ef152d08 | |||
| b058f017e0 | |||
| 04bb20a8e4 | |||
| 0ffc7ef04c | |||
| 9153cc678d | |||
| d9ca2f9e46 | |||
| 2b8e9009a9 | |||
| 853b22bf73 | |||
| 93ed14aba2 | |||
| ded9e12051 | |||
| f5e4369384 | |||
| 9134d0f087 | |||
| 9e6b88c920 | |||
| 21685704b6 | |||
| d4f7cc6d6f | |||
| 374af06be8 | |||
| 2a9ffc41b5 | |||
| cb84378637 | |||
| 8b42268d7e | |||
| 9c05b99951 | |||
| cad1004d28 | |||
| 0784a62e89 | |||
| 70dbebf727 | |||
| a22f0515e0 | |||
| d5087108d0 | |||
| 29822ad719 | |||
| b47c766b24 | |||
| 67bb9f18e6 | |||
| a33de97309 | |||
| c81c98f524 | |||
| 06079aa022 | |||
| 1e66105813 | |||
| 03dec3dcf6 | |||
| 707e610625 | |||
| 560b07f3ca | |||
| 3ca8446729 | |||
| aad0ec464f | |||
| 3bafd3f9f2 | |||
| 89a8a1d62a | |||
| 0e76a06c46 | |||
| 137d25cdbb | |||
| 29214ee77e | |||
| 3e922260d3 | |||
| a2c92066ba | |||
| b3530fa2dd | |||
| 3219de14ee | |||
| 8906ea6707 | |||
| a3f9832b4e | |||
| d8e9b2d2b4 | |||
| 15ccea0306 | |||
| d1f99b7018 | |||
| 1a3191216a | |||
| 6f447ee939 | |||
| 67bd59e343 | |||
| 8b85428f82 | |||
| 99f44b62ed | |||
| 7414003d86 | |||
| b5d2b40acb | |||
| ea6c30e2bd | |||
| b18a789e99 | |||
| 8e67aa129e | |||
| e447369665 | |||
| 1e8e50e0a8 | |||
| 3e3aa0352d | |||
| dc84658b7f | |||
| 06c64fa222 | |||
| ebfa8da621 | |||
| 231daf9977 | |||
| 74bbbfd0e9 | |||
| 5645f15c58 | |||
| 47e72c2210 | |||
| 70473c80a0 | |||
| 81db77330f | |||
| e68e8ba644 | |||
| 2f4ae5ebc8 | |||
| cfa3ad151e | |||
| 95fc2c2e94 | |||
| d0e5d86243 | |||
| 597155af11 | |||
| 69f2c29679 | |||
| e68fd292ba | |||
| b7129680c3 | |||
| 27a93dc070 | |||
| 069a9f3d3a | |||
| b0062b6135 | |||
| 56cfa9d57d | |||
| 30d3472b62 | |||
| e475ed88fa | |||
| f1271da9aa | |||
| f9cfdd85ca | |||
| 48e3b820a3 | |||
| e845124498 | |||
| 72c2753cab | |||
| 5ff7ca9b4c | |||
| c8e5debf80 | |||
| 5392788a72 | |||
| 0602d89de0 | |||
| c8eb931b92 | |||
| 5d3c3ce818 | |||
| 9ed41ccb67 | |||
| 05f0c63e40 | |||
| f5c80ed236 | |||
| f9f0a7896f | |||
| 56a0d29f10 | |||
| eecf99373f | |||
| ef970a6009 | |||
| fc91e7b9ce | |||
| bd0feeadeb | |||
| eeb982cb64 | |||
| 1c5a0bd0f4 | |||
| 7c380c7bae | |||
| a7cd1c1210 | |||
| 9ecc2410a6 | |||
| ebf2680335 | |||
| baa03b2bfa | |||
| 90609cc515 | |||
| d5da22e62b | |||
| 0294266863 | |||
| fc612032fd | |||
| dd1757e777 | |||
| be04ee38b7 | |||
| b73ef690bb | |||
| 140802ac66 | |||
| a6b459923e | |||
| b86f0cc869 | |||
| c82c994184 | |||
| 06f3e4562a | |||
| 68e99604f7 | |||
| 17ec7bc611 | |||
| d5189a952a | |||
| 85cfd2bf70 | |||
| 904eece17a | |||
| 1535e5763d | |||
| 87af894198 | |||
| 3ecdbe6d64 | |||
| 28220bbde7 | |||
| f6908517e2 | |||
| ab1bd76a48 | |||
| 2746b35e12 | |||
| 6b755c03d3 | |||
| 4d9c7a4c01 | |||
| 5d7042746f | |||
| f583be5ee4 | |||
| 0870527a82 | |||
| ac70b849ca | |||
| 4f529461f5 | |||
| ed261400d1 | |||
| 0ef7b83ec9 | |||
| 3cb19a4ceb | |||
| 1c91c72039 | |||
| 433c5b1cfe | |||
| cb51dc3e40 | |||
| 6ff569edf7 | |||
| ba9423c5ff | |||
| 1e9e2ab603 | |||
| a2b318f6fb | |||
| d1aa2ebfe3 | |||
| 9701fa9807 | |||
| fc7d427407 | |||
| 0bee7b0aaa | |||
| 722ab2c2ca | |||
| b547c28e72 | |||
| 9ed5581b39 | |||
| 2bcaff66bf | |||
| 17b25167b1 | |||
| 0f2e6a251e | |||
| 3267e7e0fc | |||
| 1e922e4724 | |||
| 3c6096967b | |||
| ef99a5d92d | |||
| be358da524 | |||
| 8044c5157c | |||
| 7a05534142 | |||
| 94167f1954 | |||
| ada8f8beb8 | |||
| ea11a8c348 | |||
| 537fbfb5e8 | |||
| 73362fd852 | |||
| b611a6b099 | |||
| a42d8eb10a | |||
| 0c4f285410 | |||
| dece8bdcba | |||
| 6eedc2a2f9 | |||
| e2c0d814bb | |||
| 044e501b69 | |||
| 5d2b5c92d5 | |||
| c3b7d3de8b | |||
| 0d20ab0378 | |||
| 29a65be954 | |||
| b89180a549 | |||
| 0e4f194269 | |||
| 958e1fcadf | |||
| 0793519bb0 | |||
| 8fe6e1ce23 | |||
| f5332a8b59 | |||
| 65076f0a5e | |||
| eeb325b8ad | |||
| 7c836c61a0 | |||
| 2dea9f2096 | |||
| c0d4bcd16a | |||
| 92d916fa57 | |||
| d1b7b280c5 | |||
| c85774a897 | |||
| 113e15c391 | |||
| 2481578533 | |||
| 53f766271f | |||
| 8950b3535a | |||
| 9db42c3494 | |||
| b4701ac83c | |||
| 2a32233d13 | |||
| ec9e3d098f | |||
| e65851ef3b | |||
| f5837dcf44 | |||
| 40dba648f1 | |||
| 9e58de380e | |||
| b9fd01d632 | |||
| f15b5cd463 | |||
| efde950a11 | |||
| df5140532d | |||
| 5c61f9e6f1 | |||
| 05c6260499 | |||
| 6dd1e80ce5 | |||
| 7588b592df | |||
| c1fd29423c | |||
| 533d04e8f3 | |||
| de9f4a9814 | |||
| 87d864527b | |||
| a862facf6a | |||
| 11291cba06 | |||
| b881f02a02 | |||
| 4385caa969 | |||
| 087594e557 | |||
| 133a05542f | |||
| 3703cde00a | |||
| 903ae550d0 | |||
| bb31a9733a | |||
| 42b4cdf733 | |||
| 55b2fff256 | |||
| 36bb26c9fe | |||
| 6285a59b43 | |||
| bf434987f9 | |||
| d5f8c4b474 | |||
| 2e28ca5550 | |||
| a81115d2f3 | |||
| 3618465853 | |||
| e20588a3da | |||
| fafa2023d1 | |||
| 32823bd55a | |||
| 37a851ef98 | |||
| a9a7dce495 | |||
| 9099a04b2d | |||
| af246c553e | |||
| fd0b734a2b | |||
| 3d18db25e3 | |||
| 42e515dfec | |||
| dae7dac2d5 | |||
| a519bcf0c4 | |||
| 15da75c473 | |||
| e90b2957a6 | |||
| 9d2d7e646a | |||
| 14c0a2a7c0 | |||
| 06f6278e59 | |||
| 77b206a62c | |||
| b0f77fddf1 | |||
| 276bc48a24 | |||
| 9d475122e3 | |||
| 74359e39a8 | |||
| 6f01769c4d | |||
| 531b4ba0dc | |||
| d003dd8310 | |||
| 6d4cb1ff4c | |||
| 5495def631 | |||
| a6a2243099 | |||
| 90172d03ef | |||
| 6f321fc0e3 | |||
| c8e2b18f35 | |||
| 7956395c7c | |||
| d5cbd33a59 | |||
| 25fb7daee9 | |||
| afbb6fe4ff | |||
| 03e2fa60fa | |||
| c58817fc18 | |||
| e0fcaae71e | |||
| efdc67e1ba | |||
| cb8f8c535c | |||
| ed9e6a83e6 | |||
| e9325f77e0 | |||
| 2ff6b62854 | |||
| 0c1c2b4c2e | |||
| 8008ff2e29 | |||
| 8e4750bb0b | |||
| 8dbe1da419 | |||
| c8cf662c1b | |||
| 4ff908701c | |||
| 24acbd309a | |||
| 81a1364ae0 | |||
| 57f1438949 | |||
| 45b6929dd4 | |||
| f66053508b | |||
| 23f7029703 | |||
| f29c812aa7 | |||
| b30b91ca6d | |||
| 82b11909f9 | |||
| 8c212908bd | |||
| 5bc07126a9 | |||
| 19420e98d4 | |||
| 4836418528 | |||
| 4547a18aab | |||
| ed2f9e0035 | |||
| 20011c8647 | |||
| 1599d943f4 | |||
| fe50098db7 | |||
| b03b2a52bb | |||
| ad44fecc10 | |||
| 37a554f1f9 | |||
| fbd9eba8bd | |||
| 64b428a992 | |||
| 4c3ec3259c | |||
| 39f6dda5d8 | |||
| 3f73c12f83 | |||
| 5702a34d69 | |||
| 5487058744 | |||
| c75af891b2 | |||
| 3c1a598fd5 | |||
| d7c4ceba92 | |||
| 54e10c7b55 | |||
| 9327fce5ca | |||
| 0bd55565fe | |||
| 48121355f3 | |||
| d5d8c86e8e | |||
| 7569534cfd | |||
| e0fd7ff1f0 | |||
| d9217329eb | |||
| e3fa8c53bf | |||
| 4bb7f3cf83 | |||
| 26a677074c | |||
| 272a270bc8 | |||
| 601f615a35 | |||
| c45b6034c7 | |||
| 2c2cfbe07d | |||
| 3f730897a0 | |||
| 792915bb3a | |||
| ffdb21583e | |||
| 9bce904409 | |||
| c5c78fce18 | |||
| 0e6e32d4da | |||
| 5de83dc86a | |||
| 16238f5e80 | |||
| 9d520219ae | |||
| 9e342b93cf | |||
| 7d5eb31f25 | |||
| 5910bbfa5d | |||
| be1d417639 | |||
| 6fd26cf0f7 | |||
| 4ec1830847 | |||
| ee81e468ab | |||
| 9acd562c20 | |||
| 17126e2f6a | |||
| c36a6d8ce2 | |||
| 3fd3940119 | |||
| fcd824042a | |||
| 0df0b9774d | |||
| b81c634800 | |||
| 38a2f8535f | |||
| e310954222 | |||
| d1488f6a0a | |||
| 497b201dc1 | |||
| 1b9541b2b6 | |||
| a7ef272cb5 | |||
| 2440bf68a5 | |||
| bafa576191 | |||
| 461809134c | |||
| 288b0dcb90 | |||
| aade9540d0 | |||
| 93b55d7936 | |||
| faeac14054 | |||
| 6148c337d9 | |||
| 94059919d7 | |||
| a4fcd4919d | |||
| b7d6948081 | |||
| 8fda6f48ce | |||
| ad2023083f | |||
| 65c35b9af7 | |||
| bee3ff541a | |||
| 9b64445e3e | |||
| 00802528e5 | |||
| e4c1384bbd | |||
| 817b90418f | |||
| ba57308120 | |||
| df6fb494be | |||
| 931e19048b | |||
| e5e090f385 | |||
| f5fb1cd5a7 | |||
| 63f6e16664 | |||
| 709360930a | |||
| 6c2b1bf1a9 | |||
| a705625321 | |||
| bf75cfab48 | |||
| 83bf58cb93 | |||
| 3bfb4d4f29 | |||
| d4fd9314bc | |||
| 0937f5ef8f | |||
| d2a3c8b139 | |||
| 39765a5a61 | |||
| b75eeaefe6 | |||
| ff0f86b4ba | |||
| 83feb20265 | |||
| 07711ba4d1 | |||
| 21a9296e85 | |||
| d4a083c6ba | |||
| 1d1054d762 | |||
| 8a29a3e9e4 | |||
| a0ebe7acb3 | |||
| 154f9691a3 | |||
| 78e4a4e92b | |||
| 996b85951d | |||
| 2ace756da4 | |||
| d964cb3d37 | |||
| 4ac1c8c928 | |||
| d1ac7c9e34 | |||
| abed5269b2 | |||
| 9267fc8aeb | |||
| 1fcc07708b | |||
| 0455514ea9 | |||
| fb5c459e05 | |||
| c5d85bc2b9 | |||
| 071c0e75c8 | |||
| c6823c617a | |||
| 5142761c85 | |||
| b451472ba3 | |||
| 0a702d44e4 | |||
| 14f0249708 | |||
| 950515f219 | |||
| a16921b2e9 | |||
| 9faf8bedd5 | |||
| 7a33ead400 | |||
| 4813f1d07a | |||
| 1c6c5f982a | |||
| f5ef1dd683 | |||
| 9728a2277b | |||
| 59eb3cfea5 | |||
| 761ceab8d2 | |||
| f62f1dff83 | |||
| 35bd761c9c | |||
| 78bc7afa13 | |||
| 8742086a0a | |||
| 9a4769eb47 | |||
| a2cf7ed13c | |||
| 1d97c0e61d | |||
| 30264e12d1 | |||
| 3c19d5e26e | |||
| 7b0b4b9cd9 | |||
| 9ba942e3a1 | |||
| 84b3883a1f | |||
| d2c8c14f8b | |||
| e67089c5b4 | |||
| fbe9ba88b9 | |||
| e75b9dd848 | |||
| 53b55326be | |||
| a5c1351cde | |||
| 34a525e74d | |||
| bcc1801edb | |||
| 58e99cd2d4 | |||
| 905973fded | |||
| 709282dfd4 | |||
| f7c518d145 | |||
| 7779b864c1 | |||
| 717ebd02af | |||
| ce43301d5f | |||
| 4a5c027cf4 | |||
| e57b35c77e | |||
| a1caf0792d | |||
| 317d425ff2 | |||
| 9098f18db2 | |||
| 84d0cef869 | |||
| b4d2bff379 | |||
| 99742dd7b3 | |||
| f0e7921347 | |||
| d152aabd82 | |||
| 35fb50c226 | |||
| 0c6c406cf5 | |||
| 0465a264aa | |||
| d36c3aeea3 | |||
| 7f8a98f290 | |||
| aaa24271e9 | |||
| c8ce35e4b9 | |||
| e4cf0cb61f | |||
| 934bbe2283 | |||
| cf3a73a548 | |||
| c86e6258af | |||
| 78cd4ed710 | |||
| c06c0ad088 | |||
| fb28aadbb9 | |||
| cb86631775 | |||
| 7b12ef172a | |||
| 6cb75bc53a | |||
| 5d917b93e3 | |||
| 4ce8c56fc9 | |||
| 1034f66555 | |||
| 660acc4e0b | |||
| 2627e2a7dd | |||
| 93209acab6 | |||
| a1a81a808c | |||
| 36dc01463f | |||
| f9730a4a6d | |||
| 2056d81343 | |||
| d4de820fa3 | |||
| 1078df18f8 | |||
| 3729083e3e | |||
| 7b0bc5a059 | |||
| 96a8f54933 | |||
| 18a4775984 | |||
| 8d143b8682 | |||
| 4bb6c8554c | |||
| 2dc8038257 | |||
| af184659f3 | |||
| 7698d47e09 | |||
| bfa4e0a5d0 | |||
| 92519a5d62 | |||
| e78bc7ea57 | |||
| 9746b63f46 | |||
| 458c9ba638 | |||
| 8de9a7dd31 | |||
| 1e7c83a0e7 | |||
| ef7281f362 | |||
| 016a90610f | |||
| cab34310bf | |||
| 9b8d805ea9 | |||
| 9cf28e70e0 | |||
| 2e3b5e6d39 | |||
| f862f962e0 | |||
| da76475a51 | |||
| 521053adf8 | |||
| a234671ad2 | |||
| 37f5bdcaf5 | |||
| ec9a1802bf | |||
| 5214162718 | |||
| c92847d254 | |||
| 6a0d882178 | |||
| 086212209f | |||
| 5490140a02 | |||
| 37402ebb39 | |||
| 89c2322393 | |||
| 2845b2ea4b | |||
| d652e3c32f | |||
| 974b66aa60 | |||
| 6fb07e8ae3 | |||
| 7ddc578d1f | |||
| 6ad4a538eb | |||
| 6aa9b0518b | |||
| f47f27890c | |||
| bb8ce719b7 | |||
| 02d93007d4 | |||
| 319e390b87 | |||
| b589dafb48 | |||
| 3872501d7f | |||
| 6f33e529e5 | |||
| 9ec56fb323 | |||
| cdbf82ab7e | |||
| 9f57fdb739 | |||
| 2dc209afcc | |||
| cf65ec1448 | |||
| 2f8e492fc6 | |||
| 0e9fc9329d | |||
| a3d95d67c5 | |||
| af3cf7f33a | |||
| 7393a8220b | |||
| 18063bbbbf | |||
| e00e309662 | |||
| 75866f2e86 | |||
| 9457fd7ac0 | |||
| 2567e61944 | |||
| 692890f75d | |||
| 5b3467290f | |||
| e711c7b993 | |||
| 25d3b69fde | |||
| 1ee41654a2 | |||
| a1a0feb432 | |||
| 9372226d5c | |||
| db72b01e99 | |||
| e9e9a954ac | |||
| f8a9135f93 | |||
| e13a95fa0a | |||
| a7c1d6bf59 | |||
| 2e4486b49b | |||
| f7a1773105 | |||
| b9782ddb7c | |||
| e4f9cf881b | |||
| 79283a087a | |||
| 79882d03af | |||
| 7abae785cb | |||
| 132c979174 | |||
| 673df114cc | |||
| 33eb1a7ab7 | |||
| f8b730dbc8 | |||
| 406005815b | |||
| 72edf8e89d | |||
| 26e5889be5 | |||
| 4c483e506e | |||
| 4fd0b0e461 | |||
| b32d52bb85 | |||
| 2e3a753280 | |||
| f81b269215 | |||
| 9f9a19e84b | |||
| 633f2b56f9 | |||
| 0ba261fa11 | |||
| e3b71d57fc | |||
| a6f8b7c7ac | |||
| f542483beb | |||
| a67b397491 | |||
| 495493ee59 | |||
| b3dec6066a | |||
| 4a0ae7eff3 | |||
| 16f55bc01a | |||
| c309339666 | |||
| 539d7b1356 | |||
| 3185ca0f36 | |||
| 4dd2aa8df6 | |||
| 5f96f5dbb7 | |||
| 2dadace9e0 | |||
| e6edae010a | |||
| 1b7b530906 | |||
| c7c25895c2 | |||
| 3eb5c21b10 | |||
| da415dcbbd | |||
| bf2edb3776 | |||
| dd7010f2cd | |||
| cc7294cadb | |||
| 1f809a129d | |||
| edcdd0ab8e | |||
| da5a147393 | |||
| 321ca7e0ff | |||
| 04b9c9ae1d | |||
| f02690c3fe | |||
| 69d4a44b3c | |||
| 237fb15d19 | |||
| 124e90696c | |||
| d2ff657b81 | |||
| 0fb91dc2f8 | |||
| 8a39c5470e | |||
| 6174e93a7c | |||
| 08d55a40ff | |||
| ca716c5b7d | |||
| ed9bb79889 | |||
| 1747439048 | |||
| 419d0ba99a | |||
| 9a91fac28c | |||
| 39347207da | |||
| fe129f33ce | |||
| 2ed31b0b8a | |||
| 7b14e28ffa | |||
| 4c84e5f9a3 | |||
| 17de9d8da0 | |||
| b97006cda9 | |||
| 09d6d280a5 | |||
| a1b480b83e | |||
| 3a9cf26462 | |||
| 00db21d443 | |||
| dbc591ab44 | |||
| ebc9990f71 | |||
| 8c560d638d | |||
| 1541e891b4 | |||
| daf2f1a20f | |||
| fa7690a239 | |||
| 3a43362536 | |||
| c9144ea4c6 | |||
| 77ce9fbef3 | |||
| 4a621f44c2 | |||
| 2b29a23b26 | |||
| 2e20dd9058 | |||
| 13f125f508 | |||
| c025e51106 | |||
| 38356d622a | |||
| b0c898b97e | |||
| ec13c73f03 | |||
| edb7bc2fc3 | |||
| dee8a6d37a | |||
| f2da4416ae | |||
| f72475b172 | |||
| 1af0a7845d | |||
| 01d753cfc3 | |||
| 64dcd1d0d7 | |||
| 5ddbe33783 | |||
| b48fd55607 | |||
| 8489f6e02b | |||
| 434a69f15a | |||
| 922810b157 | |||
| b24d16534d | |||
| 861833b792 | |||
| 0e666c8e17 | |||
| b9308428ed | |||
| 4603f6db84 | |||
| 2ea9e20bd4 | |||
| c525b15de2 | |||
| 3fb32cc029 | |||
| 985a4b41dc | |||
| 5be7c96319 | |||
| b3a9d8d07d | |||
| e9944e0147 | |||
| 3f0bb334ed | |||
| 0363867177 | |||
| 2573f77c96 | |||
| 6f91f99649 | |||
| f26de54016 | |||
| b41613a67f | |||
| 806dc7f21b | |||
| abe4b20d46 | |||
| 2b79302d2b | |||
| 0574712c5c | |||
| 57774bb53e | |||
| 15d5213146 | |||
| 2c4d2af648 | |||
| 010c73675e | |||
| 6d958038cb | |||
| 4de761f624 | |||
| 1990eb70d4 | |||
| fe1d0e8f4c | |||
| a5c97f8b57 | |||
| ecd62f9fcc | |||
| 33b7f5ffb7 | |||
| c4e31235d5 | |||
| 729bdfd752 | |||
| 2c2e74d182 | |||
| 293805d0ef | |||
| 5255d356f3 | |||
| 03b0045ba9 | |||
| 01ed59348f | |||
| b82be5aac8 | |||
| 7d4f6a24d6 | |||
| 3e7519ff4f | |||
| f9e7e8c91f | |||
| b686c743c2 | |||
| 971611603b | |||
| 5bd661720d | |||
| 4039b87453 | |||
| f98ebcac7d | |||
| 7763f666fd | |||
| f71d111641 | |||
| 9dae8f2b66 | |||
| ea4f885923 | |||
| ba5b250faf | |||
| 2bd9e8adf1 | |||
| 0b40961549 | |||
| 26aa839648 | |||
| 0cf5cf0bfa | |||
| 9d84c6a435 | |||
| 06a5922b9d | |||
| 7e2e5c07c1 | |||
| 8f430b75c6 | |||
| 24b6e73b41 | |||
| d757c5c048 | |||
| beab3a36e1 | |||
| 4259d2d256 | |||
| 953af5b6b1 | |||
| 4e761e9f1d | |||
| 4929328d7f | |||
| c71da950ee | |||
| 62e0ca27d1 | |||
| 8123b8d899 | |||
| 828112bc48 | |||
| c74b034372 | |||
| cff1d0e2ac | |||
| 6a3b6ff05f | |||
| 48f23caff6 | |||
| 9bf8bf7c0f | |||
| fd3c746db2 | |||
| 58dc38315a | |||
| 86d34b1341 | |||
| 77ee0a7aab | |||
| fa86ad2322 | |||
| 0d7983c905 | |||
| 242f4496e5 | |||
| 40e05fcb72 | |||
| 650268b474 | |||
| b97b0bfde3 | |||
| c2cb1fd828 | |||
| 420e2b8518 | |||
| 6369200c6e | |||
| dce5c3f1b0 | |||
| e8657eff2a | |||
| aad4c38574 | |||
| 72d9418fd5 | |||
| 1da52687ae | |||
| de80aa2e42 | |||
| 9f7f51fc82 | |||
| dee0cf0424 | |||
| 575339bdb8 | |||
| cac21d43ad | |||
| a7ee06aeca | |||
| 55766a4b7a | |||
| 78e44be4d1 | |||
| 82fb489cdd | |||
| e18873cfa6 | |||
| d3bcc73216 | |||
| de88587dde | |||
| 1b5766ac77 | |||
| 7cbfe8eea4 | |||
| ae784a8e29 | |||
| 6d5e9a6835 | |||
| 819dd7b55f | |||
| ea281eb57c | |||
| 157934032e | |||
| 6676124c5b | |||
| 14e3951d7e | |||
| 99ce92b794 | |||
| 923cab1fc0 | |||
| 882ac192a2 | |||
| db72b90d3a | |||
| 7cc4bff37c | |||
| e0278e4b13 | |||
| ca66431f14 | |||
| 2e549efa1b | |||
| e30806413a | |||
| c4cad9ced9 | |||
| 32d9962dd1 | |||
| f03e7cf2a9 | |||
| f6e2e91a4d | |||
| 261430fdf9 | |||
| ee296ff09d | |||
| f7b3f95bcb | |||
| bea00062b4 | |||
| d586befe30 | |||
| 4269b2862f | |||
| ccda615144 | |||
| e142db5400 | |||
| 4d9e28ce09 | |||
| 7cb4914239 | |||
| ed498c296d | |||
| 948f3b5e09 | |||
| 27950b108b | |||
| 6a3ca43a1d | |||
| 08f303d73d | |||
| e1f905ffe0 | |||
| 290b677dbe | |||
| c1855bbf2a | |||
| 468b2bf877 | |||
| 5b88f73bf5 | |||
| b8f7f267ff | |||
| b8d663139b | |||
| 5984794ca5 | |||
| b725ab4d75 | |||
| 3da2f58ce7 | |||
| b683adb0ba | |||
| 17a84755ba | |||
| d58bd76f8c | |||
| d11c2e5b1b | |||
| 65b243b19f | |||
| 61f6422f4d | |||
| 3262b0e551 | |||
| c3ab05b40e | |||
| 8c3490eaf6 | |||
| 57cf4311a0 | |||
| e1d7bf74ba | |||
| 723badfdab | |||
| 8f6a51a4f8 | |||
| 4748ad961b | |||
| a9131b0841 | |||
| 467360bc3e | |||
| 90ffc2be3b | |||
| 11bbb0880d | |||
| e69514a338 | |||
| 66eac90262 | |||
| 2ddefee334 | |||
| 456f25d9e1 | |||
| e447a428d0 | |||
| c52c2306c3 | |||
| 68c07a11d4 | |||
| b4b8c74fd7 | |||
| 908524ff2e | |||
| bfd8f52e5e | |||
| 40ef42f18d | |||
| 057514398c | |||
| 2f1975eca7 | |||
| 199325b458 | |||
| 7bb737e4ab | |||
| 4a381a013c | |||
| 795601e243 | |||
| e0f902ef50 | |||
| a8c605da58 | |||
| 1330c28758 | |||
| 06cbaa82f2 | |||
| bdd3cd0795 | |||
| bb6fc86e0a | |||
| 900d28e002 | |||
| d41904eab0 | |||
| 22063acc38 | |||
| b61ecc11ae | |||
| ded9f2cc6a | |||
| a7c136cdeb | |||
| d1e75447a0 | |||
| 5263677365 | |||
| de6d5de360 | |||
| 66478ba28e | |||
| c6ed595019 | |||
| 7dd98a564c | |||
| 19d2417ffe | |||
| da2d9f6ed3 | |||
| 6b0256ae4c | |||
| 5ca14e42a6 | |||
| d150c439d4 | |||
| 9952900ca8 | |||
| bc2f1a2c82 | |||
| ec1c5b278c | |||
| 207cb4e6dd | |||
| f01770ba3c | |||
| dc2236c664 | |||
| 112e2a866a | |||
| 8add25ef19 | |||
| 4863b89e62 | |||
| f63dcd82f4 | |||
| 25b35c542a | |||
| fc3060d2d0 | |||
| 8f4cbc5a5c | |||
| 34cd2d3e77 |
67
.gitignore
vendored
67
.gitignore
vendored
@ -1,41 +1,4 @@
|
||||
build/
|
||||
dictionaries/
|
||||
LicenceManager/
|
||||
Common/boost_1_58_0
|
||||
Common/3dParty/boost/boost_1_58_0
|
||||
Common/3dParty/boost/boost.data
|
||||
Common/3dParty/boost/ios
|
||||
Common/3dParty/boost/osx
|
||||
Common/3dParty/icu/icu
|
||||
Common/3dParty/icu/win_64
|
||||
Common/3dParty/icu/win_32
|
||||
Common/3dParty/icu/linux_64
|
||||
Common/3dParty/icu/linux_32
|
||||
Common/3dParty/icu/mac_64
|
||||
Common/3dParty/icu/ios
|
||||
Common/3dParty/icu/android
|
||||
Common/3dParty/icu/mac-build
|
||||
Common/3dParty/cef/win_64
|
||||
Common/3dParty/cef/win_32
|
||||
Common/3dParty/cef/linux_64
|
||||
Common/3dParty/cef/linux_32
|
||||
Common/3dParty/cef/mac_64
|
||||
Common/3dParty/curl/win_64
|
||||
Common/3dParty/curl/win_32
|
||||
Common/3dParty/curl/linux_64
|
||||
Common/3dParty/curl/linux_32
|
||||
Common/3dParty/curl/mac_64
|
||||
Common/3dParty/v8/.cipd
|
||||
Common/3dParty/v8/.gclient
|
||||
Common/3dParty/v8/.gclient_entries
|
||||
Common/3dParty/v8/v8
|
||||
Common/3dParty/v8/depot_tools
|
||||
Common/3dParty/v8/win_64
|
||||
Common/3dParty/v8/win_32
|
||||
Common/3dParty/v8/linux_64
|
||||
Common/3dParty/v8/linux_32
|
||||
Common/3dParty/v8/mac_64
|
||||
Common/3dParty/openssl/openssl
|
||||
**/core_build
|
||||
**/Release
|
||||
**/Debug
|
||||
@ -50,15 +13,7 @@ Thumbs.db
|
||||
*.xcuserstate
|
||||
*.xcuserdatad
|
||||
**/Makefile.*
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.idl
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.tlb
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2.h
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2_i.c
|
||||
ASCOfficeXlsFile2/win32/_ASCOfficeXlsFile2_p.c
|
||||
ASCOfficeXlsFile2/win32/dlldata.c
|
||||
OfficeUtils/win32/OfficeUtilsLib/OfficeUtilsLib/ReadMe.txt
|
||||
X2tConverter/ASCOfficePPTXFile/PPTXLib/Linux/PPTXFormatLib/Makefile
|
||||
X2tConverter/Common/DocxFormat/DocxFormatLib/Makefile
|
||||
**/Makefile
|
||||
*.7z
|
||||
*.obj
|
||||
*.pdb
|
||||
@ -71,3 +26,23 @@ X2tConverter/Common/DocxFormat/DocxFormatLib/Makefile
|
||||
*.dat
|
||||
*.txt
|
||||
*.log
|
||||
|
||||
*.ipch
|
||||
*.ipch
|
||||
*.ipch
|
||||
|
||||
*.db-wal
|
||||
|
||||
*.db-shm
|
||||
|
||||
*.db
|
||||
|
||||
*.opendb
|
||||
|
||||
.vs
|
||||
|
||||
DesktopEditor/fontengine/js/common/freetype-2.10.4
|
||||
*_resource.rc
|
||||
|
||||
.qtc_clangd
|
||||
Common/3dParty/openssl/openssl/
|
||||
|
||||
@ -1,506 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include <list>
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#include "../../DesktopEditor/common/File.h"
|
||||
|
||||
inline static std::wstring ReplaceString(std::wstring subject, const std::wstring& search, const std::wstring& replace)
|
||||
{
|
||||
size_t pos = 0;
|
||||
|
||||
while ((pos = subject.find(search, pos)) != std::string::npos)
|
||||
{
|
||||
subject.replace(pos, search.length(), replace);
|
||||
pos += replace.length();
|
||||
}
|
||||
|
||||
return subject;
|
||||
}
|
||||
//----------------------------------------------------------------
|
||||
namespace XMLTools
|
||||
{
|
||||
/*========================================================================================================
|
||||
class XMLAttribute
|
||||
========================================================================================================*/
|
||||
|
||||
class XMLAttribute
|
||||
{
|
||||
private:
|
||||
std::wstring m_Name;
|
||||
std::wstring m_Value;
|
||||
|
||||
public:
|
||||
|
||||
XMLAttribute()
|
||||
{
|
||||
|
||||
}
|
||||
XMLAttribute( const std::wstring & name ) : m_Name(name)
|
||||
{
|
||||
}
|
||||
XMLAttribute( const std::wstring & name, const std::wstring & value ) : m_Name(name), m_Value(value)
|
||||
{
|
||||
}
|
||||
~XMLAttribute()
|
||||
{
|
||||
}
|
||||
void SetValue( const std::wstring & value )
|
||||
{
|
||||
m_Value = std::wstring( value );
|
||||
}
|
||||
std::wstring GetName() const
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::wstring GetValue() const
|
||||
{
|
||||
return m_Value;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::wstring GetXMLString()
|
||||
{
|
||||
std::wstring xmlString( L"" );
|
||||
|
||||
xmlString += m_Name;
|
||||
xmlString += std::wstring( L"=\"" );
|
||||
xmlString += m_Value;
|
||||
xmlString += std::wstring( L"\"" );
|
||||
|
||||
return xmlString;
|
||||
}
|
||||
};
|
||||
|
||||
/*========================================================================================================
|
||||
class XMLElement
|
||||
========================================================================================================*/
|
||||
|
||||
class XMLElement;
|
||||
typedef class boost::shared_ptr<XMLElement> XMLElementPtr;
|
||||
|
||||
class XMLElement
|
||||
{
|
||||
typedef std::pair< std::wstring, std::wstring> AttributeValuePair;
|
||||
|
||||
private:
|
||||
std::wstring m_Name;
|
||||
std::wstring m_ElementText;
|
||||
std::map<std::wstring, std::wstring> m_AttributeMap;
|
||||
std::map<std::wstring, int> m_ChildMap; //for uniq
|
||||
std::list<XMLElement> m_Elements;
|
||||
|
||||
typedef std::list<XMLElement>::iterator ElementsIterator;
|
||||
typedef std::list<XMLElement>::const_iterator ElementsIteratorConst;
|
||||
|
||||
typedef std::map<std::wstring, std::wstring>::iterator AttMapIterator;
|
||||
typedef std::map<std::wstring, std::wstring>::const_iterator AttMapIteratorConst;
|
||||
|
||||
public:
|
||||
|
||||
XMLElement() {}
|
||||
|
||||
XMLElement( const std::wstring & name ) : m_Name(name)
|
||||
{
|
||||
|
||||
}
|
||||
XMLElement( const std::wstring & prefix, const std::wstring & localName ) :
|
||||
m_Name( std::wstring( prefix ) + std::wstring( L":" ) + std::wstring( localName ) ), m_ElementText( L"" )
|
||||
{
|
||||
|
||||
}
|
||||
~XMLElement() {}
|
||||
|
||||
void AppendText( const std::wstring & text )
|
||||
{
|
||||
m_ElementText = std::wstring( text );
|
||||
}
|
||||
|
||||
void AppendTextSymbol( const wchar_t symbol )
|
||||
{
|
||||
m_ElementText += std::wstring( &symbol );
|
||||
}
|
||||
|
||||
void AppendAttribute( const XMLAttribute& attribute )
|
||||
{
|
||||
AttributeValuePair p( attribute.GetName(), attribute.GetValue() );
|
||||
|
||||
m_AttributeMap.insert( p );
|
||||
}
|
||||
|
||||
void AppendAttribute( const std::wstring & name, const std::wstring & value )
|
||||
{
|
||||
AttributeValuePair p( name , value );
|
||||
|
||||
m_AttributeMap.insert( p );
|
||||
}
|
||||
|
||||
void AppendChild( const XMLElement& element, bool uniq = false)
|
||||
{
|
||||
if (m_ChildMap.find(element.GetName()) != m_ChildMap.end())
|
||||
{
|
||||
if (uniq) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ChildMap.insert(m_ChildMap.end(), std::pair<std::wstring, int>(element.GetName(), 0));
|
||||
}
|
||||
m_Elements.push_back( element );
|
||||
}
|
||||
void AppendChild( XMLElementPtr element, bool uniq = false)
|
||||
{
|
||||
if (!element) return;
|
||||
|
||||
if (m_ChildMap.find(element->GetName()) != m_ChildMap.end())
|
||||
{
|
||||
if (uniq) return;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ChildMap.insert(m_ChildMap.end(), std::pair<std::wstring, int>(element->GetName(), 0));
|
||||
}
|
||||
m_Elements.push_back( *element.get() );
|
||||
}
|
||||
void RemoveChild( const XMLElement& element )
|
||||
{
|
||||
m_Elements.remove( element );
|
||||
}
|
||||
|
||||
bool FindChild( const XMLElement& element )
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
{
|
||||
if ( *iter == element )
|
||||
{
|
||||
result = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
bool FindChildByName( const std::wstring & elementName ) const
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
for ( ElementsIteratorConst iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
{
|
||||
if ( iter->m_Name == std::wstring( elementName ) )
|
||||
{
|
||||
result = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
bool RemoveChildByName( const std::wstring& elementName )
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
{
|
||||
if ( iter->m_Name == elementName )
|
||||
{
|
||||
m_Elements.erase( iter );
|
||||
|
||||
result = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
bool operator == ( const XMLElement& element ) const
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
result = ( m_Name == element.m_Name );
|
||||
|
||||
if ( m_AttributeMap.size() != element.m_AttributeMap.size() )
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
AttMapIteratorConst thisIter = m_AttributeMap.begin();
|
||||
AttMapIteratorConst elementIter = element.m_AttributeMap.begin();
|
||||
|
||||
for ( ; thisIter != m_AttributeMap.end(); thisIter++, elementIter++ )
|
||||
{
|
||||
if ( ( thisIter->first != elementIter->first ) || ( thisIter->second != elementIter->second ) )
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_Elements.size() != element.m_Elements.size() )
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
ElementsIteratorConst thisIter = m_Elements.begin();
|
||||
ElementsIteratorConst elementIter = element.m_Elements.begin();
|
||||
|
||||
for ( ; thisIter != m_Elements.end(); thisIter++, elementIter++ )
|
||||
{
|
||||
if ( !( (*thisIter) == (*elementIter) ) )
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::wstring GetName() const
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::wstring GetXMLString()
|
||||
{
|
||||
std::wstring xmlString( L"");
|
||||
|
||||
bool bIsNameExists = ( m_Name != std::wstring( L"") );
|
||||
bool bIsTextExists = ( m_ElementText != std::wstring( L"") );
|
||||
|
||||
if ( bIsNameExists )
|
||||
{
|
||||
xmlString += std::wstring( L"<" ) + m_Name;
|
||||
}
|
||||
|
||||
if ( ( bIsNameExists ) && ( m_AttributeMap.size() > 0 ) )
|
||||
{
|
||||
for ( AttMapIterator iter = m_AttributeMap.begin(); iter != m_AttributeMap.end(); iter++ )
|
||||
{
|
||||
xmlString += std::wstring( L" " );
|
||||
xmlString += iter->first;
|
||||
xmlString += std::wstring( L"=\"" );
|
||||
xmlString += iter->second;
|
||||
xmlString += std::wstring( L"\"" );
|
||||
}
|
||||
}
|
||||
|
||||
if ( ( m_Elements.size() > 0 ) || ( bIsTextExists ) )
|
||||
{
|
||||
if ( bIsNameExists )
|
||||
{
|
||||
xmlString += std::wstring( L">" );
|
||||
}
|
||||
|
||||
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
{
|
||||
xmlString += iter->GetXMLString();
|
||||
}
|
||||
|
||||
if ( bIsTextExists )
|
||||
{
|
||||
xmlString += m_ElementText;
|
||||
}
|
||||
|
||||
if ( bIsNameExists )
|
||||
{
|
||||
xmlString += std::wstring( L"</" );
|
||||
xmlString += m_Name;
|
||||
xmlString += std::wstring( L">" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( bIsNameExists )
|
||||
{
|
||||
xmlString += std::wstring( L"/>" );
|
||||
}
|
||||
}
|
||||
|
||||
return xmlString;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
unsigned int GetAttributeCount() const
|
||||
{
|
||||
return (unsigned int)m_AttributeMap.size();
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
unsigned int GetChildCount() const
|
||||
{
|
||||
return (unsigned int)m_Elements.size();
|
||||
}
|
||||
};
|
||||
|
||||
class CStringXmlWriter
|
||||
{
|
||||
std::wstring m_str;
|
||||
|
||||
public:
|
||||
CStringXmlWriter(){}
|
||||
std::wstring GetXmlString()
|
||||
{
|
||||
return m_str;
|
||||
}
|
||||
void SetXmlString(const std::wstring& strValue)
|
||||
{
|
||||
m_str = strValue;
|
||||
}
|
||||
void Clear()
|
||||
{
|
||||
m_str.clear();
|
||||
}
|
||||
bool SaveToFile(const std::wstring& strFilePath, bool bEncodingToUTF8 = false)
|
||||
{
|
||||
NSFile::CFileBinary file;
|
||||
if (!file.CreateFileW(strFilePath)) return false;
|
||||
|
||||
if (bEncodingToUTF8)
|
||||
file.WriteStringUTF8(m_str);
|
||||
else
|
||||
{
|
||||
std::string s(m_str.begin(), m_str.end());
|
||||
file.WriteFile((unsigned char*)s.c_str(), (DWORD)s.length());
|
||||
}
|
||||
file.CloseFile();
|
||||
return true;
|
||||
}
|
||||
|
||||
void WriteString(const std::wstring & strValue)
|
||||
{
|
||||
m_str += strValue;
|
||||
}
|
||||
|
||||
void WriteInteger(int Value, int Base = 10)
|
||||
{
|
||||
m_str += std::to_wstring(Value);
|
||||
}
|
||||
|
||||
void WriteDouble(double Value)
|
||||
{
|
||||
m_str += std::to_wstring(Value);
|
||||
}
|
||||
void WriteBoolean(bool Value)
|
||||
{
|
||||
if (Value)
|
||||
m_str += L"true";
|
||||
else
|
||||
m_str += L"false";
|
||||
}
|
||||
void WriteNodeBegin(const std::wstring& strNodeName, bool bAttributed = false)
|
||||
{
|
||||
m_str += L"<" + strNodeName;
|
||||
|
||||
if (!bAttributed)
|
||||
m_str += L">";
|
||||
}
|
||||
void WriteNodeEnd(const std::wstring& strNodeName, bool bEmptyNode = false, bool bEndNode = true)
|
||||
{
|
||||
if (bEmptyNode)
|
||||
{
|
||||
if (bEndNode)
|
||||
m_str += L"/>";
|
||||
else
|
||||
m_str += L">";
|
||||
}
|
||||
else
|
||||
m_str += L"</" + strNodeName + L">";
|
||||
}
|
||||
void WriteNode(const std::wstring& strNodeName, const std::wstring& strNodeValue)
|
||||
{
|
||||
if (strNodeValue.length() == 0)
|
||||
m_str += L"<" + strNodeName + L"/>";
|
||||
else
|
||||
m_str += L"<" + strNodeName + L">" + strNodeValue + L"</" + strNodeName + L">";
|
||||
}
|
||||
void WriteNode(const std::wstring& strNodeName, int nValue, int nBase = 10, const std::wstring& strTextBeforeValue = L"", const std::wstring& strTextAfterValue = L"")
|
||||
{
|
||||
WriteNodeBegin(strNodeName);
|
||||
WriteString(strTextBeforeValue);
|
||||
WriteInteger(nValue, nBase);
|
||||
WriteString(strTextAfterValue);
|
||||
WriteNodeEnd(strNodeName);
|
||||
}
|
||||
void WriteNode(const std::wstring& strNodeName, double dValue)
|
||||
{
|
||||
WriteNodeBegin(strNodeName);
|
||||
WriteDouble(dValue);
|
||||
WriteNodeEnd(strNodeName);
|
||||
}
|
||||
void WriteAttribute(const std::wstring& strAttributeName, const std::wstring& strAttributeValue)
|
||||
{
|
||||
m_str += L" " + strAttributeName + L"=\"" + strAttributeValue + L"\"";
|
||||
}
|
||||
void WriteAttribute(const std::wstring& strAttributeName, int nValue, int nBase = 10, const std::wstring& strTextBeforeValue = L"", const std::wstring& strTextAfterValue = L"")
|
||||
{
|
||||
WriteString(L" " + strAttributeName + L"=");
|
||||
WriteString(L"\"");
|
||||
WriteString(strTextBeforeValue);
|
||||
WriteInteger(nValue, nBase);
|
||||
WriteString(strTextAfterValue);
|
||||
WriteString(L"\"");
|
||||
}
|
||||
void WriteAttribute(const std::wstring& strAttributeName, double dValue)
|
||||
{
|
||||
WriteString(L" " + strAttributeName + L"=");
|
||||
WriteString(L"\"");
|
||||
WriteDouble(dValue);
|
||||
WriteString(L"\"");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
@ -1,93 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class AutoSummaryInfo
|
||||
{
|
||||
private:
|
||||
/// True if the ASUMYI is valid
|
||||
bool fValid;
|
||||
/// True if AutoSummary View is active
|
||||
bool fView;
|
||||
/// Display method for AutoSummary View:
|
||||
/// 0 = Emphasize in current doc
|
||||
/// 1 = Reduce doc to summary
|
||||
/// 2 = Insert into doc
|
||||
/// 3 = Show in new document
|
||||
short iViewBy;
|
||||
/// True if File Properties summary information
|
||||
/// should be updated after the next summarization
|
||||
bool fUpdateProps;
|
||||
/// Dialog summary level
|
||||
short wDlgLevel;
|
||||
/// Upper bound for lLevel for sentences in this document
|
||||
int lHighestLevel;
|
||||
/// Show document sentences at or below this level
|
||||
int lCurrentLevel;
|
||||
|
||||
public:
|
||||
virtual ~AutoSummaryInfo()
|
||||
{
|
||||
}
|
||||
|
||||
AutoSummaryInfo():
|
||||
fValid(false), fView(false), iViewBy(0), fUpdateProps(false), wDlgLevel(0),
|
||||
lHighestLevel(0), lCurrentLevel(0)
|
||||
{
|
||||
}
|
||||
|
||||
/// Parses the bytes to retrieve a AutoSummaryInfo
|
||||
AutoSummaryInfo( unsigned char* bytes, int size ):
|
||||
fValid(false), fView(false), iViewBy(0), fUpdateProps(false), wDlgLevel(0),
|
||||
lHighestLevel(0), lCurrentLevel(0)
|
||||
{
|
||||
if ( size == 12 )
|
||||
{
|
||||
//split unsigned char 0 and 1 into bits
|
||||
this->fValid = FormatUtils::GetBitFromBytes( bytes, size, 0 );
|
||||
this->fView = FormatUtils::GetBitFromBytes( bytes, size, 1 );
|
||||
this->iViewBy = (short)FormatUtils::GetUIntFromBytesBits( bytes, size, 2, 2 );
|
||||
this->fUpdateProps = FormatUtils::GetBitFromBytes( bytes, size, 4 );
|
||||
|
||||
this->wDlgLevel = FormatUtils::BytesToInt16( bytes, 2, size );
|
||||
this->lHighestLevel = FormatUtils::BytesToInt32( bytes, 4, size );
|
||||
this->lCurrentLevel = FormatUtils::BytesToInt32( bytes, 8, size );
|
||||
}
|
||||
else
|
||||
{
|
||||
//throw new ByteParseException("Cannot parse the struct ASUMYI, the length of the struct doesn't match");
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,104 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "VirtualStreamReader.h"
|
||||
#include "ByteStructure.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class BookmarkFirst: public ByteStructure
|
||||
{
|
||||
private:
|
||||
short ibkl;
|
||||
short bkc;
|
||||
|
||||
public:
|
||||
static const int STRUCTURE_SIZE = 4;
|
||||
|
||||
BookmarkFirst()
|
||||
{
|
||||
}
|
||||
|
||||
short GetIndex() const
|
||||
{
|
||||
return this->ibkl;
|
||||
}
|
||||
|
||||
short GetInformation() const
|
||||
{
|
||||
return this->bkc;
|
||||
}
|
||||
|
||||
virtual ~BookmarkFirst()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
|
||||
{
|
||||
BookmarkFirst *newObject = new BookmarkFirst();
|
||||
|
||||
newObject->ibkl = reader->ReadInt16();
|
||||
newObject->bkc = reader->ReadInt16();
|
||||
|
||||
return static_cast<ByteStructure*>( newObject );
|
||||
}
|
||||
};
|
||||
class AtnBookmarkFirst: public ByteStructure
|
||||
{
|
||||
public:
|
||||
unsigned short bmc;
|
||||
unsigned int lTag;
|
||||
|
||||
static const int STRUCTURE_SIZE = 10;
|
||||
|
||||
AtnBookmarkFirst()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~AtnBookmarkFirst()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
|
||||
{
|
||||
AtnBookmarkFirst *newObject = new AtnBookmarkFirst();
|
||||
|
||||
newObject->bmc = reader->ReadUInt16(); //0x0100
|
||||
newObject->lTag = reader->ReadUInt32();
|
||||
|
||||
unsigned int lTagOld = reader->ReadUInt32();
|
||||
|
||||
return static_cast<ByteStructure*>( newObject );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,207 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IVisitable.h"
|
||||
#include "Global.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
typedef enum _BorderType
|
||||
{
|
||||
none = 0,
|
||||
single,
|
||||
thick,
|
||||
Double,
|
||||
unused,
|
||||
hairline,
|
||||
dotted,
|
||||
dashed,
|
||||
dotDash,
|
||||
dotDotDash,
|
||||
triple,
|
||||
thinThickSmallGap,
|
||||
thickThinSmallGap,
|
||||
thinThickThinSmallGap,
|
||||
thinThickMediumGap,
|
||||
thickThinMediumGap,
|
||||
thinThickThinMediumGap,
|
||||
thinThickLargeGap,
|
||||
thickThinLargeGap,
|
||||
thinThickThinLargeGap,
|
||||
wave,
|
||||
doubleWave,
|
||||
dashSmallGap,
|
||||
dashDotStroked,
|
||||
threeDEmboss,
|
||||
threeDEngrave
|
||||
} BorderType;
|
||||
|
||||
class BorderCode: public IVisitable
|
||||
{
|
||||
friend class DocumentMapping;
|
||||
friend class PropertiesMapping;
|
||||
friend class VMLPictureMapping;
|
||||
|
||||
private:
|
||||
/// 24-bit border color
|
||||
int cv;
|
||||
/// Width of a single line in 1/8pt, max of 32pt
|
||||
unsigned char dptLineWidth;
|
||||
/// Border type code:
|
||||
/// 0 none
|
||||
/// 1 single
|
||||
/// 2 thick
|
||||
/// 3 double
|
||||
/// 5 hairline
|
||||
/// 6 dot
|
||||
/// 7 dash large gap
|
||||
/// 8 dot dash
|
||||
/// 9 dot dot dash
|
||||
/// 10 triple
|
||||
/// 11 thin-thick small gap
|
||||
/// 12 tick-thin small gap
|
||||
/// 13 thin-thick-thin small gap
|
||||
/// 14 thin-thick medium gap
|
||||
/// 15 thick-thin medium gap
|
||||
/// 16 thin-thick-thin medium gap
|
||||
/// 17 thin-thick large gap
|
||||
/// 18 thick-thin large gap
|
||||
/// 19 thin-thick-thin large gap
|
||||
/// 20 wave
|
||||
/// 21 double wave
|
||||
/// 22 dash small gap
|
||||
/// 23 dash dot stroked
|
||||
/// 24 emboss 3D
|
||||
/// 25 engrave 3D
|
||||
unsigned char brcType;
|
||||
/// The color of the Border.
|
||||
/// Unused if cv is set.
|
||||
std::wstring ico;
|
||||
/// Width of space to maintain between border and text within border
|
||||
int dptSpace;
|
||||
/// When true, border is drawn with shadow. Must be false when BRC is substructure of the TC
|
||||
bool fShadow;
|
||||
/// When true, don't reverse the border
|
||||
bool fFrame;
|
||||
/// It's a nil BRC, bytes are FFFF.
|
||||
bool fNil;
|
||||
|
||||
public:
|
||||
/// Creates a new BorderCode with default values
|
||||
BorderCode(): cv(0), dptLineWidth(0), brcType(0), ico( Global::ColorNameIdentifier[0] ), dptSpace(0), fShadow(false), fFrame(false), fNil(false)
|
||||
{
|
||||
}
|
||||
|
||||
/// Parses the unsigned char for a BRC
|
||||
BorderCode( unsigned char* bytes, int size ):
|
||||
cv(0), dptLineWidth(0), brcType(0), ico( Global::ColorNameIdentifier[0] ), dptSpace(0), fShadow(false), fFrame(false), fNil(false)
|
||||
{
|
||||
if ( FormatUtils::ArraySum( bytes, size ) == ( size * 255 ) )
|
||||
{
|
||||
fNil = true;
|
||||
}
|
||||
else if ( size == 8 )
|
||||
{
|
||||
//it's a border code of Word 2000/2003
|
||||
cv = FormatUtils::BytesToInt32( bytes, 0, size );
|
||||
ico = std::wstring( Global::ColorIdentifier[0] );
|
||||
|
||||
dptLineWidth = bytes[4];
|
||||
brcType = bytes[5];
|
||||
|
||||
short val = FormatUtils::BytesToInt16( bytes, 6, size );
|
||||
dptSpace = val & 0x001F;
|
||||
|
||||
//not sure if this is correct, the values from the spec are definitly wrong:
|
||||
fShadow = FormatUtils::BitmaskToBool( val, 0x20 );
|
||||
fFrame = FormatUtils::BitmaskToBool( val, 0x40 );
|
||||
}
|
||||
else if ( size == 4 )
|
||||
{
|
||||
unsigned short val = FormatUtils::BytesToUInt16( bytes, 0, size );
|
||||
|
||||
dptLineWidth = (unsigned char)( val & 0x00FF );
|
||||
brcType = (unsigned char)( ( val & 0xFF00 ) >> 8 );
|
||||
|
||||
val = FormatUtils::BytesToUInt16( bytes, 2, size );
|
||||
|
||||
ico = FormatUtils::MapValueToWideString( ( val & 0x00FF ), &Global::ColorNameIdentifier[0][0], 17, 12 );
|
||||
dptSpace = ( val & 0x1F00 ) >> 8;
|
||||
}
|
||||
else if (size == 2)
|
||||
{
|
||||
unsigned short val = FormatUtils::BytesToUInt16( bytes, 0, size );
|
||||
|
||||
dptLineWidth = GETBITS(val, 0, 2);
|
||||
brcType = GETBITS(val, 3, 4);
|
||||
fShadow = GETBIT(val, 5);
|
||||
ico = FormatUtils::MapValueToWideString(GETBITS(val, 6, 10), &Global::ColorNameIdentifier[0][0], 17, 12 );
|
||||
dptSpace = GETBITS(val, 11, 15);
|
||||
|
||||
}
|
||||
}
|
||||
BorderCode( const BorderCode& bc )
|
||||
{
|
||||
if ( this != &bc )
|
||||
{
|
||||
cv = bc.cv;
|
||||
dptLineWidth = bc.dptLineWidth;
|
||||
brcType = bc.brcType;
|
||||
ico = bc.ico;
|
||||
dptSpace = bc.dptSpace;
|
||||
fShadow = bc.fShadow;
|
||||
fFrame = bc.fFrame;
|
||||
fNil = bc.fNil;
|
||||
}
|
||||
}
|
||||
|
||||
bool operator == ( const BorderCode& bc )
|
||||
{
|
||||
if ( ( cv == bc.cv ) && ( dptLineWidth == bc.dptLineWidth ) && ( brcType == bc.brcType ) &&
|
||||
( ico == bc.ico ) && ( dptSpace == bc.dptSpace ) && ( fShadow == bc.fShadow ) &&
|
||||
( fFrame == bc.fFrame ) && ( fNil == bc.fNil ) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool operator != ( const BorderCode& bc )
|
||||
{
|
||||
return !( *this == bc );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,703 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "CharacterPropertiesMapping.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
CharacterPropertiesMapping::CharacterPropertiesMapping( XMLTools::CStringXmlWriter* writer, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded)
|
||||
: PropertiesMapping( writer ), _isRunStyleNeeded(isRunStyleNeeded), _isOwnRPr(true), _isRTL(false)
|
||||
{
|
||||
_doc = doc;
|
||||
_rPr = new XMLTools::XMLElement( L"w:rPr");
|
||||
_revisionData = rev;
|
||||
_currentPapx = currentPapx;
|
||||
_styleChpx = styleChpx;
|
||||
_currentIstd = USHRT_MAX;
|
||||
_webHidden = false;
|
||||
}
|
||||
|
||||
CharacterPropertiesMapping::CharacterPropertiesMapping( XMLTools::XMLElement* rPr, WordDocument* doc, RevisionData* rev, ParagraphPropertyExceptions* currentPapx, bool styleChpx, bool isRunStyleNeeded )
|
||||
: PropertiesMapping( NULL ), _isRunStyleNeeded(isRunStyleNeeded), _isOwnRPr(false), _isRTL(false)
|
||||
{
|
||||
_doc = doc;
|
||||
_rPr = rPr;
|
||||
_revisionData = rev;
|
||||
_currentPapx = currentPapx;
|
||||
_styleChpx = styleChpx;
|
||||
_currentIstd = USHRT_MAX;
|
||||
_webHidden = false;
|
||||
}
|
||||
|
||||
CharacterPropertiesMapping::~CharacterPropertiesMapping()
|
||||
{
|
||||
if (_isOwnRPr)
|
||||
{
|
||||
RELEASEOBJECT(_rPr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
void CharacterPropertiesMapping::Apply( IVisitable* chpx )
|
||||
{
|
||||
//convert the normal SPRMS
|
||||
convertSprms( dynamic_cast<CharacterPropertyExceptions*>( chpx )->grpprl, _rPr );
|
||||
|
||||
// apend revision changes
|
||||
if ((_revisionData) && (_revisionData->Type == Changed))
|
||||
{
|
||||
XMLTools::XMLElement rPrChange( L"w:rPrChange");
|
||||
|
||||
//todooo date - _revisionData->Dttm.Convert( new DateMapping( rPrChange ) );
|
||||
|
||||
WideString* author_str = static_cast<WideString*>( _doc->RevisionAuthorTable->operator []( _revisionData->Isbt ));
|
||||
|
||||
if (author_str)
|
||||
{
|
||||
XMLTools::XMLAttribute author( L"w:author", FormatUtils::XmlEncode(*author_str));
|
||||
rPrChange.AppendAttribute( author );
|
||||
}
|
||||
XMLTools::XMLAttribute date( L"w:date", _revisionData->Dttm.getString());
|
||||
rPrChange.AppendAttribute( date );
|
||||
|
||||
XMLTools::XMLElement rPr(L"w:rPr");
|
||||
//convert revision stack
|
||||
convertSprms( _revisionData->Changes, &rPr);
|
||||
|
||||
rPrChange.AppendChild(rPr);
|
||||
|
||||
_rPr->AppendChild( rPrChange );
|
||||
}
|
||||
|
||||
//write properties
|
||||
if ( ( m_pXmlWriter != NULL ) && ( ( _rPr->GetChildCount() > 0 ) || ( _rPr->GetAttributeCount() > 0 ) ) )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _rPr->GetXMLString());
|
||||
}
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
bool CharacterPropertiesMapping::CheckIsSymbolFont()
|
||||
{
|
||||
//Todo сделать определение симольного шрифта через fontManager
|
||||
//Заглушка под Google Docs, они пишут bullet в Arial
|
||||
if (-1 != m_sAsciiFont.find (L"Arial") && -1 != m_sEastAsiaFont.find (L"Arial") && -1 != m_shAnsiFont.find (L"Arial"))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
void CharacterPropertiesMapping::convertSprms( std::list<SinglePropertyModifier>* sprms, XMLTools::XMLElement* parent )
|
||||
{
|
||||
XMLTools::XMLElement * rFonts = new XMLTools::XMLElement ( L"w:rFonts" );
|
||||
XMLTools::XMLElement * color = new XMLTools::XMLElement ( L"w:color" );
|
||||
XMLTools::XMLAttribute * colorVal = new XMLTools::XMLAttribute ( L"w:val" );
|
||||
XMLTools::XMLElement * lang = new XMLTools::XMLElement ( L"w:lang" );
|
||||
|
||||
if (_webHidden)
|
||||
{
|
||||
XMLTools::XMLElement * webHidden = new XMLTools::XMLElement ( L"w:webHidden" );
|
||||
parent->AppendChild( *webHidden );
|
||||
RELEASEOBJECT( webHidden );
|
||||
}
|
||||
if ((sprms) && (!sprms->empty()))
|
||||
{
|
||||
std::list<SinglePropertyModifier>::iterator end = sprms->end();
|
||||
for (std::list<SinglePropertyModifier>::iterator iter = sprms->begin(); iter != end; ++iter)
|
||||
{
|
||||
int nProperty = 0; //for unknown test
|
||||
|
||||
switch ( (int)( iter->OpCode ) )
|
||||
{
|
||||
case sprmOldCIstd :
|
||||
case sprmCIstd : // style id
|
||||
{
|
||||
if (_isRunStyleNeeded && !_webHidden)
|
||||
{
|
||||
_currentIstd = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
if (_currentIstd < _doc->Styles->Styles->size())
|
||||
{
|
||||
appendValueElement( parent, L"rStyle", StyleSheetMapping::MakeStyleId( _doc->Styles->Styles->at( _currentIstd ) ), true );
|
||||
}
|
||||
}
|
||||
}break;
|
||||
|
||||
case sprmCFBiDi :
|
||||
appendFlagElement( parent, *iter, L"rtl", true );
|
||||
_isRTL = true;
|
||||
break;
|
||||
|
||||
case sprmOldCFBold :
|
||||
case sprmCFBold :
|
||||
appendFlagElement( parent, *iter, L"b", true );
|
||||
break;
|
||||
|
||||
case sprmCFBoldBi :
|
||||
appendFlagElement( parent, *iter, L"bCs", true );
|
||||
break;
|
||||
|
||||
case sprmOldCFCaps :
|
||||
case sprmCFCaps :
|
||||
appendFlagElement( parent, *iter, L"caps", true );
|
||||
break;
|
||||
|
||||
case sprmCFComplexScripts :
|
||||
appendFlagElement( parent, *iter, L"cs", true );
|
||||
break;
|
||||
|
||||
case sprmCFDStrike :
|
||||
appendFlagElement( parent, *iter, L"dstrike", true );
|
||||
break;
|
||||
|
||||
case sprmCFEmboss :
|
||||
appendFlagElement( parent, *iter, L"emboss", true );
|
||||
break;
|
||||
|
||||
case sprmCFImprint :
|
||||
appendFlagElement( parent, *iter, L"imprint", true );
|
||||
break;
|
||||
|
||||
case sprmOldCFItalic :
|
||||
case sprmCFItalic :
|
||||
appendFlagElement( parent, *iter, L"i", true );
|
||||
break;
|
||||
|
||||
case sprmCFItalicBi:
|
||||
appendFlagElement( parent, *iter, L"iCs", true );
|
||||
break;
|
||||
|
||||
case 0x0875:
|
||||
appendFlagElement( parent, *iter, L"noProof", true );
|
||||
break;
|
||||
|
||||
case sprmOldCFOutline:
|
||||
case sprmCFOutline:
|
||||
appendFlagElement( parent, *iter, L"outline", true );
|
||||
break;
|
||||
|
||||
case sprmOldCFShadow:
|
||||
case sprmCFShadow:
|
||||
appendFlagElement( parent, *iter, L"shadow", true );
|
||||
break;
|
||||
|
||||
case sprmOldCFSmallCaps:
|
||||
case sprmCFSmallCaps:
|
||||
appendFlagElement( parent, *iter, L"smallCaps", true );
|
||||
break;
|
||||
|
||||
case sprmCFSpecVanish:
|
||||
appendFlagElement( parent, *iter, L"specVanish", true );
|
||||
break;
|
||||
|
||||
case sprmOldCFStrike:
|
||||
case sprmCFStrike:
|
||||
appendFlagElement( parent, *iter, L"strike", true );
|
||||
break;
|
||||
|
||||
case sprmOldCFVanish:
|
||||
case sprmCFVanish:
|
||||
appendFlagElement( parent, *iter, L"vanish", true );
|
||||
break;
|
||||
|
||||
case 0x0811:
|
||||
appendFlagElement( parent, *iter, L"webHidden", true );
|
||||
break;
|
||||
|
||||
case sprmOldCIss:
|
||||
case sprmCIss:
|
||||
if (iter->argumentsSize > 0 && iter->Arguments[0] < 3) //Metaevan.doc
|
||||
appendValueElement( parent, L"vertAlign", FormatUtils::MapValueToWideString( iter->Arguments[0], &SuperscriptIndex[0][0], 3, 12 ), true );
|
||||
break;
|
||||
|
||||
case sprmCRgLid0_80:
|
||||
case sprmCRgLid0:
|
||||
{ //latin
|
||||
LanguageId langid( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
|
||||
LanguageIdMapping* langIDMapping = new LanguageIdMapping( lang, Default );
|
||||
|
||||
langid.Convert( langIDMapping );
|
||||
|
||||
RELEASEOBJECT( langIDMapping );
|
||||
}break;
|
||||
|
||||
case sprmOldCLid:
|
||||
case sprmCRgLid1_80:
|
||||
case sprmCRgLid1:
|
||||
{ //east asia
|
||||
LanguageId langid( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
|
||||
LanguageIdMapping* langIDMapping = new LanguageIdMapping( lang, EastAsian );
|
||||
|
||||
langid.Convert( langIDMapping );
|
||||
|
||||
RELEASEOBJECT( langIDMapping );
|
||||
}break;
|
||||
|
||||
case sprmCLidBi:
|
||||
{
|
||||
LanguageId langid( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
|
||||
LanguageIdMapping* langIDMapping = new LanguageIdMapping( lang, Complex );
|
||||
|
||||
langid.Convert( langIDMapping );
|
||||
|
||||
RELEASEOBJECT( langIDMapping );
|
||||
}break;
|
||||
|
||||
case sprmCBrc80:
|
||||
case sprmCBrc:
|
||||
{ //borders
|
||||
XMLTools::XMLElement bdr( L"w:bdr" );
|
||||
BorderCode bc( iter->Arguments, iter->argumentsSize );
|
||||
appendBorderAttributes( &bc, &bdr );
|
||||
parent->AppendChild( bdr );
|
||||
}break;
|
||||
|
||||
case sprmCShd80:
|
||||
case sprmCShd:
|
||||
{ //shading
|
||||
ShadingDescriptor desc( iter->Arguments, iter->argumentsSize );
|
||||
|
||||
appendShading( parent, desc );
|
||||
}break;
|
||||
|
||||
case sprmOldCIco:
|
||||
case sprmCIco:
|
||||
case sprmCIcoBi:
|
||||
{//color
|
||||
colorVal->SetValue( FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::ColorIdentifier[0][0], 17, 12 ));
|
||||
}break;
|
||||
|
||||
case sprmCCv:
|
||||
{
|
||||
std::wstringstream sstream;
|
||||
|
||||
sstream << boost::wformat(L"%02x%02x%02x") % iter->Arguments[0] % /*G*/iter->Arguments[1] % /*B*/iter->Arguments[2];
|
||||
colorVal->SetValue(sstream.str());
|
||||
}break;
|
||||
|
||||
case sprmCOldHighlight:
|
||||
{
|
||||
appendValueElement( parent, L"highlight", FormatUtils::MapValueToWideString( iter->Arguments[1], &Global::ColorNameIdentifier[0][0], 17, 12 ), true );
|
||||
}break;
|
||||
case sprmCHighlight:
|
||||
{
|
||||
appendValueElement( parent, L"highlight", FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::ColorNameIdentifier[0][0], 17, 12 ), true );
|
||||
}break;
|
||||
|
||||
case sprmOldCDxaSpace:
|
||||
case sprmCDxaSpace:
|
||||
{
|
||||
appendValueElement( parent, L"spacing", FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}break;
|
||||
|
||||
case sprmCFtcBi :
|
||||
{//default from FontTable
|
||||
size_t nIndex = FormatUtils::BytesToUInt16 (iter->Arguments, 0, iter->argumentsSize);
|
||||
if( nIndex < _doc->FontTable->Data.size() )
|
||||
{
|
||||
FontFamilyName* ffn = static_cast<FontFamilyName*>( _doc->FontTable->operator [] ( nIndex ) );
|
||||
if (ffn)
|
||||
m_sDefaultFont = ffn->xszFtn;
|
||||
}
|
||||
}break;
|
||||
|
||||
case sprmCHpsBi :
|
||||
{
|
||||
appendValueElement( parent, L"szCs",
|
||||
FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}
|
||||
break;
|
||||
// Font Size in points (2~3276) default 20-half-points
|
||||
case sprmOldCHps :
|
||||
{
|
||||
appendValueElement (parent, L"sz",
|
||||
FormatUtils::IntToWideString (FormatUtils::BytesToUChar (iter->Arguments, 0, iter->argumentsSize) ),
|
||||
true );
|
||||
}break;
|
||||
case sprmCHps :
|
||||
{
|
||||
appendValueElement (parent, L"sz",
|
||||
FormatUtils::IntToWideString (FormatUtils::BytesToUInt16 (iter->Arguments, 0, iter->argumentsSize) ), true );
|
||||
}break;
|
||||
|
||||
case sprmCMajority :
|
||||
{ //for complex props
|
||||
}break;
|
||||
|
||||
case sprmOldCHpsPos:
|
||||
{ // The vertical position, in half-points, of text relative to the normal position. (MUST be between -3168 and 3168)
|
||||
short nVertPos = FormatUtils::BytesToUChar(iter->Arguments, 0, iter->argumentsSize);
|
||||
appendValueElement (parent, L"position", nVertPos, true);
|
||||
}break;
|
||||
case sprmCHpsPos:
|
||||
{ // The vertical position, in half-points, of text relative to the normal position. (MUST be between -3168 and 3168)
|
||||
short nVertPos = FormatUtils::BytesToInt16(iter->Arguments, 0, iter->argumentsSize);
|
||||
appendValueElement (parent, L"position", nVertPos, true);
|
||||
}break;
|
||||
|
||||
case sprmOldCHpsKern:
|
||||
case sprmCHpsKern:
|
||||
{
|
||||
appendValueElement( parent, L"kern", FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}break;
|
||||
|
||||
case sprmOldCFtc:
|
||||
case sprmCRgFtc0:
|
||||
{ // font family
|
||||
size_t nIndex = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
if( nIndex < _doc->FontTable->Data.size() )
|
||||
{
|
||||
XMLTools::XMLAttribute* ascii = new XMLTools::XMLAttribute( L"w:ascii" );
|
||||
FontFamilyName* ffn = static_cast<FontFamilyName*>( _doc->FontTable->operator [] ( nIndex ) );
|
||||
m_sAsciiFont = ffn->xszFtn;
|
||||
ascii->SetValue( FormatUtils::XmlEncode(m_sAsciiFont, true));
|
||||
rFonts->AppendAttribute( *ascii );
|
||||
RELEASEOBJECT( ascii );
|
||||
}
|
||||
}break;
|
||||
|
||||
case sprmCRgFtc1:
|
||||
{
|
||||
size_t nIndex = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
if( nIndex >= 0 && nIndex < _doc->FontTable->Data.size() )
|
||||
{
|
||||
XMLTools::XMLAttribute* eastAsia = new XMLTools::XMLAttribute( L"w:eastAsia" );
|
||||
FontFamilyName* ffn = static_cast<FontFamilyName*>( _doc->FontTable->operator [] ( nIndex ) );
|
||||
m_sEastAsiaFont = ffn->xszFtn;
|
||||
eastAsia->SetValue( FormatUtils::XmlEncode(m_sEastAsiaFont));
|
||||
rFonts->AppendAttribute( *eastAsia );
|
||||
RELEASEOBJECT( eastAsia );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmCRgFtc2:
|
||||
{
|
||||
size_t nIndex = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
if( nIndex>=0 && nIndex < _doc->FontTable->Data.size() )
|
||||
{
|
||||
XMLTools::XMLAttribute* ansi = new XMLTools::XMLAttribute( L"w:hAnsi" );
|
||||
FontFamilyName* ffn = static_cast<FontFamilyName*>( _doc->FontTable->operator [] ( nIndex ) );
|
||||
m_shAnsiFont = ffn->xszFtn;
|
||||
ansi->SetValue( FormatUtils::XmlEncode(m_shAnsiFont));
|
||||
rFonts->AppendAttribute( *ansi );
|
||||
RELEASEOBJECT( ansi );
|
||||
}
|
||||
}break;
|
||||
|
||||
case sprmOldCKul:
|
||||
case sprmCKul:
|
||||
{ //Underlining
|
||||
appendValueElement( parent, L"u", FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::UnderlineCode[0][0], 56, 16 ), true );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmCCharScale:
|
||||
{ //char width
|
||||
appendValueElement( parent, L"w", FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) ), true );
|
||||
}break;
|
||||
|
||||
case sprmCSfxText:
|
||||
{ //animation
|
||||
appendValueElement( parent, L"effect", FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::TextAnimation[0][0], 7, 16 ), true );
|
||||
}break;
|
||||
|
||||
case sprmCIdctHint:
|
||||
{
|
||||
switch(iter->Arguments[0])
|
||||
{
|
||||
case 0: break; // default
|
||||
case 1: break; // eastAsia
|
||||
case 2: break; // cs
|
||||
case 0xFF: break; //No ST_Hint equivalent
|
||||
}
|
||||
|
||||
}break;
|
||||
|
||||
case sprmCPbiIBullet:
|
||||
{
|
||||
int nIndex = FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
if (nIndex >=0)
|
||||
{
|
||||
std::map<int, int>::iterator it = _doc->PictureBulletsCPsMap.find(nIndex);
|
||||
if (it != _doc->PictureBulletsCPsMap.end())
|
||||
{
|
||||
//добавить
|
||||
}
|
||||
}
|
||||
}break;
|
||||
|
||||
case sprmCPbiGrf:
|
||||
{
|
||||
//used picture bullet
|
||||
int val = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
}break;
|
||||
|
||||
case sprmCRsidProp:
|
||||
case sprmCRsidText:
|
||||
break;
|
||||
|
||||
default:
|
||||
if (iter->argumentsSize == 2)
|
||||
{
|
||||
nProperty = FormatUtils::BytesToUInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
}else
|
||||
if (iter->argumentsSize == 1)
|
||||
{
|
||||
nProperty = FormatUtils::BytesToUChar( iter->Arguments, 0, iter->argumentsSize );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!m_sDefaultFont.empty() && m_sAsciiFont.empty() && m_sEastAsiaFont.empty() && m_shAnsiFont.empty())
|
||||
{//????
|
||||
XMLTools::XMLAttribute* ascii = new XMLTools::XMLAttribute( L"w:ascii" );
|
||||
ascii->SetValue( FormatUtils::XmlEncode(m_sDefaultFont));
|
||||
//rFonts->AppendAttribute( *ascii );
|
||||
RELEASEOBJECT( ascii );
|
||||
}
|
||||
|
||||
//apend lang
|
||||
if ( lang->GetAttributeCount() > 0 )
|
||||
{
|
||||
parent->AppendChild( *lang );
|
||||
}
|
||||
|
||||
//append fonts
|
||||
if ( rFonts->GetAttributeCount() > 0 )
|
||||
{
|
||||
parent->AppendChild( *rFonts );
|
||||
}
|
||||
|
||||
//append color
|
||||
if ( colorVal->GetValue() != L"")
|
||||
{
|
||||
color->AppendAttribute( *colorVal );
|
||||
parent->AppendChild( *color );
|
||||
}
|
||||
|
||||
RELEASEOBJECT( lang );
|
||||
RELEASEOBJECT( colorVal );
|
||||
RELEASEOBJECT( color );
|
||||
RELEASEOBJECT( rFonts );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
/// CHPX flags are special flags because the can be 0,1,128 and 129,
|
||||
/// so this method overrides the appendFlagElement method.
|
||||
void CharacterPropertiesMapping::appendFlagElement( XMLTools::XMLElement* node, const SinglePropertyModifier& sprm, const wchar_t* elementName, bool unique )
|
||||
{
|
||||
unsigned char flag = sprm.Arguments[0];
|
||||
|
||||
if( flag != 128 )
|
||||
{
|
||||
XMLTools::XMLElement* ele = new XMLTools::XMLElement( L"w", elementName );
|
||||
XMLTools::XMLAttribute* val = new XMLTools::XMLAttribute( L"w:val" );
|
||||
|
||||
if ( unique )
|
||||
{
|
||||
node->RemoveChild( *ele );
|
||||
}
|
||||
|
||||
if ( flag == 0 )
|
||||
{
|
||||
val->SetValue( L"false" );
|
||||
ele->AppendAttribute( *val );
|
||||
node->AppendChild( *ele );
|
||||
}
|
||||
else if (flag == 1)
|
||||
{
|
||||
//dont append attribute val
|
||||
//no attribute means true
|
||||
node->AppendChild( *ele );
|
||||
}
|
||||
else if( flag == 129 )
|
||||
{
|
||||
//Invert the value of the style
|
||||
|
||||
//determine the style id of the current style
|
||||
unsigned short styleId = 0;
|
||||
|
||||
if ( _currentIstd != USHRT_MAX )
|
||||
{
|
||||
styleId = _currentIstd;
|
||||
}
|
||||
else if( _currentPapx != NULL )
|
||||
{
|
||||
styleId = _currentPapx->istd;
|
||||
}
|
||||
|
||||
//this chpx is the chpx of a style,
|
||||
//don't use the id of the chpx or the papx, use the baseOn style
|
||||
if ( _styleChpx )
|
||||
{
|
||||
StyleSheetDescription* thisStyle = _doc->Styles->Styles->at( styleId );
|
||||
styleId = (unsigned short)thisStyle->istdBase;
|
||||
}
|
||||
|
||||
//build the style hierarchy
|
||||
_hierarchy = buildHierarchy( _doc->Styles, styleId );
|
||||
|
||||
//apply the toggle values to get the real value of the style
|
||||
bool stylesVal = applyToggleHierachy( sprm );
|
||||
|
||||
//invert it
|
||||
if ( stylesVal )
|
||||
{
|
||||
val->SetValue( L"false" );
|
||||
ele->AppendAttribute( *val );
|
||||
}
|
||||
|
||||
node->AppendChild( *ele );
|
||||
}
|
||||
|
||||
RELEASEOBJECT(ele);
|
||||
RELEASEOBJECT(val);
|
||||
}
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::list<CharacterPropertyExceptions*> CharacterPropertiesMapping::buildHierarchy( const StyleSheet* styleSheet, unsigned short istdStart )
|
||||
{
|
||||
std::list<CharacterPropertyExceptions*> hierarchy;
|
||||
unsigned int istd = (unsigned int)istdStart;
|
||||
bool goOn = true;
|
||||
|
||||
if ( ( styleSheet != NULL ) && ( styleSheet->Styles != NULL ) )
|
||||
{
|
||||
while ( goOn )
|
||||
{
|
||||
try
|
||||
{
|
||||
if ( istd < styleSheet->Styles->size() )
|
||||
{
|
||||
StyleSheetDescription* style = styleSheet->Styles->at( istd );
|
||||
|
||||
if (!style)
|
||||
break;
|
||||
CharacterPropertyExceptions* baseChpx = style->chpx;
|
||||
|
||||
if ( baseChpx != NULL )
|
||||
{
|
||||
hierarchy.push_back( baseChpx );
|
||||
istd = (unsigned int)styleSheet->Styles->at( istd )->istdBase;
|
||||
}
|
||||
else
|
||||
{
|
||||
goOn = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
goOn = false;
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
goOn = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return hierarchy;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
bool CharacterPropertiesMapping::applyToggleHierachy( const SinglePropertyModifier& sprm )
|
||||
{
|
||||
bool ret = false;
|
||||
|
||||
std::list<CharacterPropertyExceptions*>::const_iterator end = _hierarchy.end();
|
||||
for (std::list<CharacterPropertyExceptions*>::const_iterator iter = _hierarchy.begin(); iter != end; ++iter)
|
||||
{
|
||||
std::list<SinglePropertyModifier>::const_iterator end_grpprl = (*iter)->grpprl->end();
|
||||
for (std::list<SinglePropertyModifier>::const_iterator grpprlIter = (*iter)->grpprl->begin(); grpprlIter != end_grpprl; ++grpprlIter)
|
||||
{
|
||||
if (grpprlIter->OpCode == sprm.OpCode)
|
||||
{
|
||||
unsigned char ancient = grpprlIter->Arguments[0];
|
||||
ret = toogleValue(ret, ancient);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
bool CharacterPropertiesMapping::toogleValue(bool currentValue, unsigned char toggle)
|
||||
{
|
||||
if ( toggle == 1 )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if ( toggle == 129 )
|
||||
{
|
||||
//invert the current value
|
||||
if ( currentValue )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if ( toggle == 128 )
|
||||
{
|
||||
//use the current value
|
||||
return currentValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,222 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "PropertyExceptions.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class CharacterPropertyExceptions: public PropertyExceptions
|
||||
{
|
||||
public:
|
||||
/// Creates a CHPX wich doesn't modify anything.
|
||||
/// The grpprl list is empty
|
||||
CharacterPropertyExceptions(): PropertyExceptions()
|
||||
{
|
||||
}
|
||||
|
||||
/// Parses the bytes to retrieve a CHPX
|
||||
CharacterPropertyExceptions( unsigned char* bytes, int size, int nWordVersion) :
|
||||
PropertyExceptions( bytes, size, nWordVersion )
|
||||
{
|
||||
if (nWordVersion > 1)
|
||||
{
|
||||
RELEASEOBJECT( grpprl );
|
||||
grpprl = new std::list<SinglePropertyModifier>();
|
||||
|
||||
MemoryStream oStream(bytes, size);
|
||||
int pos = 0;
|
||||
|
||||
if (nWordVersion == 3)
|
||||
{
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short fChar = oStream.ReadUInt16(); pos += 2;
|
||||
|
||||
unsigned char val;
|
||||
val = GETBIT(fChar, 0); grpprl->push_back(SinglePropertyModifier(sprmOldCFBold, 1, &val));
|
||||
val = GETBIT(fChar, 1); grpprl->push_back(SinglePropertyModifier(sprmOldCFItalic, 1, &val));
|
||||
val = GETBIT(fChar, 2); grpprl->push_back(SinglePropertyModifier(sprmOldCFStrike, 1, &val));
|
||||
val = GETBIT(fChar, 3); grpprl->push_back(SinglePropertyModifier(sprmOldCFOutline, 1, &val));
|
||||
val = GETBIT(fChar, 4); grpprl->push_back(SinglePropertyModifier(sprmOldCFFldVanish, 1, &val));
|
||||
val = GETBIT(fChar, 5); grpprl->push_back(SinglePropertyModifier(sprmOldCFSmallCaps, 1, &val));
|
||||
val = GETBIT(fChar, 6); grpprl->push_back(SinglePropertyModifier(sprmOldCFCaps, 1, &val));
|
||||
val = GETBIT(fChar, 7); grpprl->push_back(SinglePropertyModifier(sprmOldCFVanish, 1, &val));
|
||||
val = GETBIT(fChar, 8); grpprl->push_back(SinglePropertyModifier(sprmOldCFRMark, 1, &val));
|
||||
val = GETBIT(fChar, 9); grpprl->push_back(SinglePropertyModifier(sprmOldCFSpec, 1, &val));
|
||||
|
||||
bool fsIco = GETBIT(fChar, 10);
|
||||
bool fsFtc = GETBIT(fChar, 11);
|
||||
bool fsHps = GETBIT(fChar, 12);
|
||||
bool fsKul = GETBIT(fChar, 13);
|
||||
bool fsPos = GETBIT(fChar, 14);
|
||||
bool fsSpace = GETBIT(fChar, 15);
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
int fff = oStream.ReadUInt16(); pos += 2;//?????
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short ftc = oStream.ReadUInt16(); pos += 2; // Font Code
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCFtc, 2, (unsigned char*)&ftc));
|
||||
|
||||
if (pos + 1 > size) return;
|
||||
unsigned char hps = oStream.ReadByte(); pos += 1; // Font size in half points
|
||||
|
||||
if (hps > 0)
|
||||
{
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCHps, 1, &hps));
|
||||
}
|
||||
|
||||
if (pos + 1 > size) return;
|
||||
unsigned char hpsPos = oStream.ReadByte(); pos += 1; // Sub/Superscript ( signed number, 0 = normal )
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCHpsPos, 1, &hpsPos));
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short fText = oStream.ReadUInt16(); pos += 2;
|
||||
|
||||
unsigned short qpsSpace = GETBITS(fText, 0, 5);
|
||||
unsigned char wSpare2 = GETBITS(fText, 6, 7);
|
||||
unsigned char ico = GETBITS(fText, 8, 11);
|
||||
unsigned char kul = GETBITS(fText, 12, 14);
|
||||
bool fSysVanish = GETBIT(fChar, 15);
|
||||
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCKul, 1, &kul));
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCIco, 1, &ico));
|
||||
|
||||
//sizeof(CHP) == 12 == 0xC
|
||||
if (pos + 4 > size) return;
|
||||
unsigned int fcPic = oStream.ReadUInt16(); pos += 4; //pos = 8
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCPicLocation, 4, (BYTE*)&fcPic));
|
||||
|
||||
if (pos + 1 > size) return;
|
||||
unsigned char fnPic = oStream.ReadByte(); pos += 1;
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short hpsLargeChp = oStream.ReadUInt16(); pos += 2;// ??? type
|
||||
}
|
||||
else if (nWordVersion == 2)
|
||||
{
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short fChar = oStream.ReadUInt16(); pos += 2;
|
||||
|
||||
unsigned char val;
|
||||
val = GETBIT(fChar, 0); grpprl->push_back(SinglePropertyModifier(sprmOldCFBold, 1, &val));
|
||||
val = GETBIT(fChar, 1); grpprl->push_back(SinglePropertyModifier(sprmOldCFItalic, 1, &val));
|
||||
val = GETBIT(fChar, 2); grpprl->push_back(SinglePropertyModifier(sprmOldCIbstRMark, 1, &val));
|
||||
val = GETBIT(fChar, 3); grpprl->push_back(SinglePropertyModifier(sprmOldCFOutline, 1, &val));
|
||||
val = GETBIT(fChar, 4); grpprl->push_back(SinglePropertyModifier(sprmOldCFFldVanish, 1, &val));
|
||||
val = GETBIT(fChar, 5); grpprl->push_back(SinglePropertyModifier(sprmOldCFSmallCaps, 1, &val));
|
||||
val = GETBIT(fChar, 6); grpprl->push_back(SinglePropertyModifier(sprmOldCFCaps, 1, &val));
|
||||
val = GETBIT(fChar, 7); grpprl->push_back(SinglePropertyModifier(sprmOldCFVanish, 1, &val));
|
||||
val = GETBIT(fChar, 8); grpprl->push_back(SinglePropertyModifier(sprmOldCFRMark, 1, &val));
|
||||
val = GETBIT(fChar, 9); grpprl->push_back(SinglePropertyModifier(sprmOldCFSpec, 1, &val));
|
||||
val = GETBIT(fChar, 10); grpprl->push_back(SinglePropertyModifier(sprmOldCFStrike, 1, &val));
|
||||
val = GETBIT(fChar, 11); grpprl->push_back(SinglePropertyModifier(sprmOldCFObj, 1, &val));
|
||||
val = GETBIT(fChar, 12); grpprl->push_back(SinglePropertyModifier(sprmCFBoldBi, 1, &val));
|
||||
val = GETBIT(fChar, 13); grpprl->push_back(SinglePropertyModifier(sprmCFItalicBi, 1, &val));
|
||||
val = GETBIT(fChar, 14); grpprl->push_back(SinglePropertyModifier(sprmCFBiDi, 1, &val));
|
||||
val = GETBIT(fChar, 15); grpprl->push_back(SinglePropertyModifier(sprmCFDiacColor, 1, &val));
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short fChar2 = oStream.ReadUInt16(); pos += 2;
|
||||
bool fsIco = GETBIT(fChar2, 0);
|
||||
bool fsFtc = GETBIT(fChar2, 1);
|
||||
bool fsHps = GETBIT(fChar2, 2);
|
||||
bool fsKul = GETBIT(fChar2, 3);
|
||||
bool fsPos = GETBIT(fChar2, 4);
|
||||
bool fsSpace = GETBIT(fChar2, 5);
|
||||
bool fsLid = GETBIT(fChar2, 6);
|
||||
bool fsIcoBi = GETBIT(fChar2, 7);
|
||||
bool fsFtcBi = GETBIT(fChar2, 8);
|
||||
bool fsHpsBi = GETBIT(fChar2, 9);
|
||||
bool fsLidBi = GETBIT(fChar2, 10);
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short ftc = oStream.ReadUInt16(); pos += 2; // Font Code
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCFtc, 2, (unsigned char*)&ftc));
|
||||
|
||||
if (pos + 1 > size) return;
|
||||
unsigned char hps = oStream.ReadByte(); pos += 1; // Font size in half points
|
||||
|
||||
if (hps > 0)
|
||||
{
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCHps, 1, &hps));
|
||||
}
|
||||
|
||||
if (pos + 1 > size) return;
|
||||
unsigned char hpsPos = oStream.ReadByte(); pos += 1; // Sub/Superscript ( signed number, 0 = normal )
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCHpsPos, 1, &hpsPos));
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short fText = oStream.ReadUInt16(); pos += 2;
|
||||
|
||||
unsigned short qpsSpace = GETBITS(fText, 0, 5);
|
||||
unsigned char wSpare2 = GETBITS(fText, 6, 7);
|
||||
unsigned char ico = GETBITS(fText, 8, 11);
|
||||
unsigned char kul = GETBITS(fText, 12, 14);
|
||||
bool fSysVanish = GETBIT(fChar, 15);
|
||||
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCKul, 1, &kul));
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCIco, 1, &ico));
|
||||
|
||||
//if (pos + 1 > size) return;
|
||||
//unsigned char icoBi = oStream.ReadUInt16(); pos += 1;//wSpare3
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short lid = oStream.ReadUInt16(); pos += 2;
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCLid, 2, (BYTE*)&lid));
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short ftcBi = oStream.ReadUInt16(); pos += 2;
|
||||
grpprl->push_back(SinglePropertyModifier(sprmCFtcBi, 4, (BYTE*)&ftcBi));
|
||||
|
||||
//if (pos + 2 > size) return;
|
||||
//unsigned short hpsBi = oStream.ReadUInt16(); pos += 2;
|
||||
//grpprl->push_back(SinglePropertyModifier(sprmCHpsBi, 4, (BYTE*)&hpsBi));
|
||||
|
||||
//if (pos + 2 > size) return;
|
||||
//unsigned short lidBi = oStream.ReadUInt16(); pos += 2;
|
||||
//grpprl->push_back(SinglePropertyModifier(sprmCLidBi, 2, (BYTE*)&lidBi));
|
||||
|
||||
if (pos + 4 > size) return;
|
||||
unsigned int fcPic = oStream.ReadUInt16(); pos += 4; //pos = 8
|
||||
grpprl->push_back(SinglePropertyModifier(sprmOldCPicLocation, 4, (BYTE*)&fcPic));
|
||||
|
||||
if (pos + 1 > size) return;
|
||||
unsigned char fnPic = oStream.ReadByte(); pos += 1;
|
||||
|
||||
if (pos + 2 > size) return;
|
||||
unsigned short hpsLargeChp = oStream.ReadUInt16(); pos += 2;// ??? type
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,196 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "TableMapping.h"
|
||||
#include "DocumentMapping.h"
|
||||
#include "AnnotationReferenceDescriptor.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class CommentsMapping: public DocumentMapping
|
||||
{
|
||||
public:
|
||||
CommentsMapping (ConversionContext* ctx) : DocumentMapping( ctx, this )
|
||||
{
|
||||
}
|
||||
|
||||
virtual void Apply( IVisitable* visited )
|
||||
{
|
||||
m_document = static_cast<WordDocument*>( visited );
|
||||
|
||||
_UINT64 x = 0x10000001;
|
||||
std::vector<std::wstring> arrParaId;
|
||||
|
||||
if ( ( m_document != NULL ) && ( m_document->FIB->m_RgLw97.ccpAtn > 0 ) )
|
||||
{
|
||||
m_context->_docx->RegisterComments();
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"?xml version=\"1.0\" encoding=\"UTF-8\"?");
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:comments", TRUE );
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:v", OpenXmlNamespaces::VectorML );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:o", OpenXmlNamespaces::Office );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w10", OpenXmlNamespaces::OfficeWord );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:r", OpenXmlNamespaces::Relationships );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpc", L"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:cx", L"http://schemas.microsoft.com/office/drawing/2014/chartex" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:cx1", L"http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:mc", L"http://schemas.openxmlformats.org/markup-compatibility/2006" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:m", L"http://schemas.openxmlformats.org/officeDocument/2006/math" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wp14", L"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w14", L"http://schemas.microsoft.com/office/word/2010/wordml" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w15", L"http://schemas.microsoft.com/office/word/2012/wordml" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w16se", L"http://schemas.microsoft.com/office/word/2015/wordml/symex" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpg", L"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpi", L"http://schemas.microsoft.com/office/word/2010/wordprocessingInk" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wne", L"http://schemas.microsoft.com/office/word/2006/wordml" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wps", L"http://schemas.microsoft.com/office/word/2010/wordprocessingShape" );
|
||||
m_pXmlWriter->WriteAttribute( L"mc:Ignorable", L"w14 w15 w16se wp14");
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
int cp = m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn + m_document->FIB->m_RgLw97.ccpHdr;
|
||||
|
||||
size_t count = m_document->AnnotationsReferencePlex->Elements.size();
|
||||
|
||||
for (size_t index = 0; index < count; ++index)
|
||||
{
|
||||
_paraId.clear();
|
||||
AnnotationReferenceDescriptor* atrdPre10 = static_cast<AnnotationReferenceDescriptor*>(m_document->AnnotationsReferencePlex->Elements[index]);
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:comment", TRUE );
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::SizeTToWideString(atrdPre10->m_CommentId));
|
||||
|
||||
if (atrdPre10->m_AuthorIndex < m_document->AnnotationOwners->size()) //conv_253l2H1CehgKwsxCtNk__docx.doc
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:author",
|
||||
FormatUtils::XmlEncode(m_document->AnnotationOwners->at( atrdPre10->m_AuthorIndex ) ));
|
||||
}
|
||||
|
||||
if ((m_document->AnnotationsReferencesEx) && (index < m_document->AnnotationsReferencesEx->m_ReferencesEx.size()))
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w:date", m_document->AnnotationsReferencesEx->m_ReferencesEx[index].nDTTM.getString());
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"w:initials", FormatUtils::XmlEncode(atrdPre10->m_UserInitials));
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
while ( ( cp - m_document->FIB->m_RgLw97.ccpText - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpHdr ) < (*m_document->IndividualCommentsPlex)[index + 1] )
|
||||
{
|
||||
int fc = m_document->FindFileCharPos(cp);
|
||||
if (fc < 0) break;
|
||||
|
||||
ParagraphPropertyExceptions* papx = findValidPapx(fc);
|
||||
TableInfo tai(papx, m_document->nWordVersion);
|
||||
|
||||
if ( tai.fInTable )
|
||||
{
|
||||
//this PAPX is for a table
|
||||
Table table(this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ));
|
||||
table.Convert(this);
|
||||
cp = table.GetCPEnd();
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((m_document->AnnotationsReferencesEx) && (index < m_document->AnnotationsReferencesEx->m_ReferencesEx.size()))
|
||||
{
|
||||
_paraId = XmlUtils::IntToString(x++, L"%08X");
|
||||
}
|
||||
cp = writeParagraph(cp, 0x7fffffff);
|
||||
}
|
||||
}
|
||||
|
||||
if (false == _paraId.empty())
|
||||
arrParaId.push_back(_paraId);
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:comment" );
|
||||
}
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:comments" );
|
||||
m_context->_docx->CommentsXML = std::wstring(m_pXmlWriter->GetXmlString());
|
||||
|
||||
m_pXmlWriter->Clear();
|
||||
|
||||
if (false == arrParaId.empty() && (m_document->AnnotationsReferencesEx) && (false == m_document->AnnotationsReferencesEx->m_ReferencesEx.empty()))
|
||||
{
|
||||
m_context->_docx->RegisterCommentsExtended();
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"?xml version=\"1.0\" encoding=\"UTF-8\"?");
|
||||
m_pXmlWriter->WriteNodeBegin( L"w15:commentsEx", TRUE );
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:v", OpenXmlNamespaces::VectorML );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:o", OpenXmlNamespaces::Office );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w10", OpenXmlNamespaces::OfficeWord );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:r", OpenXmlNamespaces::Relationships );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpc", L"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:cx", L"http://schemas.microsoft.com/office/drawing/2014/chartex" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:cx1", L"http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:mc", L"http://schemas.openxmlformats.org/markup-compatibility/2006" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:m", L"http://schemas.openxmlformats.org/officeDocument/2006/math" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wp14", L"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w14", L"http://schemas.microsoft.com/office/word/2010/wordml" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w15", L"http://schemas.microsoft.com/office/word/2012/wordml" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w16se", L"http://schemas.microsoft.com/office/word/2015/wordml/symex" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpg", L"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpi", L"http://schemas.microsoft.com/office/word/2010/wordprocessingInk" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wne", L"http://schemas.microsoft.com/office/word/2006/wordml" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wps", L"http://schemas.microsoft.com/office/word/2010/wordprocessingShape" );
|
||||
m_pXmlWriter->WriteAttribute( L"mc:Ignorable", L"w14 w15 w16se wp14");
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
for (size_t index = 0; index < m_document->AnnotationsReferencesEx->m_ReferencesEx.size(); ++index)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w15:commentEx", TRUE );
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"w15:paraId", arrParaId[index]);
|
||||
if (m_document->AnnotationsReferencesEx->m_ReferencesEx[index].nDepth > 0)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"w15:paraIdParent", arrParaId[index + m_document->AnnotationsReferencesEx->m_ReferencesEx[index].nDiatrdParent]);
|
||||
}
|
||||
m_pXmlWriter->WriteAttribute( L"w15:done", L"0");
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(L"w15:commentEx" );
|
||||
}
|
||||
m_pXmlWriter->WriteNodeEnd( L"w15:commentsEx" );
|
||||
m_context->_docx->CommentsExtendedXML = std::wstring(m_pXmlWriter->GetXmlString());
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,177 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
#include <tchar.h>
|
||||
#endif
|
||||
|
||||
#include "../../DesktopEditor/common/ASCVariant.h"
|
||||
|
||||
namespace OpenXmlContentTypes
|
||||
{
|
||||
// default content types
|
||||
static const wchar_t* Xml = L"application/xml";
|
||||
|
||||
// package content types
|
||||
static const wchar_t* Relationships = L"application/vnd.openxmlformats-package.relationships+xml";
|
||||
|
||||
static const wchar_t* CoreProperties = L"application/vnd.openxmlformats-package.core-properties+xml";
|
||||
|
||||
// general office document content types
|
||||
static const wchar_t* ExtendedProperties = L"application/vnd.openxmlformats-officedocument.extended-properties+xml";
|
||||
static const wchar_t* Theme = L"application/vnd.openxmlformats-officedocument.theme+xml";
|
||||
|
||||
static const wchar_t* CustomXmlProperties = L"application/vnd.openxmlformats-officedocument.customXmlProperties+xml";
|
||||
|
||||
static const wchar_t* OleObject = L"application/vnd.openxmlformats-officedocument.oleObject";
|
||||
static const wchar_t* Vml = L"application/vnd.openxmlformats-officedocument.vmlDrawing";
|
||||
static const wchar_t* Drawing = L"application/vnd.openxmlformats-officedocument.drawing+xml";
|
||||
|
||||
static const wchar_t* MSWordDocx = L"application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
||||
|
||||
static const wchar_t* MSExcel = L"application/vnd.ms-excel";
|
||||
static const wchar_t* MSWord = L"application/msword";
|
||||
static const wchar_t* MSPowerpoint = L"application/vnd.ms-powerpoint";
|
||||
|
||||
static const wchar_t* Emf = L"image/x-emf";
|
||||
static const wchar_t* Jpeg = L"image/jpeg";
|
||||
static const wchar_t* Png = L"image/png";
|
||||
static const wchar_t* Tiff = L"image/tiff";
|
||||
static const wchar_t* Wmf = L"image/x-wmf";
|
||||
static const wchar_t* Bmp = L"image/bmp";
|
||||
static const wchar_t* Pcz = L"image/x-pcz";
|
||||
}
|
||||
namespace DocPrContentTypes
|
||||
{
|
||||
static const wchar_t* App = L"application/vnd.openxmlformats-officedocument.extended-properties+xml";
|
||||
static const wchar_t* Core = L"application/vnd.openxmlformats-package.core-properties+xml";
|
||||
}
|
||||
namespace WordprocessingMLContentTypes
|
||||
{
|
||||
// WordprocessingML content types
|
||||
static const wchar_t* MainDocument = L"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml";
|
||||
static const wchar_t* MainDocumentMacro = L"application/vnd.ms-word.document.macroEnabled.main+xml";
|
||||
static const wchar_t* MainDocumentTemplate = L"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml";
|
||||
static const wchar_t* MainDocumentMacroTemplate = L"application/vnd.ms-word.template.macroEnabledTemplate.main+xml";
|
||||
|
||||
static const wchar_t* Styles = L"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml";
|
||||
static const wchar_t* Numbering = L"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml";
|
||||
static const wchar_t* FontTable = L"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml";
|
||||
static const wchar_t* WebSettings = L"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml";
|
||||
static const wchar_t* Settings = L"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml";
|
||||
|
||||
static const wchar_t* Comments = L"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml";
|
||||
static const wchar_t* CommentsExtended = L"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml";
|
||||
|
||||
static const wchar_t* Footnotes = L"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml";
|
||||
static const wchar_t* Endnotes = L"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml";
|
||||
|
||||
static const wchar_t* Header = L"application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml";
|
||||
static const wchar_t* Footer = L"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml";
|
||||
|
||||
static const wchar_t* Glossary = L"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml";
|
||||
}
|
||||
|
||||
namespace MicrosoftWordContentTypes
|
||||
{
|
||||
static const wchar_t* KeyMapCustomization = L"application/vnd.ms-word.keyMapCustomizations+xml";
|
||||
static const wchar_t* VbaProject = L"application/vnd.ms-office.vbaProject";
|
||||
static const wchar_t* VbaData = L"application/vnd.ms-word.vbaData+xml";
|
||||
static const wchar_t* Toolbars = L"application/vnd.ms-word.attachedToolbars";
|
||||
}
|
||||
|
||||
namespace OpenXmlNamespaces
|
||||
{
|
||||
// package namespaces
|
||||
static const wchar_t* ContentTypes = L"http://schemas.openxmlformats.org/package/2006/content-types";
|
||||
static const wchar_t* RelationshipsPackage = L"http://schemas.openxmlformats.org/package/2006/relationships";
|
||||
static const wchar_t* Relationships = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships";
|
||||
|
||||
// Drawing ML namespaces
|
||||
static const wchar_t* DrawingML = L"http://schemas.openxmlformats.org/drawingml/2006/main";
|
||||
static const wchar_t* DrawingMLPicture = L"http://schemas.openxmlformats.org/drawingml/2006/picture";
|
||||
|
||||
// WordprocessingML namespaces
|
||||
static const wchar_t* WordprocessingML = L"http://schemas.openxmlformats.org/wordprocessingml/2006/main";
|
||||
static const wchar_t* WordprocessingDrawingML = L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing";
|
||||
static const wchar_t* VectorML = L"urn:schemas-microsoft-com:vml";
|
||||
static const wchar_t* MicrosoftWordML = L"http://schemas.microsoft.com/office/word/2006/wordml";
|
||||
|
||||
// PresentationML namespaces
|
||||
static const wchar_t* PresentationML = L"http://schemas.openxmlformats.org/presentationml/2006/main";
|
||||
|
||||
// SpreadsheetML Namespaces
|
||||
static const wchar_t* SharedStringML = L"http://schemas.openxmlformats.org/spreadsheetml/2006/main";
|
||||
static const wchar_t* WorkBookML = L"http://schemas.openxmlformats.org/spreadsheetml/2006/main";
|
||||
static const wchar_t* StylesML = L"http://schemas.openxmlformats.org/spreadsheetml/2006/main";
|
||||
|
||||
//Office
|
||||
static const wchar_t* Office = L"urn:schemas-microsoft-com:office:office";
|
||||
static const wchar_t* OfficeWord = L"urn:schemas-microsoft-com:office:word";
|
||||
}
|
||||
|
||||
namespace OpenXmlRelationshipTypes
|
||||
{
|
||||
static const wchar_t* CoreProperties = L"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";
|
||||
static const wchar_t* ExtendedProperties = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";
|
||||
|
||||
static const wchar_t* Theme = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";
|
||||
static const wchar_t* OfficeDocument = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";
|
||||
static const wchar_t* Styles = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";
|
||||
static const wchar_t* FontTable = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable";
|
||||
static const wchar_t* Numbering = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering";
|
||||
static const wchar_t* WebSettings = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings";
|
||||
static const wchar_t* Settings = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings";
|
||||
static const wchar_t* CustomXml = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml";
|
||||
static const wchar_t* CustomXmlProperties = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps";
|
||||
static const wchar_t* Comments = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";
|
||||
static const wchar_t* CommentsExtended = L"http://schemas.microsoft.com/office/2011/relationships/commentsExtended";
|
||||
static const wchar_t* Footnotes = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes";
|
||||
static const wchar_t* Endnotes = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes";
|
||||
static const wchar_t* Header = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header";
|
||||
static const wchar_t* Footer = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer";
|
||||
static const wchar_t* Image = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";
|
||||
static const wchar_t* OleObject = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
|
||||
static const wchar_t* GlossaryDocument = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/glossaryDocument";
|
||||
static const wchar_t* Package = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
|
||||
static const wchar_t* VbaProject = L"http://schemas.microsoft.com/office/2006/relationships/vbaProject";
|
||||
static const wchar_t* Hyperlink = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink";
|
||||
}
|
||||
|
||||
namespace MicrosoftWordRelationshipTypes
|
||||
{
|
||||
static const wchar_t* KeyMapCustomizations = L"http://schemas.microsoft.com/office/2006/relationships/keyMapCustomizations";
|
||||
static const wchar_t* VbaProject = L"http://schemas.microsoft.com/office/2006/relationships/vbaProject";
|
||||
static const wchar_t* VbaData = L"http://schemas.microsoft.com/office/2006/relationships/wordVbaData";
|
||||
static const wchar_t* Toolbars = L"http://schemas.microsoft.com/office/2006/relationships/attachedToolbars";
|
||||
}
|
||||
@ -1,234 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Converter.h"
|
||||
|
||||
#include "WordDocument.h"
|
||||
|
||||
#include "TableMapping.h"
|
||||
|
||||
#include "StyleSheetMapping.h"
|
||||
#include "FontTableMapping.h"
|
||||
#include "FootnotesMapping.h"
|
||||
#include "EndnotesMapping.h"
|
||||
#include "NumberingMapping.h"
|
||||
#include "CommentsMapping.h"
|
||||
#include "SettingsMapping.h"
|
||||
#include "MainDocumentMapping.h"
|
||||
#include "WordprocessingDocument.h"
|
||||
#include "ConversionContext.h"
|
||||
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
Converter::Converter() : m_nUserLCID(-1)
|
||||
{
|
||||
}
|
||||
|
||||
Converter::~Converter()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
_UINT32 Converter::Convert(WordDocument* doc, WordprocessingDocument* docx, const ProgressCallback* progress)
|
||||
{
|
||||
if (!doc || !docx) return S_FALSE;
|
||||
|
||||
ConversionContext context( doc, docx );
|
||||
|
||||
//Write fontTable.xml
|
||||
if (doc->FontTable)
|
||||
{
|
||||
FontTableMapping fontTableMapping( &context );
|
||||
doc->FontTable->Convert( &fontTableMapping );
|
||||
}
|
||||
//Write styles.xml
|
||||
if (doc->Styles)
|
||||
{
|
||||
StyleSheetMapping styleSheetMapping( &context );
|
||||
doc->Styles->Convert( &styleSheetMapping );
|
||||
}
|
||||
|
||||
//write document.xml and the header and footers
|
||||
MainDocumentMapping mainDocMapping( &context, progress );
|
||||
doc->Convert( &mainDocMapping );
|
||||
|
||||
if ( progress != NULL )
|
||||
{
|
||||
progress->OnProgress( progress->caller, DOC_ONPROGRESSEVENT_ID, 810000 );
|
||||
|
||||
short cancel = 0;
|
||||
progress->OnProgressEx( progress->caller, DOC_ONPROGRESSEVENT_ID, 810000, &cancel );
|
||||
|
||||
if ( cancel != 0 )
|
||||
{
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
//Write numbering.xml
|
||||
if (doc->listTable)
|
||||
{
|
||||
NumberingMapping numberingMapping( &context );
|
||||
doc->listTable->Convert( &numberingMapping );
|
||||
}
|
||||
|
||||
if ( progress != NULL )
|
||||
{
|
||||
progress->OnProgress( progress->caller, DOC_ONPROGRESSEVENT_ID, 850000 );
|
||||
|
||||
short cancel = 0;
|
||||
progress->OnProgressEx( progress->caller, DOC_ONPROGRESSEVENT_ID, 850000, &cancel );
|
||||
|
||||
if ( cancel != 0 )
|
||||
{
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
if ( progress != NULL )
|
||||
{
|
||||
progress->OnProgress( progress->caller, DOC_ONPROGRESSEVENT_ID, 875000 );
|
||||
|
||||
short cancel = 0;
|
||||
progress->OnProgressEx( progress->caller, DOC_ONPROGRESSEVENT_ID, 875000, &cancel );
|
||||
|
||||
if ( cancel != 0 )
|
||||
{
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
//write the footnotes
|
||||
FootnotesMapping footnotesMapping( &context );
|
||||
doc->Convert( &footnotesMapping );
|
||||
|
||||
if ( progress != NULL )
|
||||
{
|
||||
progress->OnProgress( progress->caller, DOC_ONPROGRESSEVENT_ID, 900000 );
|
||||
|
||||
short cancel = 0;
|
||||
progress->OnProgressEx( progress->caller, DOC_ONPROGRESSEVENT_ID, 900000, &cancel );
|
||||
|
||||
if ( cancel != 0 )
|
||||
{
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
//write the endnotes
|
||||
EndnotesMapping endnotesMapping( &context );
|
||||
doc->Convert( &endnotesMapping );
|
||||
|
||||
if ( progress != NULL )
|
||||
{
|
||||
progress->OnProgress( progress->caller, DOC_ONPROGRESSEVENT_ID, 925000 );
|
||||
|
||||
short cancel = 0;
|
||||
progress->OnProgressEx( progress->caller, DOC_ONPROGRESSEVENT_ID, 925000, &cancel );
|
||||
|
||||
if ( cancel != 0 )
|
||||
{
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
//write the comments
|
||||
CommentsMapping commentsMapping( &context );
|
||||
doc->Convert( &commentsMapping );
|
||||
|
||||
if ( progress != NULL )
|
||||
{
|
||||
progress->OnProgress( progress->caller, DOC_ONPROGRESSEVENT_ID, 950000 );
|
||||
|
||||
short cancel = 0;
|
||||
progress->OnProgressEx( progress->caller, DOC_ONPROGRESSEVENT_ID, 950000, &cancel );
|
||||
|
||||
if ( cancel != 0 )
|
||||
{
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
//write settings.xml at last because of the rsid list
|
||||
if (doc->DocProperties)
|
||||
{
|
||||
SettingsMapping settingsMapping( &context );
|
||||
doc->DocProperties->Convert( &settingsMapping );
|
||||
}
|
||||
|
||||
if ( progress != NULL )
|
||||
{
|
||||
progress->OnProgress( progress->caller, DOC_ONPROGRESSEVENT_ID, 975000 );
|
||||
|
||||
short cancel = 0;
|
||||
progress->OnProgressEx( progress->caller, DOC_ONPROGRESSEVENT_ID, 975000, &cancel );
|
||||
|
||||
if ( cancel != 0 )
|
||||
{
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
_UINT32 Converter::LoadAndConvert(const std::wstring& strSrcFile, const std::wstring& strDstDirectory, const std::wstring& password, const ProgressCallback* progress, bool &bMacros)
|
||||
{
|
||||
WordDocument doc(progress, m_sTempFolder, m_nUserLCID);
|
||||
WordprocessingDocument docx(strDstDirectory, &doc);
|
||||
|
||||
_UINT32 result = doc.LoadDocument(strSrcFile, password);
|
||||
|
||||
if (result == 0)
|
||||
{
|
||||
result = Convert(&doc, &docx, progress);
|
||||
|
||||
if (result == 0)
|
||||
{
|
||||
docx.SaveDocument(bMacros);
|
||||
|
||||
if (progress)progress->OnProgress(progress->caller, DOC_ONPROGRESSEVENT_ID, 1000000);
|
||||
|
||||
short cancel = 0;
|
||||
if (progress)progress->OnProgressEx(progress->caller, DOC_ONPROGRESSEVENT_ID, 1000000, &cancel);
|
||||
|
||||
if (0 != cancel)
|
||||
{
|
||||
return S_FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -1,58 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include "../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
|
||||
struct ProgressCallback;
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class WordDocument;
|
||||
class WordprocessingDocument;
|
||||
|
||||
class Converter
|
||||
{
|
||||
public:
|
||||
Converter();
|
||||
~Converter();
|
||||
|
||||
std::wstring m_sTempFolder;
|
||||
int m_nUserLCID;
|
||||
|
||||
_UINT32 LoadAndConvert(const std::wstring & strSrcFile, const std::wstring & strDstDirectory, const std::wstring & password, const ProgressCallback* progress, bool &bMacros);
|
||||
|
||||
private:
|
||||
_UINT32 Convert(WordDocument* doc, WordprocessingDocument* docx, const ProgressCallback* progress);
|
||||
};
|
||||
}
|
||||
@ -1,116 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../Common/FormatUtils.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class DateAndTime
|
||||
{
|
||||
protected:
|
||||
short minutes;
|
||||
short hour;
|
||||
short day;
|
||||
short month;
|
||||
short year;
|
||||
/// 0 Sunday
|
||||
/// 1 Monday
|
||||
/// 2 Tuesday
|
||||
/// 3 Wednesday
|
||||
/// 4 Thursday
|
||||
/// 5 Friday
|
||||
/// 6 Saturday
|
||||
short weekday;
|
||||
|
||||
public:
|
||||
DateAndTime()
|
||||
{
|
||||
setDefaultValues();
|
||||
}
|
||||
DateAndTime( _UINT32 val )
|
||||
{
|
||||
unsigned char* bytes = ((unsigned char*) &val);
|
||||
|
||||
minutes = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 0, 6 );
|
||||
hour = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 6, 5 );
|
||||
day = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 11, 5 );
|
||||
month = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 16, 4 );
|
||||
year = (short)( 1900 + FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 20, 9 ) );
|
||||
weekday = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, 4 ), 29, 3 );
|
||||
}
|
||||
DateAndTime( unsigned char* bytes, int size )
|
||||
{
|
||||
if ( size == 4 )
|
||||
{
|
||||
minutes = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 0, 6 );
|
||||
hour = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 6, 5 );
|
||||
day = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 11, 5 );
|
||||
month = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 16, 4 );
|
||||
year = (short)( 1900 + FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 20, 9 ) );
|
||||
weekday = (short)FormatUtils::GetIntFromBits( FormatUtils::BytesToInt32( bytes, 0, size ), 29, 3 );
|
||||
}
|
||||
else
|
||||
{
|
||||
//throw new ByteParseException("Cannot parse the struct DTTM, the length of the struct doesn't match");
|
||||
}
|
||||
}
|
||||
DateAndTime& operator=(const DateAndTime& oSrc)
|
||||
{
|
||||
minutes = oSrc.minutes;
|
||||
hour = oSrc.hour;
|
||||
day = oSrc.day;
|
||||
month = oSrc.month;
|
||||
year = oSrc.year;
|
||||
weekday = oSrc.weekday;
|
||||
|
||||
return (*this);
|
||||
}
|
||||
std::wstring getString()
|
||||
{
|
||||
return std::to_wstring(year) + L"-" + (month < 9 ? L"0" : L"" ) + std::to_wstring(month) + L"-" +
|
||||
(day < 9 ? L"0" : L"" ) + std::to_wstring(day) + L"T" +
|
||||
(hour < 9 ? L"0" : L"" ) + std::to_wstring(hour) + L":" +
|
||||
(minutes < 9 ? L"0" : L"" ) + std::to_wstring(minutes) + L":00Z";
|
||||
}
|
||||
private:
|
||||
void setDefaultValues()
|
||||
{
|
||||
day = 0;
|
||||
hour = 0;
|
||||
minutes = 0;
|
||||
month = 0;
|
||||
weekday = 0;
|
||||
year = 0;
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,116 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../Common/FormatUtils.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class DocumentTypographyInfo
|
||||
{
|
||||
friend class SettingsMapping;
|
||||
|
||||
private:
|
||||
/// True if we're kerning punctation
|
||||
bool fKerningPunct;
|
||||
/// Kinsoku method of justification:
|
||||
/// 0 = always expand
|
||||
/// 1 = compress punctation
|
||||
/// 2 = compress punctation and kana
|
||||
short iJustification;
|
||||
/// Level of kinsoku:
|
||||
/// 0 = level 1
|
||||
/// 1 = Level 2
|
||||
/// 2 = Custom
|
||||
short iLevelOfKinsoku;
|
||||
/// "2 page on 1" feature is turned on
|
||||
bool f2on1;
|
||||
/// Old East Asian feature
|
||||
bool fOldDefineLineBaseOnGrid;
|
||||
/// Custom Kinsoku
|
||||
short iCustomKsu;
|
||||
/// When set to true, use strict (level 2) Kinsoku rules
|
||||
bool fJapaneseUseLevel2;
|
||||
/// Length of rgxchFPunct
|
||||
short cchFollowingPunct;
|
||||
/// Length of rgxchLPunct
|
||||
short cchLeadingPunct;
|
||||
/// Array of characters that should never appear at the start of a line
|
||||
std::wstring rgxchFPunct;
|
||||
/// Array of characters that should never appear at the end of a line
|
||||
std::wstring rgxchLPunct;
|
||||
|
||||
public:
|
||||
virtual ~DocumentTypographyInfo()
|
||||
{
|
||||
}
|
||||
|
||||
DocumentTypographyInfo():
|
||||
fKerningPunct(false), iJustification(0), iLevelOfKinsoku(0), f2on1(false), fOldDefineLineBaseOnGrid(false),
|
||||
iCustomKsu(0), fJapaneseUseLevel2(false), cchFollowingPunct(0), cchLeadingPunct(0)
|
||||
{
|
||||
}
|
||||
|
||||
/// Parses the bytes to retrieve a DocumentTypographyInfo
|
||||
DocumentTypographyInfo( unsigned char* bytes, int size ):
|
||||
fKerningPunct(false), iJustification(0), iLevelOfKinsoku(0), f2on1(false), fOldDefineLineBaseOnGrid(false),
|
||||
iCustomKsu(0), fJapaneseUseLevel2(false), cchFollowingPunct(0), cchLeadingPunct(0)
|
||||
{
|
||||
if ( size == 310 )
|
||||
{
|
||||
//split unsigned char 0 and 1 into bits
|
||||
this->fKerningPunct = FormatUtils::GetBitFromBytes( bytes, size, 0 );
|
||||
this->iJustification = (short)FormatUtils::GetUIntFromBytesBits( bytes, size, 1, 2 );
|
||||
this->iLevelOfKinsoku = (short)FormatUtils::GetUIntFromBytesBits( bytes, size, 3, 2 );
|
||||
this->f2on1 = FormatUtils::GetBitFromBytes( bytes, size, 5 );
|
||||
this->fOldDefineLineBaseOnGrid = FormatUtils::GetBitFromBytes( bytes, size, 6 );
|
||||
this->iCustomKsu = (short)FormatUtils::GetUIntFromBytesBits( bytes, size, 7, 3 );
|
||||
this->fJapaneseUseLevel2 = FormatUtils::GetBitFromBytes( bytes, size, 10 );
|
||||
|
||||
this->cchFollowingPunct = FormatUtils::BytesToInt16( bytes, 2, size );
|
||||
this->cchLeadingPunct = FormatUtils::BytesToInt16( bytes, 4, size );
|
||||
|
||||
unsigned char fpunctBytes[202];
|
||||
memcpy( fpunctBytes, ( bytes + 6 ), 202 );
|
||||
FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &(this->rgxchFPunct), fpunctBytes, 202, ENCODING_UTF16 );
|
||||
|
||||
unsigned char lpunctBytes[102];
|
||||
memcpy( lpunctBytes, ( bytes + 208 ), 102 );
|
||||
FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &(this->rgxchLPunct), lpunctBytes, 102, ENCODING_UTF16 );
|
||||
}
|
||||
else
|
||||
{
|
||||
//throw new ByteParseException("Cannot parse the struct DOPTYPOGRAPHY, the length of the struct doesn't match");
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,98 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class DrawingObjectGrid
|
||||
{
|
||||
friend class SettingsMapping;
|
||||
|
||||
private:
|
||||
/// x-coordinate of the upper left-hand corner of the grid
|
||||
short xaGrid;
|
||||
/// y-coordinate of the upper left-hand corner of the grid
|
||||
short yaGrid;
|
||||
/// Width of each grid square
|
||||
short dxaGrid;
|
||||
/// Height of each grid square
|
||||
short dyaGrid;
|
||||
/// The number of grid squares (in the y direction) between each
|
||||
/// gridline drawn on the screen. 0 means don‘t display any
|
||||
/// gridlines in the y direction.
|
||||
short dyGridDisplay;
|
||||
/// Suppress display of gridlines
|
||||
bool fTurnItOff;
|
||||
/// The number of grid squares (in the x direction) between each
|
||||
/// gridline drawn on the screen. 0 means don‘t display any
|
||||
/// gridlines in the y direction.
|
||||
short dxGridDisplay;
|
||||
/// If true, the grid will start at the left and top margins and
|
||||
/// ignore xaGrid and yaGrid
|
||||
bool fFollowMargins;
|
||||
|
||||
public:
|
||||
virtual ~DrawingObjectGrid()
|
||||
{
|
||||
}
|
||||
|
||||
DrawingObjectGrid():
|
||||
xaGrid(0), yaGrid(0), dxaGrid(0), dyaGrid(0), dyGridDisplay(0), fTurnItOff(false), dxGridDisplay(0),
|
||||
fFollowMargins(false)
|
||||
{
|
||||
}
|
||||
|
||||
/// Parses the bytes to retrieve a DrawingObjectGrid
|
||||
DrawingObjectGrid( unsigned char* bytes, int size ):
|
||||
xaGrid(0), yaGrid(0), dxaGrid(0), dyaGrid(0), dyGridDisplay(0), fTurnItOff(false), dxGridDisplay(0),
|
||||
fFollowMargins(false)
|
||||
{
|
||||
if ( size == 10 )
|
||||
{
|
||||
this->xaGrid = FormatUtils::BytesToInt16( bytes, 0, size );
|
||||
this->yaGrid = FormatUtils::BytesToInt16( bytes, 2, size );
|
||||
this->dxaGrid = FormatUtils::BytesToInt16( bytes, 4, size );
|
||||
this->dyaGrid = FormatUtils::BytesToInt16( bytes, 6, size );
|
||||
|
||||
//split unsigned char 8 and 9 into bits
|
||||
this->dyGridDisplay = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 8 ), 2, 0, 7 );
|
||||
this->fTurnItOff = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 7 );
|
||||
this->dxGridDisplay = (short)FormatUtils::GetUIntFromBytesBits( ( bytes + 8 ), 2, 8, 7 );
|
||||
this->fFollowMargins = FormatUtils::GetBitFromBytes( ( bytes + 8 ), 2, 15 );
|
||||
}
|
||||
else
|
||||
{
|
||||
//throw new ByteParseException("Cannot parse the struct DOGRID, the length of the struct doesn't match");
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,108 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ContentTypes.h"
|
||||
#include "WordDocument.h"
|
||||
#include "DocumentMapping.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class EndnotesMapping: public DocumentMapping
|
||||
{
|
||||
public:
|
||||
EndnotesMapping (ConversionContext* ctx) : DocumentMapping(ctx, this)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void Apply( IVisitable* visited )
|
||||
{
|
||||
m_document = static_cast<WordDocument*>( visited );
|
||||
|
||||
if ( ( m_document != NULL ) && ( m_document->FIB->m_RgLw97.ccpEdn > 0 ) )
|
||||
{
|
||||
m_context->_docx->RegisterEndnotes();
|
||||
|
||||
int id = 0;
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"?xml version=\"1.0\" encoding=\"UTF-8\"?");
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:endnotes", TRUE );
|
||||
|
||||
//write namespaces
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:v", OpenXmlNamespaces::VectorML );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:o", OpenXmlNamespaces::Office );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w10", OpenXmlNamespaces::OfficeWord );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:r", OpenXmlNamespaces::Relationships );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
int cp = ( m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn + m_document->FIB->m_RgLw97.ccpHdr + m_document->FIB->m_RgLw97.ccpAtn );
|
||||
|
||||
while ( cp <= ( m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn + m_document->FIB->m_RgLw97.ccpHdr + m_document->FIB->m_RgLw97.ccpAtn + m_document->FIB->m_RgLw97.ccpEdn - 2 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:endnote", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString( id ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
while ( ( cp - m_document->FIB->m_RgLw97.ccpText - m_document->FIB->m_RgLw97.ccpFtn - m_document->FIB->m_RgLw97.ccpHdr - m_document->FIB->m_RgLw97.ccpAtn ) < (*m_document->IndividualEndnotesPlex)[id + 1] )
|
||||
{
|
||||
int fc = m_document->FindFileCharPos(cp);
|
||||
if (fc < 0) break;
|
||||
|
||||
ParagraphPropertyExceptions* papx = findValidPapx( fc );
|
||||
TableInfo tai( papx, m_document->nWordVersion );
|
||||
|
||||
if ( tai.fInTable )
|
||||
{
|
||||
//this PAPX is for a table
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
table.Convert( this );
|
||||
cp = table.GetCPEnd();
|
||||
}
|
||||
else
|
||||
{
|
||||
//this PAPX is for a normal paragraph
|
||||
cp = writeParagraph( cp, 0x7fffffff );
|
||||
}
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:endnote");
|
||||
id++;
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:endnotes");
|
||||
|
||||
m_context->_docx->EndnotesXML = std::wstring( m_pXmlWriter->GetXmlString() );
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,98 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
/// Specifies an approximation of a real number, where the approximation has a fixed number of digits after the radix point.
|
||||
///
|
||||
/// This type is specified in [MS-OSHARED] section 2.2.1.6.
|
||||
///
|
||||
/// Value of the real number = Integral + ( Fractional / 65536.0 )
|
||||
///
|
||||
/// Integral (2 bytes): A signed integer that specifies the integral part of the real number.
|
||||
/// Fractional (2 bytes): An unsigned integer that specifies the fractional part of the real number.
|
||||
class FixedPointNumber
|
||||
{
|
||||
public:
|
||||
unsigned short Integral;
|
||||
unsigned short Fractional;
|
||||
|
||||
FixedPointNumber( unsigned short integral = 0, unsigned short fractional = 0 )
|
||||
{
|
||||
this->Integral = integral;
|
||||
this->Fractional = fractional;
|
||||
}
|
||||
|
||||
FixedPointNumber( unsigned int value )
|
||||
{
|
||||
unsigned char* bytes = FormatUtils::GetBytes( value );
|
||||
|
||||
this->Integral = FormatUtils::BytesToUInt16( bytes, 0, sizeof(value) );
|
||||
this->Fractional = FormatUtils::BytesToUInt16( bytes, 2, sizeof(value) );
|
||||
|
||||
RELEASEARRAYOBJECTS( bytes );
|
||||
}
|
||||
|
||||
FixedPointNumber( const unsigned char* bytes, unsigned int size )
|
||||
{
|
||||
if ( ( bytes != NULL ) && ( size >= 4 ) )
|
||||
{
|
||||
this->Integral = FormatUtils::BytesToUInt16( bytes, 0, size );
|
||||
this->Fractional = FormatUtils::BytesToUInt16( bytes, 2, size );
|
||||
}
|
||||
}
|
||||
|
||||
double ToAngle() const
|
||||
{
|
||||
if ( this->Fractional != 0 )
|
||||
{
|
||||
// negative angle
|
||||
return ( this->Fractional - 65536.0 );
|
||||
}
|
||||
else if ( this->Integral != 0 )
|
||||
{
|
||||
//positive angle
|
||||
return ( 65536.0 - this->Integral );
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
double GetValue() const
|
||||
{
|
||||
return (double)( this->Integral + ( (double)this->Fractional / 65536.0 ) );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,61 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ByteStructure.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class FootnoteDescriptor: public ByteStructure
|
||||
{
|
||||
|
||||
public:
|
||||
static const int STRUCTURE_SIZE = 2;
|
||||
|
||||
FootnoteDescriptor() : aFtnIdx(0), bUsed(false) {}
|
||||
|
||||
virtual ~FootnoteDescriptor()
|
||||
{
|
||||
}
|
||||
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
|
||||
{
|
||||
FootnoteDescriptor *newObject = new FootnoteDescriptor();
|
||||
|
||||
newObject->aFtnIdx = reader->ReadInt16();
|
||||
|
||||
return static_cast<ByteStructure*>( newObject );
|
||||
}
|
||||
|
||||
short aFtnIdx;
|
||||
bool bUsed;
|
||||
};
|
||||
}
|
||||
@ -1,140 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ContentTypes.h"
|
||||
#include "WordDocument.h"
|
||||
#include "DocumentMapping.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class FootnotesMapping: public DocumentMapping
|
||||
{
|
||||
public:
|
||||
FootnotesMapping (ConversionContext* ctx): DocumentMapping( ctx, this )
|
||||
{
|
||||
}
|
||||
|
||||
virtual void Apply( IVisitable* visited )
|
||||
{
|
||||
m_document = static_cast<WordDocument*>( visited );
|
||||
|
||||
if ( m_document && ( m_document->FIB->m_RgLw97.ccpFtn > 0 ) )
|
||||
{
|
||||
m_context->_docx->RegisterFootnotes();
|
||||
|
||||
int id = 0;
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"?xml version=\"1.0\" encoding=\"UTF-8\"?" );
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:footnotes", TRUE );
|
||||
|
||||
//write namespaces
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w", OpenXmlNamespaces::WordprocessingML );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:v", OpenXmlNamespaces::VectorML );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:o", OpenXmlNamespaces::Office );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w10", OpenXmlNamespaces::OfficeWord );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:r", OpenXmlNamespaces::Relationships );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpc", L"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:mc", L"http://schemas.openxmlformats.org/markup-compatibility/2006");
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wp14", L"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing");
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing");
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:w14", L"http://schemas.microsoft.com/office/word/2010/wordml" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpg", L"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wpi", L"http://schemas.microsoft.com/office/word/2010/wordprocessingInk" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wne", L"http://schemas.microsoft.com/office/word/2006/wordml" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:wps", L"http://schemas.microsoft.com/office/word/2010/wordprocessingShape" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:a", L"http://schemas.openxmlformats.org/drawingml/2006/main" );
|
||||
m_pXmlWriter->WriteAttribute( L"xmlns:m", L"http://schemas.openxmlformats.org/officeDocument/2006/math" );
|
||||
m_pXmlWriter->WriteAttribute( L"mc:Ignorable", L"w14 wp14" );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
//m_pXmlWriter->WriteNodeBegin( L"w:footnote", TRUE );
|
||||
//m_pXmlWriter->WriteAttribute( L"w:type", L"separator");
|
||||
//m_pXmlWriter->WriteAttribute( L"w:id", L"-1");
|
||||
//m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
//m_pXmlWriter->WriteString(L"<w:p><w:pPr><w:spacing w:lineRule=\"auto\" w:line=\"240\" w:after=\"0\"/></w:pPr><w:r></w:r><w:r><w:separator/></w:r></w:p>");
|
||||
//m_pXmlWriter->WriteNodeEnd( L"w:footnote");
|
||||
|
||||
//m_pXmlWriter->WriteNodeBegin( L"w:footnote", TRUE );
|
||||
//m_pXmlWriter->WriteAttribute( L"w:type", L"continuationSeparator");
|
||||
//m_pXmlWriter->WriteAttribute( L"w:id", L"0");
|
||||
//m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
//m_pXmlWriter->WriteString(L"<w:p><w:pPr><w:spacing w:lineRule=\"auto\" w:line=\"240\" w:after=\"0\"/></w:pPr><w:r></w:r><w:r><w:continuationSeparator/></w:r></w:p>");
|
||||
//m_pXmlWriter->WriteNodeEnd( L"w:footnote");
|
||||
|
||||
int cp = m_document->FIB->m_RgLw97.ccpText;
|
||||
|
||||
while ( cp <= ( m_document->FIB->m_RgLw97.ccpText + m_document->FIB->m_RgLw97.ccpFtn - 2 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:footnote", TRUE );
|
||||
m_pXmlWriter->WriteAttribute( L"w:id", FormatUtils::IntToWideString( id ));
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
while ( ( cp - m_document->FIB->m_RgLw97.ccpText ) < (*m_document->IndividualFootnotesPlex)[id + 1] )
|
||||
{
|
||||
int cpStart = cp;
|
||||
|
||||
int fc = m_document->FindFileCharPos(cp);
|
||||
if (fc < 0) break;
|
||||
|
||||
ParagraphPropertyExceptions* papx = findValidPapx( fc );
|
||||
TableInfo tai( papx, m_document->nWordVersion );
|
||||
|
||||
if ( tai.fInTable )
|
||||
{
|
||||
//this PAPX is for a table
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
table.Convert( this );
|
||||
cp = table.GetCPEnd();
|
||||
}
|
||||
else
|
||||
{
|
||||
//this PAPX is for a normal paragraph
|
||||
cp = writeParagraph( cp, 0x7fffffff );
|
||||
}
|
||||
while (cp <= cpStart) //conv_fQioC665ib4ngHkDGY4__docx.doc
|
||||
cp++;
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:footnote");
|
||||
id++;
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:footnotes");
|
||||
|
||||
m_context->_docx->FootnotesXML = std::wstring(m_pXmlWriter->GetXmlString());
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,150 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ConversionContext.h"
|
||||
#include "FormFieldData.h"
|
||||
|
||||
#include "AbstractOpenXmlMapping.h"
|
||||
#include "IMapping.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class FormFieldDataMapping: public AbstractOpenXmlMapping, public IMapping
|
||||
{
|
||||
public:
|
||||
FormFieldDataMapping(XMLTools::CStringXmlWriter* writer, ConversionContext* context, IMapping* caller)
|
||||
: AbstractOpenXmlMapping(writer), m_context(NULL),_caller(NULL)
|
||||
{
|
||||
m_context = context;
|
||||
_caller = caller;
|
||||
}
|
||||
|
||||
virtual void Apply(IVisitable* visited)
|
||||
{
|
||||
FormFieldData* ffData = static_cast<FormFieldData*>(visited);
|
||||
|
||||
if ( ffData == NULL ) return;
|
||||
|
||||
if (ffData->FFData.bExist)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:ffData");
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:name", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzName));
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:name", true, true );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:enabled", true);
|
||||
if (ffData->FFData.fProt)
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", 0);
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:enabled", true, true);
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:calcOnExit", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.fRecalc);
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:calcOnExit", true, true );
|
||||
|
||||
if (false == ffData->FFData.xstzHelpText.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:helpText", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:type", ffData->FFData.fOwnHelp ? L"text" : L"autoText");
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzHelpText));
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:helpText", true, true);
|
||||
}
|
||||
if (false == ffData->FFData.xstzStatText.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:statusText", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:type", ffData->FFData.fOwnStat ? L"text" : L"autoText");
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzStatText));
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:statusText", true, true);
|
||||
}
|
||||
if (false == ffData->FFData.xstzEntryMcr.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:entryMacro", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzEntryMcr));
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:entryMacro", true, true);
|
||||
}
|
||||
if (false == ffData->FFData.xstzExitMcr.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:exitMacro", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", XmlUtils::EncodeXmlString(ffData->FFData.xstzExitMcr));
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:exitMacro", true, true);
|
||||
}
|
||||
if (ffData->FFData.iType == 1)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:checkBox");
|
||||
|
||||
if (ffData->FFData.iSize)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:size", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.hps);
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:size", true, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:sizeAuto", true);
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:sizeAuto", true, true);
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:default", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.wDef);
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:default", true, true);
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:checkBox");
|
||||
}
|
||||
else if (ffData->FFData.iType == 2)
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:ddList");
|
||||
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:ddList");
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:textInput");
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"w:maxLength", true);
|
||||
m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.cch_field);
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:maxLength", true, true);
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd(L"w:textInput");
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:ffData" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
ConversionContext* m_context;
|
||||
IMapping* _caller;
|
||||
};
|
||||
}
|
||||
@ -1,87 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "VirtualStreamReader.h"
|
||||
#include "ListLevel.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class ListFormatOverrideLevel
|
||||
{
|
||||
friend class NumberingMapping;
|
||||
|
||||
private:
|
||||
/// Start-at value if fFormatting==false and fStartAt==true.
|
||||
/// If fFormatting == true, the start is stored in the LVL
|
||||
int iStartAt;
|
||||
/// The level to be overridden
|
||||
unsigned char ilvl;
|
||||
/// True if the start-at value is overridden
|
||||
bool fStartAt;
|
||||
/// True if the formatting is overridden
|
||||
bool fFormatting;
|
||||
/// A grfhic that specifies HTML incompatibilities of the level.
|
||||
unsigned char grfhic;
|
||||
ListLevel* lvl;
|
||||
|
||||
|
||||
public:
|
||||
ListFormatOverrideLevel():
|
||||
iStartAt(0), ilvl(0), fStartAt(false), fFormatting(false), grfhic(0), lvl(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~ListFormatOverrideLevel()
|
||||
{
|
||||
RELEASEOBJECT( this->lvl );
|
||||
}
|
||||
|
||||
/// Parses the bytes to retrieve a ListFormatOverrideLevel
|
||||
ListFormatOverrideLevel( VirtualStreamReader* reader, int length ):
|
||||
iStartAt(0), ilvl(0), fStartAt(false), fFormatting(false), grfhic(0), lvl(NULL)
|
||||
{
|
||||
this->iStartAt = reader->ReadInt32();
|
||||
unsigned int flag = (int)reader->ReadUInt32();
|
||||
this->ilvl = (unsigned char)( flag & 0x000F );
|
||||
this->fStartAt = FormatUtils::BitmaskToBool( flag, 0x0010 );
|
||||
this->fFormatting = FormatUtils::BitmaskToBool( flag, 0x0020 );
|
||||
this->grfhic = FormatUtils::GetIntFromBits( flag, 6, 8 );
|
||||
|
||||
//it's a complete override, so the fix part is followed by LVL struct
|
||||
if ( this->fFormatting )
|
||||
{
|
||||
this->lvl = new ListLevel( reader, length );
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,86 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "VirtualStreamReader.h"
|
||||
#include "FileInformationBlock.h"
|
||||
#include "ListFormatOverride.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class ListFormatOverrideTable: public std::vector<ListFormatOverride*>
|
||||
{
|
||||
private:
|
||||
static const int LFO_LENGTH = 16;
|
||||
static const int LFOLVL_LENGTH = 6;
|
||||
std::vector<unsigned int> cps;
|
||||
|
||||
public:
|
||||
ListFormatOverrideTable( FileInformationBlock* fib, POLE::Stream* tableStream )
|
||||
{
|
||||
if ( fib->m_FibWord97.lcbPlfLfo > 0 )
|
||||
{
|
||||
VirtualStreamReader reader( tableStream, fib->m_FibWord97.fcPlfLfo, fib->m_nWordVersion);
|
||||
|
||||
if (fib->m_FibWord97.fcPlfLfo > reader.GetSize()) return;
|
||||
|
||||
//read the count of LFOs
|
||||
int count = reader.ReadInt32();
|
||||
|
||||
//read the LFOs
|
||||
for ( int i = 0; i < count; i++ )
|
||||
{
|
||||
this->push_back( new ListFormatOverride( &reader, LFO_LENGTH ) );
|
||||
}
|
||||
|
||||
//read the LFOLVLs
|
||||
for ( int i = 0; i < count; i++ )
|
||||
{
|
||||
this->cps.push_back( reader.ReadUInt32() );
|
||||
|
||||
for ( int j = 0; j < this->at( i )->clfolvl; j++ )
|
||||
{
|
||||
this->at( i )->rgLfoLvl[j] = new ListFormatOverrideLevel( &reader, LFOLVL_LENGTH );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~ListFormatOverrideTable()
|
||||
{
|
||||
for ( vector<ListFormatOverride*>::iterator iter = this->begin(); iter != this->end(); iter++ )
|
||||
{
|
||||
RELEASEOBJECT( *iter );
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,212 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IBinaryReader.h"
|
||||
#include "../Common/FormatUtils.h"
|
||||
|
||||
class MemoryStream: public IBinaryReader
|
||||
{
|
||||
public:
|
||||
|
||||
MemoryStream (unsigned char* data, unsigned long size, bool bMemCopy = true) : m_Data(NULL), m_Size(0), m_Position(0), bMemoryCopy(bMemCopy)
|
||||
{
|
||||
if ( ( data != NULL ) && ( size != 0 ) )
|
||||
{
|
||||
m_Size = size;
|
||||
|
||||
if (bMemoryCopy)
|
||||
{
|
||||
m_Data = new unsigned char[m_Size];
|
||||
if (m_Data)
|
||||
{
|
||||
memcpy (m_Data, data, m_Size);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Data = data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~MemoryStream()
|
||||
{
|
||||
if (bMemoryCopy)
|
||||
RELEASEARRAYOBJECTS (m_Data);
|
||||
}
|
||||
|
||||
|
||||
virtual unsigned short ReadUInt16()
|
||||
{
|
||||
unsigned short rdUShort = 0;
|
||||
|
||||
if (m_Data)
|
||||
{
|
||||
rdUShort = DocFileFormat::FormatUtils::BytesToUInt16 (m_Data, m_Position, m_Size);
|
||||
m_Position += sizeof(rdUShort);
|
||||
}
|
||||
|
||||
return rdUShort;
|
||||
}
|
||||
void WriteUInt16(unsigned short val)
|
||||
{
|
||||
if (m_Data && (m_Position + sizeof(unsigned short) <= m_Size))
|
||||
{
|
||||
((unsigned short *)(m_Data + m_Position))[0] = val;
|
||||
m_Position += sizeof(unsigned short);
|
||||
}
|
||||
}
|
||||
virtual short ReadInt16()
|
||||
{
|
||||
short rdShort = 0;
|
||||
|
||||
if (m_Data)
|
||||
{
|
||||
rdShort = DocFileFormat::FormatUtils::BytesToInt16 (m_Data, m_Position, m_Size);
|
||||
m_Position += sizeof(rdShort);
|
||||
}
|
||||
|
||||
return rdShort;
|
||||
}
|
||||
|
||||
virtual int ReadInt32()
|
||||
{
|
||||
int rdInt = 0;
|
||||
|
||||
if (m_Data)
|
||||
{
|
||||
rdInt = DocFileFormat::FormatUtils::BytesToInt32 (m_Data, m_Position, m_Size);
|
||||
m_Position += sizeof(rdInt);
|
||||
}
|
||||
|
||||
return rdInt;
|
||||
}
|
||||
void WriteInt32(_INT32 val)
|
||||
{
|
||||
if (m_Data && (m_Position + sizeof(_INT32) <= m_Size))
|
||||
{
|
||||
((_INT32 *)(m_Data + m_Position))[0] = val;
|
||||
m_Position += sizeof(_INT32);
|
||||
}
|
||||
}
|
||||
virtual unsigned int ReadUInt32()
|
||||
{
|
||||
int rdUInt = 0;
|
||||
|
||||
if (m_Data )
|
||||
{
|
||||
rdUInt = DocFileFormat::FormatUtils::BytesToUInt32 (m_Data, m_Position, m_Size);
|
||||
m_Position += sizeof(rdUInt);
|
||||
}
|
||||
|
||||
return rdUInt;
|
||||
}
|
||||
void WriteByte(unsigned char val)
|
||||
{
|
||||
if (m_Data && (m_Position + 1 <= m_Size))
|
||||
{
|
||||
m_Data[m_Position] = val;
|
||||
m_Position += 1;
|
||||
}
|
||||
}
|
||||
void WriteUInt32(_UINT32 val)
|
||||
{
|
||||
if (m_Data && (m_Position + sizeof(_UINT32) <= m_Size))
|
||||
{
|
||||
((_UINT32 *)(m_Data + m_Position))[0] = val;
|
||||
m_Position += sizeof(_UINT32);
|
||||
}
|
||||
}
|
||||
virtual unsigned char ReadByte()
|
||||
{
|
||||
unsigned char rdByte = 0;
|
||||
|
||||
if (m_Data)
|
||||
{
|
||||
rdByte = (m_Position < m_Size) ? m_Data[m_Position] : 0;
|
||||
m_Position += sizeof(rdByte);
|
||||
}
|
||||
|
||||
return rdByte;
|
||||
}
|
||||
|
||||
virtual unsigned char* ReadBytes (unsigned int count, bool isResultNeeded)
|
||||
{
|
||||
if (!m_Data) return NULL;
|
||||
|
||||
unsigned int size = ( count <= (m_Size - m_Position) ) ? (count) : (m_Size - m_Position);
|
||||
|
||||
unsigned char* pBytes = (isResultNeeded && count > 0) ? new unsigned char[count] : NULL;
|
||||
|
||||
if (pBytes)
|
||||
{
|
||||
memcpy(pBytes, (m_Data + m_Position), size);
|
||||
}
|
||||
m_Position += size;
|
||||
|
||||
return pBytes;
|
||||
}
|
||||
void WriteBytes(unsigned char* pData, int size)
|
||||
{
|
||||
if (m_Data && (m_Position + size <= m_Size))
|
||||
{
|
||||
memcpy(m_Data + m_Position, pData, size);
|
||||
m_Position += size;
|
||||
}
|
||||
}
|
||||
|
||||
virtual unsigned long GetPosition() const
|
||||
{
|
||||
return m_Position;
|
||||
}
|
||||
|
||||
virtual unsigned long GetSize() const
|
||||
{
|
||||
return m_Size;
|
||||
}
|
||||
|
||||
virtual int Seek (int offset, int origin = 0/*STREAM_SEEK_SET*/)
|
||||
{
|
||||
if ( (m_Data != NULL) && (offset >= 0) && ((unsigned int)offset < m_Size) )
|
||||
return m_Position = offset;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
unsigned char* m_Data;
|
||||
unsigned long m_Size;
|
||||
unsigned long m_Position;
|
||||
bool bMemoryCopy;
|
||||
};
|
||||
@ -1,198 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "OfficeDrawing/RecordFactory.h"
|
||||
|
||||
#include "OfficeDrawing/DrawingContainer.h"
|
||||
#include "OfficeDrawing/DrawingRecord.h"
|
||||
#include "OfficeDrawing/DrawingGroup.h"
|
||||
#include "OfficeDrawing/GroupContainer.h"
|
||||
#include "OfficeDrawing/Shape.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class OfficeArtContent
|
||||
{
|
||||
private:
|
||||
enum DrawingType
|
||||
{
|
||||
MainDocument,
|
||||
Header
|
||||
};
|
||||
|
||||
struct OfficeArtWordDrawing
|
||||
{
|
||||
DrawingType dgglbl;
|
||||
DrawingContainer* container;
|
||||
};
|
||||
|
||||
public:
|
||||
|
||||
OfficeArtContent (const FileInformationBlock* pFIB, POLE::Stream* pStream): m_pDrawingGroupData(NULL), m_pBackgroud(NULL), m_uLastShapeId(1024)
|
||||
{
|
||||
VirtualStreamReader oStearmReader(pStream, 0 , pFIB->m_nWordVersion);
|
||||
|
||||
if (pFIB->m_FibWord97.fcDggInfo > oStearmReader.GetSize()) return;
|
||||
|
||||
oStearmReader.Seek (pFIB->m_FibWord97.fcDggInfo, 0/*STREAM_SEEK_SET*/);
|
||||
|
||||
if (pFIB->m_FibWord97.lcbDggInfo > 0)
|
||||
{
|
||||
unsigned int maxPosition = (int)(pFIB->m_FibWord97.fcDggInfo + pFIB->m_FibWord97.lcbDggInfo);
|
||||
|
||||
// read the DrawingGroupData
|
||||
m_pDrawingGroupData = static_cast<DrawingGroup*>(RecordFactory::ReadRecord (&oStearmReader, 0));
|
||||
|
||||
while (oStearmReader.GetPosition() < maxPosition)
|
||||
{
|
||||
OfficeArtWordDrawing drawing;
|
||||
drawing.dgglbl = (DrawingType)oStearmReader.ReadByte();
|
||||
drawing.container = static_cast<DrawingContainer*>(RecordFactory::ReadRecord (&oStearmReader, 0));
|
||||
|
||||
for (size_t i = 0; i < drawing.container->Children.size(); ++i)
|
||||
{
|
||||
Record* groupChild = drawing.container->Children[i];
|
||||
if (groupChild)
|
||||
{
|
||||
if (GroupContainer::TYPE_CODE_0xF003 == groupChild->TypeCode)
|
||||
{
|
||||
GroupContainer* group = static_cast<GroupContainer*>(groupChild);
|
||||
if (group)
|
||||
{
|
||||
group->Index = (int)i;
|
||||
}
|
||||
}
|
||||
else if (ShapeContainer::TYPE_CODE_0xF004 == groupChild->TypeCode)
|
||||
{
|
||||
ShapeContainer* shape = static_cast<ShapeContainer*>(groupChild);
|
||||
if (shape)
|
||||
{
|
||||
shape->m_nIndex = (int)i;
|
||||
if (shape->m_bBackground)
|
||||
{
|
||||
m_pBackgroud = shape;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (DrawingRecord::TYPE_CODE_0xF008 == groupChild->TypeCode)
|
||||
{
|
||||
DrawingRecord* dr = static_cast<DrawingRecord*>(groupChild);
|
||||
if (dr)
|
||||
{
|
||||
m_uLastShapeId = dr->spidCur;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_arrDrawings.push_back( drawing );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
~OfficeArtContent()
|
||||
{
|
||||
RELEASEOBJECT (m_pDrawingGroupData);
|
||||
|
||||
for ( std::list<OfficeArtWordDrawing>::iterator iter = m_arrDrawings.begin(); iter != m_arrDrawings.end(); ++iter)
|
||||
RELEASEOBJECT(iter->container);
|
||||
}
|
||||
inline ShapeContainer* GetShapeBackgound()
|
||||
{
|
||||
return m_pBackgroud;
|
||||
}
|
||||
inline ShapeContainer* GetShapeContainer (int spid)
|
||||
{
|
||||
ShapeContainer* ret = NULL;
|
||||
|
||||
for (std::list<OfficeArtWordDrawing>::iterator iter = m_arrDrawings.begin(); iter != m_arrDrawings.end(); ++iter)
|
||||
{
|
||||
GroupContainer* group = iter->container->FirstChildWithType<GroupContainer>();
|
||||
if (group)
|
||||
{
|
||||
for (size_t i = 1; i < group->Children.size(); ++i)
|
||||
{
|
||||
Record* groupChild = group->Children[i];
|
||||
|
||||
if ( groupChild->TypeCode == GroupContainer::TYPE_CODE_0xF003)
|
||||
{
|
||||
//It's a group of shapes
|
||||
GroupContainer* subgroup = static_cast<GroupContainer*>(groupChild);
|
||||
|
||||
//the referenced shape must be the first shape in the group
|
||||
ShapeContainer* container = static_cast<ShapeContainer*>(subgroup->Children[0]);
|
||||
Shape* shape = static_cast<Shape*>(container->Children[1]);
|
||||
|
||||
if (shape->GetShapeID() == spid)
|
||||
{
|
||||
ret = container;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if ( groupChild->TypeCode == ShapeContainer::TYPE_CODE_0xF004 )
|
||||
{
|
||||
//It's a singe shape
|
||||
ShapeContainer* container = static_cast<ShapeContainer*>(groupChild);
|
||||
Shape* shape = static_cast<Shape*>(container->Children[0]);
|
||||
|
||||
if (shape->GetShapeID() == spid)
|
||||
{
|
||||
ret = container;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ret)
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
inline const DrawingGroup* GetDrawingGroup () const
|
||||
{
|
||||
return m_pDrawingGroupData;
|
||||
}
|
||||
unsigned int m_uLastShapeId;
|
||||
private:
|
||||
ShapeContainer* m_pBackgroud;
|
||||
DrawingGroup* m_pDrawingGroupData;
|
||||
std::list<OfficeArtWordDrawing> m_arrDrawings;
|
||||
};
|
||||
}
|
||||
@ -1,101 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class BitmapBlip: public Record
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF01D = 0xF01D;
|
||||
static const unsigned short TYPE_CODE_0xF01E = 0xF01E;
|
||||
static const unsigned short TYPE_CODE_0xF01F = 0xF01F;
|
||||
static const unsigned short TYPE_CODE_0xF020 = 0xF020;
|
||||
static const unsigned short TYPE_CODE_0xF021 = 0xF021;
|
||||
static const unsigned short TYPE_CODE_0xF02A = 0xF02A;
|
||||
static const unsigned short TYPE_CODE_0xF029 = 0xF029;
|
||||
|
||||
public:
|
||||
BitmapBlip() : Record(), m_rgbUid(NULL), m_rgbUidPrimary(NULL), m_bTag(0), m_pvBits(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
BitmapBlip(IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) :
|
||||
Record(_reader, size, typeCode, version, instance ), m_rgbUid(NULL), m_rgbUidPrimary(NULL), m_bTag(0), m_pvBits(NULL), pvBitsSize(0)
|
||||
{
|
||||
m_rgbUid = Reader->ReadBytes(16, true);
|
||||
|
||||
if ((instance == 0x46B) || (instance == 0x6E3) || (instance == 0x6E1) || (instance == 0x7A9) || (instance == 0x6E5))
|
||||
{
|
||||
m_rgbUidPrimary = Reader->ReadBytes(16, true);
|
||||
}
|
||||
|
||||
m_bTag = Reader->ReadByte();
|
||||
|
||||
pvBitsSize = (size - 17);
|
||||
|
||||
if (m_rgbUidPrimary)
|
||||
{
|
||||
pvBitsSize -= 16;
|
||||
}
|
||||
|
||||
m_pvBits = Reader->ReadBytes((int)(pvBitsSize), true);
|
||||
}
|
||||
|
||||
virtual ~BitmapBlip()
|
||||
{
|
||||
RELEASEARRAYOBJECTS(m_rgbUid);
|
||||
RELEASEARRAYOBJECTS(m_rgbUidPrimary);
|
||||
RELEASEARRAYOBJECTS(m_pvBits);
|
||||
}
|
||||
|
||||
virtual Record* NewObject(IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
|
||||
{
|
||||
return new BitmapBlip(_reader, bodySize, typeCode, version, instance);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
/// The secondary, or data, UID - should always be set.
|
||||
unsigned char* m_rgbUid;
|
||||
/// The primary UID - this defaults to 0, in which case the primary ID is that of the internal data.
|
||||
/// NOTE!: The primary UID is only saved to disk if (blip_instance ^ blip_signature == 1).
|
||||
/// Blip_instance is MSOFBH.finst and blip_signature is one of the values defined in MSOBI
|
||||
unsigned char* m_rgbUidPrimary;
|
||||
unsigned char m_bTag;
|
||||
/// Raster bits of the blip
|
||||
unsigned char* m_pvBits;
|
||||
unsigned int pvBitsSize;
|
||||
};
|
||||
}
|
||||
@ -1,60 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RegularContainer.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class BlipStoreContainer: public RegularContainer
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF001 = 0xF001;
|
||||
|
||||
BlipStoreContainer () : RegularContainer()
|
||||
{
|
||||
}
|
||||
|
||||
BlipStoreContainer (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : RegularContainer (_reader, size, typeCode, version, instance)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~BlipStoreContainer()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject (IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
|
||||
{
|
||||
return new BlipStoreContainer( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,137 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RecordFactory.h"
|
||||
#include "../Global.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class BlipStoreEntry: public Record // OfficeArtFBSE
|
||||
{
|
||||
friend class VMLShapeMapping;
|
||||
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF007 = 0xF007;
|
||||
|
||||
/// Required type on Win32
|
||||
Global::BlipType btWin32;
|
||||
/// Required type on Mac
|
||||
Global::BlipType btMacOS;
|
||||
Record* Blip;
|
||||
|
||||
private:
|
||||
/// Identifier of blip
|
||||
unsigned char* rgbUid;
|
||||
/// currently unused
|
||||
short tag;
|
||||
/// Blip size in stream
|
||||
unsigned int size;
|
||||
/// Reference count on the blip
|
||||
unsigned int cRef;
|
||||
unsigned int foDelay; // File offset in the delay stream
|
||||
/// How this blip is used (MSOBLIPUSAGE)
|
||||
Global::BlipUsage usage;
|
||||
/// length of the blip name
|
||||
unsigned char cbName;
|
||||
/// for the future
|
||||
unsigned char unused2;
|
||||
/// for the future
|
||||
unsigned char unused3;
|
||||
/// The primary UID - this defaults to 0, in which case the primary ID is that of the internal data.
|
||||
/// NOTE!: The primary UID is only saved to disk if (blip_instance ^ blip_signature == 1).
|
||||
/// Blip_instance is MSOFBH.inst and blip_signature is one of the values defined in MSOBI
|
||||
unsigned char* m_rgbUid;
|
||||
/// optional based on the above check.
|
||||
unsigned char* m_rgbUidPrimary;
|
||||
unsigned char m_bTag;
|
||||
/// Cache of the metafile size
|
||||
short m_cb;
|
||||
//RECT m_rcBounds; // Boundary of metafile drawing commands
|
||||
//POINT m_ptSize; // Size of metafile in EMUs
|
||||
/// Cache of saved size (size of m_pvBits)
|
||||
short m_cbSave;
|
||||
/// Compression
|
||||
unsigned char m_fCompression;
|
||||
/// always msofilterNone
|
||||
unsigned char m_fFilter;
|
||||
|
||||
public:
|
||||
|
||||
BlipStoreEntry() : Record(), btWin32(Global::msoblipERROR), btMacOS(Global::msoblipERROR), rgbUid(NULL), tag(0), size(0), cRef(0),
|
||||
foDelay(0), usage(Global::msoblipUsageDefault), cbName(0), unused2(0), unused3(0), m_rgbUid(NULL), m_rgbUidPrimary(NULL),
|
||||
m_bTag(0), m_cb(0), m_cbSave(0), m_fCompression(0), m_fFilter(0), Blip(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
BlipStoreEntry(IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
|
||||
Record( _reader, size, typeCode, version, instance ), btWin32(Global::msoblipERROR), btMacOS(Global::msoblipERROR), rgbUid(NULL), tag(0), size(0), cRef(0),
|
||||
foDelay(0), usage(Global::msoblipUsageDefault), cbName(0), unused2(0), unused3(0), m_rgbUid(NULL), m_rgbUidPrimary(NULL),
|
||||
m_bTag(0), m_cb(0), m_cbSave(0), m_fCompression(0), m_fFilter(0), Blip(NULL)
|
||||
{
|
||||
btWin32 = (Global::BlipType)Reader->ReadByte();
|
||||
btMacOS = (Global::BlipType)Reader->ReadByte();
|
||||
rgbUid = Reader->ReadBytes(16, true);
|
||||
tag = Reader->ReadInt16();
|
||||
size = Reader->ReadUInt32();
|
||||
cRef = Reader->ReadUInt32();
|
||||
foDelay = Reader->ReadUInt32();
|
||||
usage = (Global::BlipUsage) Reader->ReadByte();
|
||||
cbName = Reader->ReadByte();
|
||||
unused2 = Reader->ReadByte();
|
||||
unused3 = Reader->ReadByte();
|
||||
|
||||
if (btMacOS != btWin32)
|
||||
{
|
||||
btWin32 = btMacOS = (Global::BlipType)this->Instance;
|
||||
}
|
||||
|
||||
if (BodySize > 0x24)
|
||||
{
|
||||
Blip = RecordFactory::ReadRecord(Reader, 0);
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~BlipStoreEntry()
|
||||
{
|
||||
RELEASEARRAYOBJECTS(rgbUid);
|
||||
RELEASEARRAYOBJECTS(m_rgbUid);
|
||||
RELEASEARRAYOBJECTS(m_rgbUidPrimary);
|
||||
RELEASEOBJECT(Blip);
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new BlipStoreEntry( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class ChildAnchor: public Record
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF00F = 0xF00F;
|
||||
|
||||
ChildAnchor() : Record(), rcgBounds(), Left(0), Top(0), Right(0), Bottom(0)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
ChildAnchor (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record (_reader, size, typeCode, version, instance), rcgBounds(), Left(0), Top(0), Right(0), Bottom(0)
|
||||
{
|
||||
Left = Reader->ReadInt32();
|
||||
Top = Reader->ReadInt32();
|
||||
Right = Reader->ReadInt32();
|
||||
Bottom = Reader->ReadInt32();
|
||||
|
||||
POINT _point;
|
||||
_point.x = Left;
|
||||
_point.y = Top;
|
||||
|
||||
SIZE _size;
|
||||
_size.cx = Right - Left;
|
||||
_size.cy = Bottom - Top;
|
||||
|
||||
rcgBounds = DocFileFormat::Rectangle (_point, _size);
|
||||
}
|
||||
|
||||
virtual ~ChildAnchor()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new ChildAnchor( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
/// Rectangle that describes the bounds of the anchor
|
||||
DocFileFormat::Rectangle rcgBounds;
|
||||
int Left;
|
||||
int Top;
|
||||
int Right;
|
||||
int Bottom;
|
||||
};
|
||||
}
|
||||
@ -1,63 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class ClientAnchor: public Record
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF010 = 0xF010;
|
||||
|
||||
ClientAnchor() : Record(), value(0)
|
||||
{
|
||||
}
|
||||
|
||||
ClientAnchor (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record (_reader, size, typeCode, version, instance), value(0)
|
||||
{
|
||||
value = Reader->ReadInt32(); //index PlcfSpa
|
||||
}
|
||||
|
||||
virtual ~ClientAnchor()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject (IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
|
||||
{
|
||||
return new ClientAnchor (_reader, bodySize, typeCode, version, instance);
|
||||
}
|
||||
|
||||
unsigned int value;
|
||||
};
|
||||
}
|
||||
@ -1,62 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RegularContainer.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class DrawingContainer: public RegularContainer
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF002 = 0xF002;
|
||||
|
||||
DrawingContainer():
|
||||
RegularContainer()
|
||||
{
|
||||
}
|
||||
|
||||
DrawingContainer( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
|
||||
RegularContainer( _reader, size, typeCode, version, instance )
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~DrawingContainer()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new DrawingContainer( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,60 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RegularContainer.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class DrawingGroup: public RegularContainer
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF000 = 0xF000;
|
||||
|
||||
DrawingGroup(): RegularContainer()
|
||||
{
|
||||
}
|
||||
|
||||
DrawingGroup (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : RegularContainer( _reader, size, typeCode, version, instance )
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~DrawingGroup()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject (IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
|
||||
{
|
||||
return new DrawingGroup (_reader, bodySize, typeCode, version, instance);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,67 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class DrawingRecord: public Record
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF008 = 0xF008;
|
||||
|
||||
unsigned int csp; // The number of shapes in this drawing
|
||||
unsigned int spidCur; // The last MSOSPID given to an SP in this DG
|
||||
|
||||
DrawingRecord():
|
||||
Record(), csp(0), spidCur(0)
|
||||
{
|
||||
}
|
||||
|
||||
DrawingRecord( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
|
||||
Record( _reader, size, typeCode, version, instance )
|
||||
{
|
||||
csp = Reader->ReadUInt32();
|
||||
spidCur = Reader->ReadInt32();
|
||||
}
|
||||
|
||||
virtual ~DrawingRecord()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new DrawingRecord( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ShapeContainer.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class GroupContainer: public RegularContainer
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF003 = 0xF003;
|
||||
|
||||
int Index;
|
||||
|
||||
GroupContainer() : RegularContainer(), Index(0)
|
||||
{
|
||||
}
|
||||
|
||||
GroupContainer(IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : RegularContainer(_reader, size, typeCode, version, instance), Index(0)
|
||||
{
|
||||
for ( unsigned int i = 0; i < this->Children.size(); i++ )
|
||||
{
|
||||
Record* groupChild = this->Children[i];
|
||||
|
||||
if ( groupChild != NULL )
|
||||
{
|
||||
if ( groupChild->TypeCode == 0xF003 )
|
||||
{
|
||||
// the child is a subgroup
|
||||
GroupContainer* group = static_cast<GroupContainer*>(groupChild);
|
||||
group->Index = i;
|
||||
this->Children[i] = group;
|
||||
}
|
||||
else if ( groupChild->TypeCode == 0xF004 )
|
||||
{
|
||||
// the child is a shape
|
||||
ShapeContainer* shape = static_cast<ShapeContainer*>(groupChild);
|
||||
shape->m_nIndex = i;
|
||||
this->Children[i] = shape;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~GroupContainer()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new GroupContainer( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,82 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class GroupShapeRecord: public Record
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF009 = 0xF009;
|
||||
|
||||
GroupShapeRecord () : Record(), rcgBounds()
|
||||
{
|
||||
}
|
||||
|
||||
GroupShapeRecord(IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record(_reader, size, typeCode, version, instance), rcgBounds()
|
||||
{
|
||||
int left = Reader->ReadInt32();
|
||||
int top = Reader->ReadInt32();
|
||||
int right = Reader->ReadInt32();
|
||||
int bottom = Reader->ReadInt32();
|
||||
|
||||
//left = max( 0, left );
|
||||
//top = max( 0, top );
|
||||
//right = max( 0, right );
|
||||
//bottom = max( 0, bottom );
|
||||
|
||||
POINT oPoint;
|
||||
oPoint.x = left;
|
||||
oPoint.y = top;
|
||||
|
||||
SIZE oSize;
|
||||
oSize.cx = ( right - left );
|
||||
oSize.cy = ( bottom - top );
|
||||
|
||||
rcgBounds = DocFileFormat::Rectangle(oPoint,oSize);
|
||||
}
|
||||
|
||||
virtual ~GroupShapeRecord()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new GroupShapeRecord( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
|
||||
DocFileFormat::Rectangle rcgBounds;
|
||||
};
|
||||
}
|
||||
@ -1,366 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
#include "../../../OfficeUtils/src/OfficeUtils.h"
|
||||
#include "../../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
typedef struct
|
||||
{
|
||||
short Left;
|
||||
short Top;
|
||||
short Right;
|
||||
short Bottom;
|
||||
} PWMFRect16;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
_UINT32 Key; // GDIP_WMF_PLACEABLEKEY
|
||||
short Hmf; // Metafile HANDLE number (always 0)
|
||||
PWMFRect16 BoundingBox; // Coordinates in metafile units
|
||||
short Inch; // Number of metafile units per inch
|
||||
_UINT32 Reserved; // Reserved (always 0)
|
||||
short Checksum; // Checksum value for previous 10 WORDs
|
||||
} WmfPlaceableFileHeader;
|
||||
|
||||
class CMetaHeader
|
||||
{
|
||||
|
||||
public:
|
||||
DWORD cbSize;
|
||||
RECT rcBounds;
|
||||
POINT ptSize;
|
||||
DWORD cbSave;
|
||||
BYTE compression;
|
||||
BYTE filter;
|
||||
|
||||
CMetaHeader()
|
||||
{
|
||||
cbSize = cbSave = 0;
|
||||
filter = compression = 0;
|
||||
ptSize.x = ptSize.y = 0;
|
||||
|
||||
rcBounds.bottom = rcBounds.left = rcBounds.right = rcBounds.top = 0;
|
||||
|
||||
}
|
||||
|
||||
void ToWMFHeader(WmfPlaceableFileHeader* pHeader)
|
||||
{
|
||||
if (NULL == pHeader)
|
||||
return;
|
||||
|
||||
pHeader->Key = 0x9AC6CDD7;
|
||||
pHeader->Hmf = 0;
|
||||
|
||||
pHeader->BoundingBox.Left = (short)rcBounds.left;
|
||||
pHeader->BoundingBox.Top = (short)rcBounds.top;
|
||||
pHeader->BoundingBox.Right = (short)rcBounds.right;
|
||||
pHeader->BoundingBox.Bottom = (short)rcBounds.bottom;
|
||||
|
||||
pHeader->Inch = 1440; // 1:1
|
||||
pHeader->Reserved = 0;
|
||||
|
||||
pHeader->Checksum = 0;
|
||||
pHeader->Checksum ^= (pHeader->Key & 0x0000FFFFL);
|
||||
pHeader->Checksum ^= ((pHeader->Key & 0xFFFF0000L) >> 16);
|
||||
|
||||
pHeader->Checksum ^= pHeader->Hmf;
|
||||
|
||||
pHeader->Checksum ^= pHeader->BoundingBox.Left;
|
||||
pHeader->Checksum ^= pHeader->BoundingBox.Top;
|
||||
pHeader->Checksum ^= pHeader->BoundingBox.Right;
|
||||
pHeader->Checksum ^= pHeader->BoundingBox.Bottom;
|
||||
|
||||
pHeader->Checksum ^= pHeader->Inch;
|
||||
pHeader->Checksum ^= (pHeader->Reserved & 0x0000FFFFL);
|
||||
pHeader->Checksum ^= ((pHeader->Reserved & 0xFFFF0000L) >> 16);
|
||||
}
|
||||
};
|
||||
|
||||
class CMetaFileBuffer
|
||||
{
|
||||
public:
|
||||
bool m_bIsValid;
|
||||
std::wstring m_sExtension;
|
||||
private:
|
||||
BYTE* m_pMetaHeader;
|
||||
BYTE* m_pMetaFile;
|
||||
|
||||
LONG m_lMetaHeaderSize;
|
||||
LONG m_lMetaFileSize;
|
||||
|
||||
public:
|
||||
CMetaFileBuffer()
|
||||
{
|
||||
m_bIsValid = false;
|
||||
|
||||
m_pMetaHeader = NULL;
|
||||
m_pMetaFile = NULL;
|
||||
|
||||
m_lMetaHeaderSize = 0;
|
||||
m_lMetaFileSize = 0;
|
||||
}
|
||||
~CMetaFileBuffer()
|
||||
{
|
||||
RELEASEARRAYOBJECTS(m_pMetaHeader);
|
||||
RELEASEARRAYOBJECTS(m_pMetaFile);
|
||||
}
|
||||
|
||||
void SetHeader(BYTE* pHeader, LONG lSize)
|
||||
{
|
||||
m_pMetaHeader = pHeader;
|
||||
m_lMetaHeaderSize = lSize;
|
||||
}
|
||||
|
||||
void SetData(BYTE* pCompress, LONG lCompressSize, LONG lUncompressSize, bool bIsCompressed)
|
||||
{
|
||||
if (!bIsCompressed)
|
||||
{
|
||||
m_pMetaFile = new BYTE[lCompressSize];
|
||||
m_lMetaFileSize = lCompressSize;
|
||||
memcpy(m_pMetaFile, pCompress, lCompressSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
ULONG lSize = lUncompressSize;
|
||||
m_pMetaFile = new BYTE[lUncompressSize];
|
||||
|
||||
HRESULT res = S_OK;
|
||||
COfficeUtils* pOfficeUtils = new COfficeUtils(NULL);
|
||||
|
||||
if (pOfficeUtils)
|
||||
{
|
||||
pOfficeUtils->Uncompress( m_pMetaFile, &lSize, pCompress, lCompressSize );
|
||||
|
||||
delete pOfficeUtils;
|
||||
pOfficeUtils = NULL;
|
||||
|
||||
m_lMetaFileSize = (LONG)lSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
RELEASEARRAYOBJECTS(m_pMetaFile);
|
||||
m_lMetaFileSize = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int ToBuffer(BYTE *& Data)
|
||||
{
|
||||
int sz = 0;
|
||||
|
||||
if (NULL != m_pMetaHeader) sz += m_lMetaHeaderSize;
|
||||
if (NULL != m_pMetaFile) sz += m_lMetaFileSize;
|
||||
|
||||
Data = new BYTE[sz];
|
||||
int pos = 0;
|
||||
|
||||
if (NULL != m_pMetaHeader)
|
||||
{
|
||||
memcpy(Data, (BYTE*)m_pMetaHeader, m_lMetaHeaderSize);
|
||||
pos += m_lMetaHeaderSize;
|
||||
}
|
||||
if (NULL != m_pMetaFile)
|
||||
{
|
||||
memcpy(Data + pos, (BYTE*)m_pMetaFile, m_lMetaFileSize);
|
||||
}
|
||||
|
||||
return sz;
|
||||
}
|
||||
void ToFile(NSFile::CFileBinary* pFile)
|
||||
{
|
||||
if (NULL != m_pMetaHeader)
|
||||
{
|
||||
pFile->WriteFile((BYTE*)m_pMetaHeader, m_lMetaHeaderSize);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
typedef enum _BlipCompression
|
||||
{
|
||||
BlipCompressionDeflate,
|
||||
BlipCompressionNone = 254,
|
||||
BlipCompressionTest = 255
|
||||
} BlipCompression;
|
||||
|
||||
class MetafilePictBlip: public Record
|
||||
{
|
||||
private:
|
||||
/// The secondary, or data, UID - should always be set.
|
||||
unsigned char* m_rgbUid;
|
||||
/// The primary UID - this defaults to 0, in which case the primary ID is that of the internal data.
|
||||
/// NOTE!: The primary UID is only saved to disk if (blip_instance ^ blip_signature == 1).
|
||||
/// Blip_instance is MSOFBH.finst and blip_signature is one of the values defined in MSOBI
|
||||
unsigned char* m_rgbUidPrimary;
|
||||
/// Cache of the metafile size
|
||||
int m_cb;
|
||||
RECT m_rcBounds;
|
||||
/// Boundary of metafile drawing commands
|
||||
POINT m_ptSize;
|
||||
/// Cache of saved size (size of m_pvBits)
|
||||
int m_cbSave;
|
||||
/// Compression
|
||||
BlipCompression m_fCompression;
|
||||
/// always msofilterNone
|
||||
bool m_fFilter;
|
||||
|
||||
/// Compressed bits of metafile.
|
||||
unsigned char* m_pvBits;
|
||||
|
||||
public:
|
||||
CMetaFileBuffer oMetaFile;
|
||||
|
||||
static const unsigned short TYPE_CODE_0xF01A = 0xF01A;
|
||||
static const unsigned short TYPE_CODE_0xF01B = 0xF01B;
|
||||
static const unsigned short TYPE_CODE_0xF01C = 0xF01C;
|
||||
|
||||
MetafilePictBlip():
|
||||
Record(), m_rgbUid(NULL), m_rgbUidPrimary(NULL), m_cb(0), m_cbSave(0), m_fCompression(BlipCompressionNone), m_fFilter(false),
|
||||
m_pvBits(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
MetafilePictBlip( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
|
||||
Record( _reader, size, typeCode, version, instance ), m_rgbUid(NULL), m_rgbUidPrimary(NULL), m_cb(0), m_cbSave(0),
|
||||
m_fCompression(BlipCompressionNone), m_fFilter(false), m_pvBits(NULL)
|
||||
{
|
||||
m_rgbUid = Reader->ReadBytes( 16, true );
|
||||
|
||||
if ( ( instance == 0x3D5 ) || ( instance == 0x217 ) || ( instance == 0x543 ) )
|
||||
{
|
||||
m_rgbUidPrimary = Reader->ReadBytes( 16, true );
|
||||
}
|
||||
|
||||
oMetaFile.m_bIsValid = TRUE;
|
||||
oMetaFile.m_sExtension = L".emf";
|
||||
|
||||
CMetaHeader oMetaHeader;
|
||||
|
||||
m_cb = Reader->ReadInt32();
|
||||
|
||||
m_rcBounds.left = Reader->ReadInt32();
|
||||
m_rcBounds.top = Reader->ReadInt32();
|
||||
m_rcBounds.right = Reader->ReadInt32() + m_rcBounds.left;
|
||||
m_rcBounds.bottom = Reader->ReadInt32() + m_rcBounds.top;
|
||||
|
||||
m_ptSize.x = Reader->ReadInt32();
|
||||
m_ptSize.y = Reader->ReadInt32();
|
||||
|
||||
m_cbSave = Reader->ReadInt32();
|
||||
m_fCompression = (BlipCompression)Reader->ReadByte();
|
||||
m_fFilter = ( Reader->ReadByte() == 1 ) ? (true) : (false);
|
||||
|
||||
int sz = Reader->GetSize() - Reader->GetPosition();
|
||||
m_pvBits = Reader->ReadBytes( sz/*m_cbSave*/, true );
|
||||
|
||||
oMetaHeader.rcBounds = m_rcBounds;
|
||||
oMetaHeader.cbSize = m_cb;
|
||||
oMetaHeader.ptSize = m_ptSize;
|
||||
oMetaHeader.cbSave = m_cbSave ;
|
||||
oMetaHeader.compression = m_fCompression;
|
||||
oMetaHeader.filter = m_fFilter;
|
||||
|
||||
if (typeCode == 0xf01b)
|
||||
{
|
||||
oMetaFile.m_sExtension = L".wmf";
|
||||
|
||||
WmfPlaceableFileHeader oWmfHeader = {};
|
||||
oMetaHeader.ToWMFHeader(&oWmfHeader);
|
||||
|
||||
LONG lLenHeader = 22;
|
||||
BYTE* pMetaHeader = new BYTE[lLenHeader];
|
||||
memcpy(pMetaHeader, (void*)(&oWmfHeader), lLenHeader);
|
||||
|
||||
oMetaFile.SetHeader(pMetaHeader, lLenHeader);
|
||||
}
|
||||
if (typeCode == 0xf01c)
|
||||
{
|
||||
oMetaFile.m_sExtension = L".pcz";
|
||||
//decompress???
|
||||
}
|
||||
oMetaFile.SetData(m_pvBits, oMetaHeader.cbSave, oMetaHeader.cbSize, 0 == oMetaHeader.compression);
|
||||
}
|
||||
|
||||
virtual ~MetafilePictBlip()
|
||||
{
|
||||
RELEASEARRAYOBJECTS( m_rgbUid );
|
||||
RELEASEARRAYOBJECTS( m_rgbUidPrimary );
|
||||
RELEASEARRAYOBJECTS( m_pvBits );
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new MetafilePictBlip( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
|
||||
/// Decompresses the bits of the picture if the picture is decompressed.
|
||||
/// If the picture is not compressed, it returns original unsigned char array.
|
||||
unsigned long Decompress( unsigned char **buffer )
|
||||
{
|
||||
unsigned long uncomprLen = 0;
|
||||
|
||||
|
||||
if ( m_fCompression == BlipCompressionDeflate )
|
||||
{
|
||||
uncomprLen = m_cb;
|
||||
*buffer = new unsigned char[uncomprLen];
|
||||
|
||||
HRESULT res = S_OK;
|
||||
COfficeUtils* pOfficeUtils = new COfficeUtils(NULL);
|
||||
|
||||
if (pOfficeUtils)
|
||||
{
|
||||
pOfficeUtils->Uncompress( *buffer, &uncomprLen, m_pvBits, m_cbSave );
|
||||
|
||||
delete pOfficeUtils;
|
||||
pOfficeUtils = NULL;
|
||||
}
|
||||
}
|
||||
else if ( m_fCompression == BlipCompressionNone )
|
||||
|
||||
{
|
||||
uncomprLen = m_cbSave;
|
||||
*buffer = new unsigned char[uncomprLen];
|
||||
|
||||
memcpy( *buffer, m_pvBits , m_cbSave );
|
||||
}
|
||||
|
||||
return uncomprLen;
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,73 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class OfficeArtClientTextbox : public Record
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF00D = 0xF00D;
|
||||
|
||||
OfficeArtClientTextbox () : Record(), m_nIndex(0)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
OfficeArtClientTextbox (IBinaryReader* reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : Record(reader, size, typeCode, version, instance), m_nIndex(0)
|
||||
{
|
||||
unsigned int number = Reader->ReadUInt16();
|
||||
m_nIndex = Reader->ReadUInt16();
|
||||
}
|
||||
|
||||
virtual ~OfficeArtClientTextbox()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual Record* NewObject(IBinaryReader* reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
|
||||
{
|
||||
return new OfficeArtClientTextbox(reader, bodySize, typeCode, version, instance);
|
||||
}
|
||||
|
||||
inline int GetIndex ()
|
||||
{
|
||||
return m_nIndex;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
int m_nIndex;
|
||||
};
|
||||
}
|
||||
@ -1,60 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RegularContainer.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class OfficeArtFRITContainer: public RegularContainer
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF118 = 0xF118;
|
||||
|
||||
OfficeArtFRITContainer () : RegularContainer()
|
||||
{
|
||||
}
|
||||
|
||||
OfficeArtFRITContainer (IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance) : RegularContainer (_reader, size, typeCode, version, instance)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~OfficeArtFRITContainer()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject (IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance)
|
||||
{
|
||||
return new OfficeArtFRITContainer( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,75 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "Record.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
Record::~Record()
|
||||
{
|
||||
RELEASEARRAYOBJECTS( RawData );
|
||||
RELEASEOBJECT( Reader );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
Record::Record():
|
||||
HeaderSize(0), BodySize(0), RawData(NULL), SiblingIdx(0), TypeCode(0), Version(0), Instance(0), Reader(NULL),
|
||||
_ParentRecord(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
Record::Record( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance ):
|
||||
HeaderSize(Record::HEADER_SIZE_IN_BYTES), BodySize(bodySize), RawData(NULL), SiblingIdx(0), TypeCode(typeCode), Version(version), Instance(instance), Reader(NULL),
|
||||
_ParentRecord(NULL)
|
||||
{
|
||||
HeaderSize = Record::HEADER_SIZE_IN_BYTES;
|
||||
|
||||
int real_size = _reader->GetSize() - _reader->GetPosition();
|
||||
|
||||
if (real_size < BodySize)
|
||||
{
|
||||
BodySize = real_size;
|
||||
}
|
||||
|
||||
RawData = _reader->ReadBytes( BodySize, true );
|
||||
Reader = new MemoryStream( RawData, BodySize, false );
|
||||
}
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
unsigned int Record::GetTotalSize() const
|
||||
{
|
||||
return ( HeaderSize + BodySize );
|
||||
}
|
||||
}
|
||||
@ -1,130 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
#include "ShapeTypeFactory.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class Shape: public Record
|
||||
{
|
||||
public:
|
||||
int spid;
|
||||
bool fGroup;
|
||||
bool fChild;
|
||||
bool fPatriarch; // This is the topmost group shape. Exactly one of these per drawing.
|
||||
bool fDeleted; // The shape has been deleted
|
||||
bool fOleShape; // The shape is an OLE object
|
||||
bool fHaveMaster;
|
||||
bool fFlipH;
|
||||
bool fFlipV;
|
||||
bool fConnector;
|
||||
bool fHaveAnchor;
|
||||
bool fBackground;
|
||||
bool fHaveSpt;
|
||||
|
||||
ShapeType* shapeType;
|
||||
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF00A = 0xF00A;
|
||||
|
||||
Shape():
|
||||
Record(), spid(0), fGroup(false), fChild(false), fPatriarch(false), fDeleted(false), fOleShape(false),
|
||||
fHaveMaster(false), fFlipH(false), fFlipV(false), fConnector(false), fHaveAnchor(false), fBackground(false),
|
||||
fHaveSpt(false), shapeType(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~Shape()
|
||||
{
|
||||
RELEASEOBJECT( shapeType );
|
||||
}
|
||||
|
||||
Shape( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
|
||||
Record( _reader, size, typeCode, version, instance ), spid(0), fGroup(false), fChild(false), fPatriarch(false), fDeleted(false), fOleShape(false),
|
||||
fHaveMaster(false), fFlipH(false), fFlipV(false), fConnector(false), fHaveAnchor(false), fBackground(false),
|
||||
fHaveSpt(false), shapeType(NULL)
|
||||
{
|
||||
spid = Reader->ReadInt32();
|
||||
|
||||
unsigned int flag = Reader->ReadUInt32();
|
||||
|
||||
fGroup = FormatUtils::BitmaskToBool( flag, 0x1 );
|
||||
fChild = FormatUtils::BitmaskToBool( flag, 0x2 );
|
||||
fPatriarch = FormatUtils::BitmaskToBool( flag, 0x4 );
|
||||
fDeleted = FormatUtils::BitmaskToBool( flag, 0x8 );
|
||||
fOleShape = FormatUtils::BitmaskToBool( flag, 0x10 );
|
||||
fHaveMaster = FormatUtils::BitmaskToBool( flag, 0x20 );
|
||||
fFlipH = FormatUtils::BitmaskToBool( flag, 0x40 );
|
||||
fFlipV = FormatUtils::BitmaskToBool( flag, 0x80 );
|
||||
fConnector = FormatUtils::BitmaskToBool( flag, 0x100 );
|
||||
fHaveAnchor = FormatUtils::BitmaskToBool( flag, 0x200 );
|
||||
fBackground = FormatUtils::BitmaskToBool( flag, 0x400 );
|
||||
fHaveSpt = FormatUtils::BitmaskToBool( flag, 0x800 );
|
||||
|
||||
if (Instance > 0)
|
||||
shapeType = ShapeTypeFactory::NewShapeType((MSOSPT)Instance);
|
||||
else if (!fHaveSpt)
|
||||
{
|
||||
shapeType = ShapeTypeFactory::NewShapeType(msosptNotPrimitive);
|
||||
}
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new Shape( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
|
||||
inline int GetShapeID() const
|
||||
{
|
||||
return spid;
|
||||
}
|
||||
|
||||
inline ShapeType* GetShapeType() const
|
||||
{
|
||||
return shapeType;
|
||||
}
|
||||
|
||||
template<class T> bool is() const
|
||||
{
|
||||
bool isResult = false;
|
||||
|
||||
if ( shapeType != NULL )
|
||||
{
|
||||
isResult = ( typeid(*shapeType) == typeid(T) );
|
||||
}
|
||||
|
||||
return isResult;
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,144 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RegularContainer.h"
|
||||
#include "ShapeOptions.h"
|
||||
#include "Shape.h"
|
||||
#include "ClientAnchor.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class ShapeContainer: public RegularContainer
|
||||
{
|
||||
public:
|
||||
static const unsigned short TYPE_CODE_0xF004 = 0xF004;
|
||||
|
||||
int m_nIndex;
|
||||
unsigned int m_nShapeType;
|
||||
bool m_bBackground;
|
||||
bool m_bOLE;
|
||||
bool m_bOleInPicture;
|
||||
bool m_bSkip;
|
||||
|
||||
ShapeContainer():
|
||||
RegularContainer(), m_nIndex(0), m_nShapeType(0), m_bSkip(false), m_bBackground(false), m_bOLE(false), m_bOleInPicture(false)
|
||||
{
|
||||
}
|
||||
|
||||
ShapeContainer( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ) :
|
||||
m_bSkip(false), m_bBackground(false), m_bOLE(false), m_nIndex(0), m_nShapeType(0), RegularContainer( _reader, size, typeCode, version, instance )
|
||||
{
|
||||
for ( size_t i = 0; i < this->Children.size(); ++i )
|
||||
{
|
||||
ClientAnchor *clientAnchor = dynamic_cast<ClientAnchor*>( this->Children[i] );
|
||||
//if ( (clientAnchor) && (clientAnchor->value == 0x80000000))
|
||||
// m_bSkip = true; //О реорганизации территориальных органов ПФР с 01.11.2018.doc
|
||||
|
||||
Shape* sh = dynamic_cast<Shape*>( this->Children[i] );
|
||||
if (sh)
|
||||
{
|
||||
m_bBackground = sh->fBackground;
|
||||
m_bOLE = sh->fOleShape;
|
||||
|
||||
if (sh->shapeType)
|
||||
{
|
||||
m_nShapeType = sh->shapeType->GetTypeCode();
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( size_t j = 0; j < this->Children.size(); ++j)
|
||||
{
|
||||
ShapeOptions* sh_options = dynamic_cast<ShapeOptions*>( this->Children[j] );
|
||||
if (sh_options)
|
||||
{
|
||||
if (sh_options->OptionsByID.end() != sh_options->OptionsByID.find(ODRAW::pib))
|
||||
{
|
||||
m_nShapeType = msosptPictureFrame;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
virtual ~ShapeContainer()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return new ShapeContainer( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
|
||||
ODRAW::OfficeArtFOPTEPtr ExtractOption(const ODRAW::ePropertyId & prop) const
|
||||
{
|
||||
ODRAW::OfficeArtFOPTEPtr ret;
|
||||
|
||||
for ( size_t i = 0; i < this->Children.size(); ++i )
|
||||
{
|
||||
ShapeOptions* opt = dynamic_cast<ShapeOptions*>( this->Children[i] );
|
||||
|
||||
if ( opt == NULL ) continue;
|
||||
|
||||
std::map<ODRAW::ePropertyId, ODRAW::OfficeArtFOPTEPtr>::iterator pFind = opt->OptionsByID.find(prop);
|
||||
if (pFind != opt->OptionsByID.end())
|
||||
{
|
||||
ret = pFind->second;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::vector<ODRAW::OfficeArtFOPTEPtr> ExtractOptions() const
|
||||
{
|
||||
std::vector<ODRAW::OfficeArtFOPTEPtr> ret;
|
||||
|
||||
//build the list of all option entries of this shape
|
||||
for ( size_t i = 0; i < this->Children.size(); ++i )
|
||||
{
|
||||
ShapeOptions* opt = dynamic_cast<ShapeOptions*>( this->Children[i] );
|
||||
|
||||
if ( opt == NULL ) continue;
|
||||
|
||||
for ( size_t i = 0; i < opt->Options.size(); i++)
|
||||
{
|
||||
ret.push_back( opt->Options[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,353 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../IVisitable.h"
|
||||
#include "../../Common/XmlTools.h"
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
namespace ODRAW
|
||||
{
|
||||
class OfficeArtFOPTE;
|
||||
typedef boost::shared_ptr<OfficeArtFOPTE> OfficeArtFOPTEPtr;
|
||||
}
|
||||
namespace DocFileFormat
|
||||
{
|
||||
enum MSOSPT
|
||||
{
|
||||
msosptNotPrimitive = 0x00000000, // ( - ) A shape that has no preset geometry, and is drawn with custom geometry instead. For example, freeform shapes drawn by users fall into this category.
|
||||
msosptRectangle = 0x00000001, // A rectangle shape.
|
||||
msosptRoundRectangle = 0x00000002, // A rectangle shape with rounded corners.
|
||||
msosptEllipse = 0x00000003, // An ellipse shape.
|
||||
msosptDiamond = 0x00000004, // A diamond shape.
|
||||
msosptIsocelesTriangle = 0x00000005, // An isosceles triangle shape.
|
||||
msosptRightTriangle = 0x00000006, // A right triangle shape.
|
||||
msosptParallelogram = 0x00000007, // A parallelogram shape.
|
||||
msosptTrapezoid = 0x00000008, // A trapezoid shape.
|
||||
msosptHexagon = 0x00000009, // A hexagon shape.
|
||||
msosptOctagon = 0x0000000A, // An octagon shape.
|
||||
msosptPlus = 0x0000000B, // A plus shape.
|
||||
msosptStar = 0x0000000C, // A star shape.
|
||||
msosptArrow = 0x0000000D, // An arrow shape.
|
||||
msosptThickArrow = 0x0000000E, // ( - ) This value SHOULD NOT be used.
|
||||
msosptHomePlate = 0x0000000F, // An irregular pentagon shape.
|
||||
msosptCube = 0x00000010, // A cube shape.
|
||||
msosptBalloon = 0x00000011, // ( - ) A speech balloon shape.
|
||||
msosptSeal = 0x00000012, // ( - ) A seal shape.
|
||||
msosptArc = 0x00000013, // A curved arc shape.
|
||||
msosptLine = 0x00000014, // A line shape.
|
||||
msosptPlaque = 0x00000015, // A plaque shape.
|
||||
msosptCan = 0x00000016, // A cylinder shape.
|
||||
msosptDonut = 0x00000017, // A donut shape.
|
||||
msosptTextSimple = 0x00000018, // A simple text shape. Text SHOULD be drawn on a straight line.
|
||||
msosptTextOctagon = 0x00000019, // An octagonal text shape. Text SHOULD be drawn within an octagonal boundary.
|
||||
msosptTextHexagon = 0x0000001A, // A hexagonal text shape. Text SHOULD be drawn within a hexagonal boundary.
|
||||
msosptTextCurve = 0x0000001B, // A curved text shape. Text SHOULD be drawn on a curved line.
|
||||
msosptTextWave = 0x0000001C, // A wavy text shape. Text SHOULD be drawn on a wavy line.
|
||||
msosptTextRing = 0x0000001D, // A ringed text shape. Text SHOULD be drawn within a semicircular arc.
|
||||
msosptTextOnCurve = 0x0000001E, // A text shape that draws text on a curve. Text SHOULD be drawn on a curved line.
|
||||
msosptTextOnRing = 0x0000001F, // A text shape that draws text on a ring. Text SHOULD be drawn on a semicircular arc.
|
||||
msosptStraightConnector1 = 0x00000020, // A straight connector shape.
|
||||
msosptBentConnector2 = 0x00000021, // A bent connector shape.
|
||||
msosptBentConnector3 = 0x00000022, // A bent connector shape.
|
||||
msosptBentConnector4 = 0x00000023, // A bent connector shape.
|
||||
msosptBentConnector5 = 0x00000024, // A bent connector shape.
|
||||
msosptCurvedConnector2 = 0x00000025, // A curved connector shape.
|
||||
msosptCurvedConnector3 = 0x00000026, // A curved connector shape.
|
||||
msosptCurvedConnector4 = 0x00000027, // A curved connector shape.
|
||||
msosptCurvedConnector5 = 0x00000028, // A curved connector shape.
|
||||
msosptCallout1 = 0x00000029, // A callout shape.
|
||||
msosptCallout2 = 0x0000002A, // A callout shape.
|
||||
msosptCallout3 = 0x0000002B, // A callout shape.
|
||||
msosptAccentCallout1 = 0x0000002C, // A callout shape with side accent.
|
||||
msosptAccentCallout2 = 0x0000002D, // A callout shape with side accent.
|
||||
msosptAccentCallout3 = 0x0000002E, // A callout shape with side accent.
|
||||
msosptBorderCallout1 = 0x0000002F, // A callout shape with border.
|
||||
msosptBorderCallout2 = 0x00000030, // A callout shape with border.
|
||||
msosptBorderCallout3 = 0x00000031, // A callout shape with border.
|
||||
msosptAccentBorderCallout1 = 0x00000032, // A callout shape with border and side accent.
|
||||
msosptAccentBorderCallout2 = 0x00000033, // A callout shape with border and side accent.
|
||||
msosptAccentBorderCallout3 = 0x00000034, // A callout shape with border and side accent.
|
||||
msosptRibbon = 0x00000035, // A ribbon shape.
|
||||
msosptRibbon2 = 0x00000036, // A ribbon shape.
|
||||
msosptChevron = 0x00000037, // A chevron shape.
|
||||
msosptPentagon = 0x00000038, // A regular pentagon shape.
|
||||
msosptNoSmoking = 0x00000039, // A circle-slash shape.
|
||||
msosptSeal8 = 0x0000003A, // A seal shape with eight points.
|
||||
msosptSeal16 = 0x0000003B, // A seal shape with sixteen points.
|
||||
msosptSeal32 = 0x0000003C, // A seal shape with thirty-two points.
|
||||
msosptWedgeRectCallout = 0x0000003D, // A rectangular callout shape.
|
||||
msosptWedgeRRectCallout = 0x0000003E, // A rectangular callout shape with rounded corners.
|
||||
msosptWedgeEllipseCallout = 0x0000003F, // An elliptical callout shape.
|
||||
msosptWave = 0x00000040, // A wave shape.
|
||||
msosptFoldedCorner = 0x00000041, // A rectangular shape with a folded corner.
|
||||
msosptLeftArrow = 0x00000042, // An arrow shape pointing left.
|
||||
msosptDownArrow = 0x00000043, // An arrow shape pointing down.
|
||||
msosptUpArrow = 0x00000044, // An arrow shape pointing up.
|
||||
msosptLeftRightArrow = 0x00000045, // An arrow shape pointing left and right.
|
||||
msosptUpDownArrow = 0x00000046, // An arrow shape pointing down and up.
|
||||
msosptIrregularSeal1 = 0x00000047, // An irregular seal shape.
|
||||
msosptIrregularSeal2 = 0x00000048, // An irregular seal shape.
|
||||
msosptLightningBolt = 0x00000049, // A lightning bolt shape.
|
||||
msosptHeart = 0x0000004A, // A heart shape.
|
||||
msosptPictureFrame = 0x0000004B, // A frame shape.
|
||||
msosptQuadArrow = 0x0000004C, // A shape with arrows pointing down, left, right, and up.
|
||||
msosptLeftArrowCallout = 0x0000004D, // A callout shape with an arrow pointing left.
|
||||
msosptRightArrowCallout = 0x0000004E, // A callout shape with an arrow pointing right.
|
||||
msosptUpArrowCallout = 0x0000004F, // A callout shape with an arrow pointing up.
|
||||
msosptDownArrowCallout = 0x00000050, // A callout shape with an arrow pointing down.
|
||||
msosptLeftRightArrowCallout = 0x00000051, // A callout shape with arrows pointing left and right.
|
||||
msosptUpDownArrowCallout = 0x00000052, // A callout shape with arrows pointing down and up.
|
||||
msosptQuadArrowCallout = 0x00000053, // A callout shape with arrows pointing down, left, right, and up.
|
||||
msosptBevel = 0x00000054, // A beveled rectangle shape.
|
||||
msosptLeftBracket = 0x00000055, // An opening bracket shape.
|
||||
msosptRightBracket = 0x00000056, // A closing bracket shape.
|
||||
msosptLeftBrace = 0x00000057, // An opening brace shape.
|
||||
msosptRightBrace = 0x00000058, // A closing brace shape.
|
||||
msosptLeftUpArrow = 0x00000059, // An arrow shape pointing left and up.
|
||||
msosptBentUpArrow = 0x0000005A, // A bent arrow shape with its base on the left, pointing up.
|
||||
msosptBentArrow = 0x0000005B, // A curved arrow shape with its base on the bottom, pointing right.
|
||||
msosptSeal24 = 0x0000005C, // A seal shape with twenty-four points.
|
||||
msosptStripedRightArrow = 0x0000005D, // A striped arrow shape pointing right.
|
||||
msosptNotchedRightArrow = 0x0000005E, // A notched arrow shape pointing right.
|
||||
msosptBlockArc = 0x0000005F, // A semicircular arc shape.
|
||||
msosptSmileyFace = 0x00000060, // A smiling face shape.
|
||||
msosptVerticalScroll = 0x00000061, // A scroll shape opened vertically.
|
||||
msosptHorizontalScroll = 0x00000062, // A scroll shape opened horizontally.
|
||||
msosptCircularArrow = 0x00000063, // A semicircular arrow shape.
|
||||
msosptNotchedCircularArrow = 0x00000064, // This value SHOULD NOT be used.
|
||||
msosptUturnArrow = 0x00000065, // A semicircular arrow shape with a straight tail.
|
||||
msosptCurvedRightArrow = 0x00000066, // An arrow shape that curves to the right.
|
||||
msosptCurvedLeftArrow = 0x00000067, // An arrow shape that curves to the left.
|
||||
msosptCurvedUpArrow = 0x00000068, // An arrow shape that curves upward.
|
||||
msosptCurvedDownArrow = 0x00000069, // An arrow shape that curves downward.
|
||||
msosptCloudCallout = 0x0000006A, // A cloud-shaped callout.
|
||||
msosptEllipseRibbon = 0x0000006B, // An elliptical ribbon shape.
|
||||
msosptEllipseRibbon2 = 0x0000006C, // An elliptical ribbon shape.
|
||||
msosptFlowChartProcess = 0x0000006D, // A process shape for flowcharts.
|
||||
msosptFlowChartDecision = 0x0000006E, // A decision shape for flowcharts.
|
||||
msosptFlowChartInputOutput = 0x0000006F, // An input-output shape for flowcharts.
|
||||
msosptFlowChartPredefinedProcess = 0x00000070, // A predefined process shape for flowcharts.
|
||||
msosptFlowChartInternalStorage = 0x00000071, // An internal storage shape for flowcharts.
|
||||
msosptFlowChartDocument = 0x00000072, // A document shape for flowcharts.
|
||||
msosptFlowChartMultidocument = 0x00000073, // A multidocument shape for flowcharts.
|
||||
msosptFlowChartTerminator = 0x00000074, // A terminator shape for flowcharts.
|
||||
msosptFlowChartPreparation = 0x00000075, // A preparation shape for flowcharts.
|
||||
msosptFlowChartManualInput = 0x00000076, // A manual input shape for flowcharts.
|
||||
msosptFlowChartManualOperation = 0x00000077, // A manual operation shape for flowcharts.
|
||||
msosptFlowChartConnector = 0x00000078, // A connector shape for flowcharts.
|
||||
msosptFlowChartPunchedCard = 0x00000079, // A punched card shape for flowcharts.
|
||||
msosptFlowChartPunchedTape = 0x0000007A, // A punched tape shape for flowcharts.
|
||||
msosptFlowChartSummingJunction = 0x0000007B, // A summing junction shape for flowcharts.
|
||||
msosptFlowChartOr = 0x0000007C, // An OR shape for flowcharts.
|
||||
msosptFlowChartCollate = 0x0000007D, // A collation shape for flowcharts.
|
||||
msosptFlowChartSort = 0x0000007E, // A sorting shape for flowcharts.
|
||||
msosptFlowChartExtract = 0x0000007F, // An extraction shape for flowcharts.
|
||||
msosptFlowChartMerge = 0x00000080, // A merging shape for flowcharts.
|
||||
msosptFlowChartOfflineStorage = 0x00000081, // An offline storage shape for flowcharts.
|
||||
msosptFlowChartOnlineStorage = 0x00000082, // An online storage shape for flowcharts.
|
||||
msosptFlowChartMagneticTape = 0x00000083, // A magnetic tape shape for flowcharts.
|
||||
msosptFlowChartMagneticDisk = 0x00000084, // A magnetic disk shape for flowcharts.
|
||||
msosptFlowChartMagneticDrum = 0x00000085, // A magnetic drum shape for flowcharts.
|
||||
msosptFlowChartDisplay = 0x00000086, // A display shape for flowcharts.
|
||||
msosptFlowChartDelay = 0x00000087, // A delay shape for flowcharts.
|
||||
msosptTextPlainText = 0x00000088, // A plain text shape.
|
||||
msosptTextStop = 0x00000089, // An octagonal text shape.
|
||||
msosptTextTriangle = 0x0000008A, // A triangular text shape pointing upwards.
|
||||
msosptTextTriangleInverted = 0x0000008B, // A triangular text shape pointing downwards.
|
||||
msosptTextChevron = 0x0000008C, // A chevron text shape pointing upwards.
|
||||
msosptTextChevronInverted = 0x0000008D, // A chevron text shape pointing downwards.
|
||||
msosptTextRingInside = 0x0000008E, // A circular text shape, as if reading an inscription on the inside of a ring.
|
||||
msosptTextRingOutside = 0x0000008F, // A circular text shape, as if reading an inscription on the outside of a ring.
|
||||
msosptTextArchUpCurve = 0x00000090, // An upward arching curved text shape.
|
||||
msosptTextArchDownCurve = 0x00000091, // A downward arching curved text shape.
|
||||
msosptTextCircleCurve = 0x00000092, // A circular text shape.
|
||||
msosptTextButtonCurve = 0x00000093, // A text shape that resembles a button.
|
||||
msosptTextArchUpPour = 0x00000094, // An upward arching text shape.
|
||||
msosptTextArchDownPour = 0x00000095, // A downward arching text shape.
|
||||
msosptTextCirclePour = 0x00000096, // A circular text shape.
|
||||
msosptTextButtonPour = 0x00000097, // A text shape that resembles a button.
|
||||
msosptTextCurveUp = 0x00000098, // An upward curving text shape.
|
||||
msosptTextCurveDown = 0x00000099, // A downward curving text shape.
|
||||
msosptTextCascadeUp = 0x0000009A, // A cascading text shape pointed upwards.
|
||||
msosptTextCascadeDown = 0x0000009B, // A cascading text shape pointed downwards.
|
||||
msosptTextWave1 = 0x0000009C, // A wavy text shape.
|
||||
msosptTextWave2 = 0x0000009D, // A wavy text shape.
|
||||
msosptTextWave3 = 0x0000009E, // A wavy text shape.
|
||||
msosptTextWave4 = 0x0000009F, // A wavy text shape.
|
||||
msosptTextInflate = 0x000000A0, // A text shape that expands vertically in the middle.
|
||||
msosptTextDeflate = 0x000000A1, // A text shape that shrinks vertically in the middle.
|
||||
msosptTextInflateBottom = 0x000000A2, // A text shape that expands downward in the middle.
|
||||
msosptTextDeflateBottom = 0x000000A3, // A text shape that shrinks upwards in the middle.
|
||||
msosptTextInflateTop = 0x000000A4, // A text shape that expands upward in the middle.
|
||||
msosptTextDeflateTop = 0x000000A5, // A text shape that shrinks downward in the middle.
|
||||
msosptTextDeflateInflate = 0x000000A6, // A text shape where lower lines expand upward. Upper lines shrink to compensate.
|
||||
msosptTextDeflateInflateDeflate = 0x000000A7, // A text shape where lines in the center expand vertically. Upper and lower lines shrink to compensate.
|
||||
msosptTextFadeRight = 0x000000A8, // A text shape that shrinks vertically on the right side.
|
||||
msosptTextFadeLeft = 0x000000A9, // A text shape that shrinks vertically on the left side.
|
||||
msosptTextFadeUp = 0x000000AA, // A text shape that shrinks horizontally on top.
|
||||
msosptTextFadeDown = 0x000000AB, // A text shape that shrinks horizontally on bottom.
|
||||
msosptTextSlantUp = 0x000000AC, // An upward slanted text shape.
|
||||
msosptTextSlantDown = 0x000000AD, // A downward slanted text shape.
|
||||
msosptTextCanUp = 0x000000AE, // A text shape that is curved upwards as if being read on the side of a can.
|
||||
msosptTextCanDown = 0x000000AF, // A text shape that is curved downwards as if being read on the side of a can.
|
||||
msosptFlowChartAlternateProcess = 0x000000B0, // An alternate process shape for flowcharts.
|
||||
msosptFlowChartOffpageConnector = 0x000000B1, // An off page connector shape for flowcharts.
|
||||
msosptCallout90 = 0x000000B2, // A callout shape.
|
||||
msosptAccentCallout90 = 0x000000B3, // A callout shape.
|
||||
msosptBorderCallout90 = 0x000000B4, // A callout shape with border.
|
||||
msosptAccentBorderCallout90 = 0x000000B5, // A callout shape with border.
|
||||
msosptLeftRightUpArrow = 0x000000B6, // A shape with arrows pointing left, right, and up.
|
||||
msosptSun = 0x000000B7, // A sun shape.
|
||||
msosptMoon = 0x000000B8, // A moon shape.
|
||||
msosptBracketPair = 0x000000B9, // A shape enclosed in brackets.
|
||||
msosptBracePair = 0x000000BA, // A shape enclosed in braces.
|
||||
msosptSeal4 = 0x000000BB, // A seal shape with four points.
|
||||
msosptDoubleWave = 0x000000BC, // A double wave shape.
|
||||
msosptActionButtonBlank = 0x000000BD, // A blank button shape.
|
||||
msosptActionButtonHome = 0x000000BE, // A home button shape.
|
||||
msosptActionButtonHelp = 0x000000BF, // A help button shape.
|
||||
msosptActionButtonInformation = 0x000000C0, // An information button shape.
|
||||
msosptActionButtonForwardNext = 0x000000C1, // A forward or next button shape.
|
||||
msosptActionButtonBackPrevious = 0x000000C2, // A back or previous button shape.
|
||||
msosptActionButtonEnd = 0x000000C3, // An end button shape.
|
||||
msosptActionButtonBeginning = 0x000000C4, // A beginning button shape.
|
||||
msosptActionButtonReturn = 0x000000C5, // A return button shape.
|
||||
msosptActionButtonDocument = 0x000000C6, // A document button shape.
|
||||
msosptActionButtonSound = 0x000000C7, // A sound button shape.
|
||||
msosptActionButtonMovie = 0x000000C8, // A movie button shape.
|
||||
msosptHostControl = 0x000000C9, // This value SHOULD NOT be used.
|
||||
msosptTextBox = 0x000000CA // A text box shape.
|
||||
};
|
||||
|
||||
typedef enum _JoinStyle
|
||||
{
|
||||
miter,
|
||||
round,
|
||||
bevel
|
||||
} JoinStyle;
|
||||
|
||||
static const wchar_t JoinStyleMap[3][6] =
|
||||
{
|
||||
L"miter" ,
|
||||
L"round" ,
|
||||
L"bevel"
|
||||
};
|
||||
|
||||
class Handle
|
||||
{
|
||||
public:
|
||||
|
||||
Handle()
|
||||
{
|
||||
}
|
||||
|
||||
Handle(std::wstring pos, std::wstring xRange)
|
||||
{
|
||||
position = pos;
|
||||
xrange = xRange;
|
||||
}
|
||||
std::wstring position;
|
||||
std::wstring xrange;
|
||||
std::wstring switchHandle;
|
||||
std::wstring yrange;
|
||||
std::wstring polar;
|
||||
std::wstring radiusrange;
|
||||
};
|
||||
|
||||
class ShapeType: public IVisitable
|
||||
{
|
||||
public:
|
||||
|
||||
ShapeType (unsigned int typeCode) : Filled(true), Stroked(true), TypeCode(typeCode), Joins(miter), ShapeConcentricFill(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~ShapeType()
|
||||
{
|
||||
}
|
||||
|
||||
unsigned int GetTypeCode() const
|
||||
{
|
||||
return TypeCode;
|
||||
}
|
||||
|
||||
/// This string describes a sequence of commands that define the shape’s path.
|
||||
/// This string describes both the pSegmentInfo array and pVertices array in the shape’s geometry properties.
|
||||
std::wstring Path;
|
||||
/// This specifies a list of formulas whose calculated values are referenced by other properties.
|
||||
/// Each formula is listed on a separate line. Formulas are ordered, with the first formula having index 0.
|
||||
/// This section can be omitted if the shape doesn’t need any guides.
|
||||
std::list<std::wstring> Formulas;
|
||||
/// Specifies a comma-delimited list of parameters, or adjustment values,
|
||||
/// used to define values for a parameterized formula.
|
||||
/// These values represent the location of an adjust handle and may be
|
||||
/// referenced by the geometry of an adjust handle or as a parameter guide function.
|
||||
std::wstring AdjustmentValues;
|
||||
/// These values specify the location of connection points on the shape’s path.
|
||||
/// The connection points are defined by a string consisting of pairs of x and y values, delimited by commas.
|
||||
std::wstring ConnectorLocations;
|
||||
/// This section specifies the properties of each adjust handle on the shape.
|
||||
/// One adjust handle is specified per line.
|
||||
/// The properties for each handle correspond to values of the ADJH structure
|
||||
/// contained in the pAdjustHandles array in the shape’s geometry properties.
|
||||
std::list<Handle> Handles;
|
||||
/// Specifies one or more text boxes inscribed inside the shape.
|
||||
/// A textbox is defined by one or more sets of numbers specifying (in order) the left, top, right, and bottom points of the rectangle.
|
||||
/// Multiple sets are delimited by a semicolon.
|
||||
/// If omitted, the text box is the same as the geometry’s bounding box.
|
||||
std::wstring TextBoxRectangle;
|
||||
bool ShapeConcentricFill;
|
||||
/// Specifies what join style the shape has.
|
||||
/// Since there is no UI for changing the join style,
|
||||
/// all shapes of this type will always have the specified join style.
|
||||
JoinStyle Joins;
|
||||
/// Specifies the (x,y) coordinates of the limo stretch point.
|
||||
/// Some shapes that have portions that should be constrained to a fixed aspect ratio, are designed with limo-stretch to keep those portions at the fixed aspect ratio.
|
||||
std::wstring Limo;
|
||||
/// Associated with each connection site, there is a direction which specifies at what angle elbow and curved connectors should attach to it
|
||||
std::wstring ConnectorAngles;
|
||||
/// Specifies if a shape of this type is filled by default
|
||||
bool Filled;
|
||||
/// Specifies if a shape of this type is stroked by default
|
||||
bool Stroked;
|
||||
/// Speicfies the locked properties of teh shape.
|
||||
/// By default nothing is locked.
|
||||
ODRAW::OfficeArtFOPTEPtr Lock;
|
||||
|
||||
///
|
||||
std::wstring Textpath;
|
||||
|
||||
protected:
|
||||
unsigned int TypeCode;
|
||||
};
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class BevelType : public ShapeType
|
||||
{
|
||||
public:
|
||||
BevelType () : ShapeType(msosptBevel)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = (L"m,l,21600r21600,l21600,xem@0@0nfl@0@2@1@2@1@0xem,nfl@0@0em,21600nfl@0@2em21600,21600nfl@1@2em21600,nfl@1@0e");
|
||||
|
||||
Formulas.push_back((L"val #0"));
|
||||
Formulas.push_back((L"sum width 0 #0"));
|
||||
Formulas.push_back((L"sum height 0 #0"));
|
||||
Formulas.push_back((L"prod width 1 2"));
|
||||
Formulas.push_back((L"prod height 1 2"));
|
||||
Formulas.push_back((L"prod #0 1 2"));
|
||||
Formulas.push_back((L"prod #0 3 2"));
|
||||
Formulas.push_back((L"sum @1 @5 0"));
|
||||
Formulas.push_back((L"sum @2 @5 0"));
|
||||
|
||||
AdjustmentValues = (L"2700");
|
||||
ConnectorLocations = (L"0,@4;@0,@4;@3,21600;@3,@2;21600,@4;@1,@4;@3,0;@3,@0");
|
||||
TextBoxRectangle = (L"@0,@0,@1,@2");
|
||||
|
||||
Handle one;
|
||||
one.position = (L"#0,topLeft");
|
||||
one.xrange = (L"0,10800");
|
||||
Handles.push_back (one);
|
||||
|
||||
Limo = (L"10800,10800");
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,102 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class BlockArcType : public ShapeType
|
||||
{
|
||||
public:
|
||||
BlockArcType () : ShapeType(msosptBlockArc)
|
||||
{
|
||||
ShapeConcentricFill = false;
|
||||
Joins = miter;
|
||||
Path = (L"al10800,10800@0@0@2@14,10800,10800,10800,10800@3@15xe");
|
||||
|
||||
Formulas.push_back((L"val #1"));
|
||||
Formulas.push_back((L"val #0"));
|
||||
Formulas.push_back((L"sum 0 0 #0"));
|
||||
Formulas.push_back((L"sumangle #0 0 180"));
|
||||
Formulas.push_back((L"sumangle #0 0 90"));
|
||||
Formulas.push_back((L"prod @4 2 1"));
|
||||
Formulas.push_back((L"sumangle #0 90 0"));
|
||||
Formulas.push_back((L"prod @6 2 1"));
|
||||
Formulas.push_back((L"abs #0"));
|
||||
Formulas.push_back((L"sumangle @8 0 90"));
|
||||
Formulas.push_back((L"if @9 @7 @5"));
|
||||
Formulas.push_back((L"sumangle @10 0 360"));
|
||||
Formulas.push_back((L"if @10 @11 @10"));
|
||||
Formulas.push_back((L"sumangle @12 0 360"));
|
||||
Formulas.push_back((L"if @12 @13 @12"));
|
||||
Formulas.push_back((L"sum 0 0 @14"));
|
||||
Formulas.push_back((L"val 10800"));
|
||||
Formulas.push_back((L"sum 10800 0 #1"));
|
||||
Formulas.push_back((L"prod #1 1 2"));
|
||||
Formulas.push_back((L"sum @18 5400 0"));
|
||||
Formulas.push_back((L"cos @19 #0"));
|
||||
Formulas.push_back((L"sin @19 #0"));
|
||||
Formulas.push_back((L"sum @20 10800 0"));
|
||||
Formulas.push_back((L"sum @21 10800 0"));
|
||||
Formulas.push_back((L"sum 10800 0 @20"));
|
||||
Formulas.push_back((L"sum #1 10800 0"));
|
||||
Formulas.push_back((L"if @9 @17 @25"));
|
||||
Formulas.push_back((L"if @9 0 21600"));
|
||||
Formulas.push_back((L"cos 10800 #0"));
|
||||
Formulas.push_back((L"sin 10800 #0"));
|
||||
Formulas.push_back((L"sin #1 #0"));
|
||||
Formulas.push_back((L"sum @28 10800 0"));
|
||||
Formulas.push_back((L"sum @29 10800 0"));
|
||||
Formulas.push_back((L"sum @30 10800 0"));
|
||||
Formulas.push_back((L"if @4 0 @31"));
|
||||
Formulas.push_back((L"if #0 @34 0"));
|
||||
Formulas.push_back((L"if @6 @35 @31"));
|
||||
Formulas.push_back((L"sum 21600 0 @36"));
|
||||
Formulas.push_back((L"if @4 0 @33"));
|
||||
Formulas.push_back((L"if #0 @38 @32"));
|
||||
Formulas.push_back((L"if @6 @39 0"));
|
||||
Formulas.push_back((L"if @4 @32 21600"));
|
||||
Formulas.push_back((L"if @6 @41 @33"));
|
||||
|
||||
AdjustmentValues = (L"11796480,5400");
|
||||
ConnectorLocations = (L"10800,@27;@22,@23;10800,@26;@24,@23");
|
||||
TextBoxRectangle = (L"@36,@40,@37,@42");
|
||||
|
||||
Handle one;
|
||||
one.position = (L"#1,#0");
|
||||
one.polar = (L"10800,10800");
|
||||
one.radiusrange = (L"0,10800");
|
||||
Handles.push_back (one);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,72 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class CanType: public ShapeType
|
||||
{
|
||||
public:
|
||||
CanType():
|
||||
ShapeType(msosptCan)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = round;
|
||||
|
||||
this->Path = L"m10800,qx0@1l0@2qy10800,21600,21600@2l21600@1qy10800,xem0@1qy10800@0,21600@1nfe";
|
||||
|
||||
this->Formulas.push_back( L"val #0" );
|
||||
this->Formulas.push_back( L"prod #0 1 2" );
|
||||
this->Formulas.push_back( L"sum height 0 @1" );
|
||||
|
||||
this->AdjustmentValues = L"5400";
|
||||
|
||||
this->ConnectorLocations = L"10800,@0;10800,0;0,10800;10800,21600;21600,10800";
|
||||
|
||||
this->ConnectorAngles = L"270,270,180,90,0";
|
||||
|
||||
this->TextBoxRectangle = L"0,@0,21600,@2";
|
||||
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"center,#0";
|
||||
HandleOne.yrange = L"0,10800";
|
||||
this->Handles.push_back( HandleOne );
|
||||
}
|
||||
|
||||
virtual ~CanType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,79 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class CubeType: public ShapeType
|
||||
{
|
||||
public:
|
||||
CubeType():
|
||||
ShapeType(msosptCube)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m@0,l0@0,,21600@1,21600,21600@2,21600,xem0@0nfl@1@0,21600,em@1@0nfl@1,21600e";
|
||||
|
||||
this->Formulas.push_back( L"val #0");
|
||||
this->Formulas.push_back( L"sum width 0 #0");
|
||||
this->Formulas.push_back( L"sum height 0 #0");
|
||||
this->Formulas.push_back( L"mid height #0");
|
||||
this->Formulas.push_back( L"prod @1 1 2");
|
||||
this->Formulas.push_back( L"prod @2 1 2");
|
||||
this->Formulas.push_back( L"mid width #0");
|
||||
|
||||
this->AdjustmentValues = L"5400";
|
||||
|
||||
this->ConnectorLocations = L"@6,0;@4,@0;0,@3;@4,21600;@1,@3;21600,@5";
|
||||
|
||||
this->ConnectorAngles = L"270,270,180,90,0,0";
|
||||
|
||||
this->TextBoxRectangle = L"0,@0,@1,21600";
|
||||
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"topLeft,#0";
|
||||
HandleOne.switchHandle = L"true";
|
||||
HandleOne.yrange = L"0,21600";
|
||||
this->Handles.push_back( HandleOne );
|
||||
|
||||
this->Limo = L"10800,10800";
|
||||
}
|
||||
|
||||
virtual ~CubeType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,59 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class DiamondType: public ShapeType
|
||||
{
|
||||
public:
|
||||
DiamondType():
|
||||
ShapeType(msosptDiamond)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m10800,l,10800,10800,21600,21600,10800xe";
|
||||
|
||||
this->ConnectorLocations = L"Rectangle";
|
||||
|
||||
this->TextBoxRectangle = L"5400,5400,16200,16200";
|
||||
}
|
||||
|
||||
virtual ~DiamondType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,64 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class DonutType: public ShapeType
|
||||
{
|
||||
public:
|
||||
DonutType() : ShapeType(msosptDonut)
|
||||
{
|
||||
ShapeConcentricFill = false;
|
||||
Joins = round;
|
||||
Path = L"m,10800qy10800,,21600,10800,10800,21600,,10800xm@0,10800qy10800@2@1,10800,10800@0@0,10800xe";
|
||||
|
||||
Formulas.push_back(L"val #0" ) ;
|
||||
Formulas.push_back(L"sum width 0 #0" ) ;
|
||||
Formulas.push_back(L"sum height 0 #0" );
|
||||
Formulas.push_back(L"prod @0 2929 10000" );
|
||||
Formulas.push_back(L"sum width 0 @3" ) ;
|
||||
Formulas.push_back(L"sum height 0 @3" );
|
||||
|
||||
AdjustmentValues = L"5400";
|
||||
ConnectorLocations = L"10800,0;3163,3163;0,10800;3163,18437;10800,21600;18437,18437;21600,10800;18437,3163";
|
||||
TextBoxRectangle = L"3163,3163,18437,18437";
|
||||
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"#0,center";
|
||||
HandleOne.xrange = L"0,10800";
|
||||
Handles.push_back(HandleOne);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,53 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class HeartType : public ShapeType
|
||||
{
|
||||
public:
|
||||
HeartType () : ShapeType(msosptHeart)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = (L"m10860,2187c10451,1746,9529,1018,9015,730,7865,152,6685,,5415,,4175,152,2995,575,1967,1305,1150,2187,575,3222,242,4220,,5410,242,6560,575,7597l10860,21600,20995,7597v485,-1037,605,-2187,485,-3377c21115,3222,20420,2187,19632,1305,18575,575,17425,152,16275,,15005,,13735,152,12705,730v-529,288,-1451,1016,-1845,1457xe" );
|
||||
|
||||
AdjustmentValues = (L"21600" );
|
||||
ConnectorLocations = (L"10860,2187;2928,10800;10860,21600;18672,10800" );
|
||||
ConnectorAngles = (L"270,180,90,0" );
|
||||
TextBoxRectangle = (L"5037,2277,16557,13677" );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,73 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class HexagonType: public ShapeType
|
||||
{
|
||||
public:
|
||||
HexagonType():
|
||||
ShapeType(msosptHexagon)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m@0,l,10800@0,21600@1,21600,21600,10800@1,xe";
|
||||
|
||||
this->Formulas.push_back( L"val #0");
|
||||
this->Formulas.push_back( L"sum width 0 #0");
|
||||
this->Formulas.push_back( L"sum height 0 #0");
|
||||
this->Formulas.push_back( L"prod @0 2929 10000");
|
||||
this->Formulas.push_back( L"sum width 0 @3");
|
||||
this->Formulas.push_back( L"sum height 0 @3");
|
||||
|
||||
this->AdjustmentValues = L"5400";
|
||||
|
||||
this->ConnectorLocations = L"Rectangle";
|
||||
|
||||
this->TextBoxRectangle = L"1800,1800,19800,19800;3600,3600,18000,18000;6300,6300,15300,15300";
|
||||
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"#0,topLeft";
|
||||
HandleOne.xrange = L"0,10800";
|
||||
Handles.push_back( HandleOne );
|
||||
}
|
||||
|
||||
virtual ~HexagonType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class IsoscelesTriangleType: public ShapeType
|
||||
{
|
||||
public:
|
||||
IsoscelesTriangleType():
|
||||
ShapeType(msosptIsocelesTriangle)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m@0,l,21600r21600,xe" ;
|
||||
|
||||
this->Formulas.push_back( L"val #0" );
|
||||
this->Formulas.push_back( L"prod #0 1 2" );
|
||||
this->Formulas.push_back( L"sum @1 10800 0");
|
||||
|
||||
this->AdjustmentValues = L"10800" ;
|
||||
|
||||
this->ConnectorLocations = L"@0,0;@1,10800;0,21600;10800,21600;21600,21600;@2,10800";
|
||||
|
||||
this->TextBoxRectangle = L"0,10800,10800,18000;5400,10800,16200,18000;10800,10800,21600,18000;0,7200,7200,21600;7200,7200,14400,21600;14400,7200,21600,21600";
|
||||
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"#0,topLeft";
|
||||
HandleOne.xrange = L"0,21600";
|
||||
this->Handles.push_back( HandleOne );
|
||||
}
|
||||
|
||||
virtual ~IsoscelesTriangleType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,53 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class LightningBoltType : public ShapeType
|
||||
{
|
||||
public:
|
||||
LightningBoltType () : ShapeType(msosptLightningBolt)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = L"m8472,l,3890,7602,8382,5022,9705r7200,4192l10012,14915r11588,6685l14767,12877r1810,-870l11050,6797r1810,-717xe";
|
||||
|
||||
//AdjustmentValues = L"2700" );
|
||||
ConnectorLocations = L"8472,0;0,3890;5022,9705;10012,14915;21600,21600;16577,12007;12860,6080";
|
||||
ConnectorAngles = L"270,270,180,180,90,0,0";
|
||||
TextBoxRectangle = L"8757,7437,13917,14277";
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,50 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class LineType: public ShapeType
|
||||
{
|
||||
public:
|
||||
LineType():
|
||||
ShapeType(msosptLine)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~LineType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,76 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class MoonType : public ShapeType
|
||||
{
|
||||
public:
|
||||
MoonType () : ShapeType(msosptMoon)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = (L"m21600,qx,10800,21600,21600wa@0@10@6@11,21600,21600,21600,xe");
|
||||
|
||||
Formulas.push_back((L"val #0"));
|
||||
Formulas.push_back((L"sum 21600 0 #0"));
|
||||
Formulas.push_back((L"prod #0 #0 @1"));
|
||||
Formulas.push_back((L"prod 21600 21600 @1"));
|
||||
Formulas.push_back((L"prod @3 2 1"));
|
||||
Formulas.push_back((L"sum @4 0 @2"));
|
||||
Formulas.push_back((L"sum @5 0 #0"));
|
||||
Formulas.push_back((L"prod @5 1 2"));
|
||||
Formulas.push_back((L"sum @7 0 #0"));
|
||||
Formulas.push_back((L"prod @8 1 2"));
|
||||
Formulas.push_back((L"sum 10800 0 @9"));
|
||||
Formulas.push_back((L"sum @9 10800 0"));
|
||||
Formulas.push_back((L"prod #0 9598 32768"));
|
||||
Formulas.push_back((L"sum 21600 0 @12"));
|
||||
Formulas.push_back((L"ellipse @13 21600 10800"));
|
||||
Formulas.push_back((L"sum 10800 0 @14"));
|
||||
Formulas.push_back((L"sum @14 10800 0"));
|
||||
|
||||
AdjustmentValues = (L"10800");
|
||||
ConnectorLocations = (L"21600,0;0,10800;21600,21600;@0,10800");
|
||||
ConnectorAngles = (L"270,180,90,0");
|
||||
TextBoxRectangle = (L"@12,@15,@0,@16");
|
||||
|
||||
Handle one;
|
||||
one.position = (L"#0,center");
|
||||
one.xrange = (L"0,18900");
|
||||
Handles.push_back (one);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,75 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class NoSmokingType : public ShapeType
|
||||
{
|
||||
public:
|
||||
NoSmokingType () : ShapeType(msosptNoSmoking)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = (L"m,10800qy10800,,21600,10800,10800,21600,,10800xar@0@0@16@16@12@14@15@13xar@0@0@16@16@13@15@14@12xe");
|
||||
|
||||
Formulas.push_back((L"val #0" ));
|
||||
Formulas.push_back((L"prod @0 2 1" ));
|
||||
Formulas.push_back((L"sum 21600 0 @1" ));
|
||||
Formulas.push_back((L"prod @2 @2 1" ));
|
||||
Formulas.push_back((L"prod @0 @0 1" ));
|
||||
Formulas.push_back((L"sum @3 0 @4" ));
|
||||
Formulas.push_back((L"prod @5 1 8" ));
|
||||
Formulas.push_back((L"sqrt @6" ));
|
||||
Formulas.push_back((L"prod @4 1 8" ));
|
||||
Formulas.push_back((L"sqrt @8" ));
|
||||
Formulas.push_back((L"sum @7 @9 0" ));
|
||||
Formulas.push_back((L"sum @7 0 @9" ));
|
||||
Formulas.push_back((L"sum @10 10800 0" ));
|
||||
Formulas.push_back((L"sum 10800 0 @10" ));
|
||||
Formulas.push_back((L"sum @11 10800 0" ));
|
||||
Formulas.push_back((L"sum 10800 0 @11" ));
|
||||
Formulas.push_back((L"sum 21600 0 @0" ));
|
||||
|
||||
AdjustmentValues = (L"2700" );
|
||||
ConnectorLocations = (L"10800,0;3163,3163;0,10800;3163,18437;10800,21600;18437,18437;21600,10800;18437,3163" );
|
||||
TextBoxRectangle = (L"3163,3163,18437,18437" );
|
||||
|
||||
Handle one;
|
||||
one.position = L"#0,center";
|
||||
one.xrange = L"0,7200";
|
||||
Handles.push_back (one);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class OctagonType: public ShapeType
|
||||
{
|
||||
public:
|
||||
OctagonType():
|
||||
ShapeType(msosptOctagon)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m@0,l0@0,0@2@0,21600@1,21600,21600@2,21600@0@1,xe";
|
||||
|
||||
this->Formulas.push_back( L"val #0");
|
||||
this->Formulas.push_back( L"sum width 0 #0");
|
||||
this->Formulas.push_back( L"sum height 0 #0");
|
||||
this->Formulas.push_back( L"prod @0 2929 10000");
|
||||
this->Formulas.push_back( L"sum width 0 @3");
|
||||
this->Formulas.push_back( L"sum height 0 @3");
|
||||
this->Formulas.push_back( L"val width");
|
||||
this->Formulas.push_back( L"val height");
|
||||
this->Formulas.push_back( L"prod width 1 2");
|
||||
this->Formulas.push_back( L"prod height 1 2");
|
||||
|
||||
this->AdjustmentValues = L"6326";
|
||||
|
||||
this->ConnectorLocations = L"@8,0;0,@9;@8,@7;@6,@9";
|
||||
|
||||
this->TextBoxRectangle = L"0,0,21600,21600;2700,2700,18900,18900;5400,5400,16200,16200";
|
||||
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"#0,topLeft";
|
||||
HandleOne.switchHandle = L"true";
|
||||
HandleOne.xrange = L"0,10800";
|
||||
this->Handles.push_back( HandleOne );
|
||||
|
||||
this->Limo = L"10800,10800";
|
||||
}
|
||||
|
||||
virtual ~OctagonType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class ParallelogramType: public ShapeType
|
||||
{
|
||||
public:
|
||||
ParallelogramType():
|
||||
ShapeType(msosptParallelogram)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m@0,l,21600@1,21600,21600,xe";
|
||||
|
||||
this->Formulas.push_back( L"val #0");
|
||||
this->Formulas.push_back( L"sum width 0 #0");
|
||||
this->Formulas.push_back( L"prod #0 1 2");
|
||||
this->Formulas.push_back( L"sum width 0 @2");
|
||||
this->Formulas.push_back( L"mid #0 width");
|
||||
this->Formulas.push_back( L"mid @1 0");
|
||||
this->Formulas.push_back( L"prod height width #0");
|
||||
this->Formulas.push_back( L"prod @6 1 2");
|
||||
this->Formulas.push_back( L"sum height 0 @7");
|
||||
this->Formulas.push_back( L"prod width 1 2");
|
||||
this->Formulas.push_back( L"sum #0 0 @9");
|
||||
this->Formulas.push_back( L"if @10 @8 0");
|
||||
this->Formulas.push_back( L"if @10 @7 height");
|
||||
|
||||
this->AdjustmentValues = L"5400";
|
||||
|
||||
this->ConnectorLocations = L"@4,0;10800,@11;@3,10800;@5,21600;10800,@12;@2,10800";
|
||||
|
||||
this->TextBoxRectangle = L"1800,1800,19800,19800;8100,8100,13500,13500;10800,10800,10800,10800";
|
||||
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"#0,topLeft";
|
||||
HandleOne.xrange = L"0,21600";
|
||||
this->Handles.push_back( HandleOne );
|
||||
}
|
||||
|
||||
virtual ~ParallelogramType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,56 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class PentagonType : public ShapeType
|
||||
{
|
||||
public:
|
||||
PentagonType () : ShapeType(msosptPentagon)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = L"m10800,l,8259,4200,21600r13200,l21600,8259xe";
|
||||
|
||||
ConnectorLocations = L"10800,0;0,8259;4200,21600;10800,21600;17400,21600;21600,8259";
|
||||
ConnectorAngles = L"270,180,90,90,90,0" ;
|
||||
TextBoxRectangle = L"4200,5077,17400,21600";
|
||||
}
|
||||
|
||||
virtual ~PentagonType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,75 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class PlaqueType: public ShapeType
|
||||
{
|
||||
public:
|
||||
PlaqueType():
|
||||
ShapeType(msosptPlaque)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
this->Joins = miter;
|
||||
this->Path = L"m@0,qy0@0l0@2qx@0,21600l@1,21600qy21600@2l21600@0qx@1,xe";
|
||||
this->Formulas.push_back( L"val #0");
|
||||
this->Formulas.push_back( L"sum width 0 #0");
|
||||
this->Formulas.push_back( L"sum height 0 #0");
|
||||
this->Formulas.push_back( L"prod @0 7071 10000");
|
||||
this->Formulas.push_back( L"sum width 0 @3");
|
||||
this->Formulas.push_back( L"sum height 0 @3");
|
||||
this->Formulas.push_back( L"val width");
|
||||
this->Formulas.push_back( L"val height");
|
||||
this->Formulas.push_back( L"prod width 1 2");
|
||||
this->Formulas.push_back( L"prod height 1 2");
|
||||
|
||||
this->AdjustmentValues = L"3600";
|
||||
this->ConnectorLocations = L"@8,0;0,@9;@8,@7;@6,@9";
|
||||
|
||||
this->TextBoxRectangle = L"@3,@3,@4,@5";
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"#0,topLeft";
|
||||
HandleOne.switchHandle = L"true";
|
||||
HandleOne.xrange = L"0,10800";
|
||||
this->Handles.push_back( HandleOne );
|
||||
|
||||
this->Limo = L"10800,10800";
|
||||
}
|
||||
|
||||
virtual ~PlaqueType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class PlusType: public ShapeType
|
||||
{
|
||||
public:
|
||||
PlusType():
|
||||
ShapeType(msosptPlus)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m@0,l@0@0,0@0,0@2@0@2@0,21600@1,21600@1@2,21600@2,21600@0@1@0@1,xe";
|
||||
|
||||
this->Formulas.push_back( L"val #0" );
|
||||
this->Formulas.push_back( L"sum width 0 #0" );
|
||||
this->Formulas.push_back( L"sum height 0 #0" );
|
||||
this->Formulas.push_back( L"prod @0 2929 10000" );
|
||||
this->Formulas.push_back( L"sum width 0 @3" );
|
||||
this->Formulas.push_back( L"sum height 0 @3" );
|
||||
this->Formulas.push_back( L"val width" );
|
||||
this->Formulas.push_back( L"val height" );
|
||||
this->Formulas.push_back( L"prod width 1 2" );
|
||||
this->Formulas.push_back( L"prod height 1 2" );
|
||||
|
||||
this->AdjustmentValues = L"5400";
|
||||
|
||||
this->ConnectorLocations = L"@8,0;0,@9;@8,@7;@6,@9";
|
||||
|
||||
this->TextBoxRectangle = L"0,0,21600,21600;5400,5400,16200,16200;10800,10800,10800,10800";
|
||||
|
||||
Handle HandleOne;
|
||||
HandleOne.position = L"#0,topLeft";
|
||||
HandleOne.switchHandle = L"true";
|
||||
HandleOne.xrange = L"0,10800";
|
||||
this->Handles.push_back( HandleOne );
|
||||
|
||||
this->Limo = L"10800,10800";
|
||||
}
|
||||
|
||||
virtual ~PlusType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class RectangleType: public ShapeType
|
||||
{
|
||||
public:
|
||||
RectangleType():
|
||||
ShapeType(msosptRectangle)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m,l,21600r21600,l21600,xe";
|
||||
}
|
||||
|
||||
virtual ~RectangleType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,59 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class RightTriangleType: public ShapeType
|
||||
{
|
||||
public:
|
||||
RightTriangleType():
|
||||
ShapeType(msosptRightTriangle)
|
||||
{
|
||||
this->ShapeConcentricFill = true;
|
||||
|
||||
this->Joins = miter;
|
||||
|
||||
this->Path = L"m,l,21600r21600,xe";
|
||||
|
||||
this->ConnectorLocations = L"0,0;0,10800;0,21600;10800,21600;21600,21600;10800,10800";
|
||||
|
||||
this->TextBoxRectangle = L"1800,12600,12600,19800";
|
||||
}
|
||||
|
||||
virtual ~RightTriangleType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,53 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RectangleType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class RoundedRectangleType: public RectangleType
|
||||
{
|
||||
public:
|
||||
RoundedRectangleType() : RectangleType()
|
||||
{
|
||||
TypeCode = msosptRoundRectangle;
|
||||
Joins = round;
|
||||
AdjustmentValues = L"5400";
|
||||
}
|
||||
|
||||
virtual ~RoundedRectangleType()
|
||||
{
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,62 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class SmileyFaceType : public ShapeType
|
||||
{
|
||||
public:
|
||||
SmileyFaceType () : ShapeType(msosptSmileyFace)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = L"m10800,qx,10800,10800,21600,21600,10800,10800,xem7340,6445qx6215,7570,7340,8695,8465,7570,7340,6445xnfem14260,6445qx13135,7570,14260,8695,15385,7570,14260,6445xnfem4960@0c8853@3,12747@3,16640@0nfe";
|
||||
|
||||
Formulas.push_back(L"sum 33030 0 #0" );
|
||||
Formulas.push_back(L"prod #0 4 3" );
|
||||
Formulas.push_back(L"prod @0 1 3" );
|
||||
Formulas.push_back(L"sum @1 0 @2" );
|
||||
|
||||
AdjustmentValues = L"17520";
|
||||
ConnectorLocations = L"10800,0;3163,3163;0,10800;3163,18437;10800,21600;18437,18437;21600,10800;18437,3163" ;
|
||||
TextBoxRectangle = L"3163,3163,18437,18437" ;
|
||||
|
||||
Handle one;
|
||||
one.position = L"center,#0";
|
||||
one.xrange = L"15510,17520";
|
||||
Handles.push_back (one);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,79 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class SunType : public ShapeType
|
||||
{
|
||||
public:
|
||||
SunType () : ShapeType(msosptSun)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = L"m21600,10800l@15@14@15@18xem18436,3163l@17@12@16@13xem10800,l@14@10@18@10xem3163,3163l@12@13@13@12xem,10800l@10@18@10@14xem3163,18436l@13@16@12@17xem10800,21600l@18@15@14@15xem18436,18436l@16@17@17@16xem10800@19qx@19,10800,10800@20@20,10800,10800@19xe";
|
||||
|
||||
Formulas.push_back(L"sum 10800 0 #0");
|
||||
Formulas.push_back(L"prod @0 30274 32768");
|
||||
Formulas.push_back(L"prod @0 12540 32768");
|
||||
Formulas.push_back(L"sum @1 10800 0");
|
||||
Formulas.push_back(L"sum @2 10800 0");
|
||||
Formulas.push_back(L"sum 10800 0 @1");
|
||||
Formulas.push_back(L"sum 10800 0 @2");
|
||||
Formulas.push_back(L"prod @0 23170 32768");
|
||||
Formulas.push_back(L"sum @7 10800 0");
|
||||
Formulas.push_back(L"sum 10800 0 @7");
|
||||
Formulas.push_back(L"prod @5 3 4");
|
||||
Formulas.push_back(L"prod @6 3 4");
|
||||
Formulas.push_back(L"sum @10 791 0");
|
||||
Formulas.push_back(L"sum @11 791 0");
|
||||
Formulas.push_back(L"sum @11 2700 0");
|
||||
Formulas.push_back(L"sum 21600 0 @10");
|
||||
Formulas.push_back(L"sum 21600 0 @12");
|
||||
Formulas.push_back(L"sum 21600 0 @13");
|
||||
Formulas.push_back(L"sum 21600 0 @14");
|
||||
Formulas.push_back(L"val #0");
|
||||
Formulas.push_back(L"sum 21600 0 #0");
|
||||
|
||||
AdjustmentValues = L"5400";
|
||||
ConnectorLocations = L"0,@4;@0,@4;@3,21600;@3,@2;21600,@4;@1,@4;@3,0;@3,@0";
|
||||
TextBoxRectangle = L"@9,@9,@8,@8";
|
||||
|
||||
Handle one;
|
||||
one.position = L"#0,center";
|
||||
one.xrange = L"2700,10125";
|
||||
Handles.push_back (one);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,54 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class TextboxType: public ShapeType
|
||||
{
|
||||
public:
|
||||
TextboxType () : ShapeType(msosptTextBox)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
Path = L"m,l,21600r21600,l21600,xe";
|
||||
|
||||
}
|
||||
|
||||
virtual ~TextboxType()
|
||||
{
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,78 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../ShapeType.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class TrapezoidType : public ShapeType
|
||||
{
|
||||
public:
|
||||
TrapezoidType () : ShapeType(msosptTrapezoid)
|
||||
{
|
||||
ShapeConcentricFill = true;
|
||||
Joins = miter;
|
||||
|
||||
Path = L"m,l@0,21600@1,21600,21600,xe";
|
||||
|
||||
Formulas.push_back( L"val #0");
|
||||
Formulas.push_back( L"sum width 0 #0");
|
||||
Formulas.push_back( L"prod #0 1 2");
|
||||
Formulas.push_back( L"sum width 0 @2");
|
||||
Formulas.push_back( L"mid #0 width");
|
||||
Formulas.push_back( L"mid @1 0");
|
||||
Formulas.push_back( L"prod height width #0");
|
||||
Formulas.push_back( L"prod @6 1 2");
|
||||
Formulas.push_back( L"sum height 0 @7");
|
||||
Formulas.push_back( L"prod width 1 2");
|
||||
Formulas.push_back( L"sum #0 0 @9");
|
||||
Formulas.push_back( L"if @10 @8 0");
|
||||
Formulas.push_back( L"if @10 @7 height");
|
||||
|
||||
AdjustmentValues = L"5400";
|
||||
ConnectorLocations = L"@3,10800;10800,21600;@2,10800;10800,0";
|
||||
TextBoxRectangle = L"1800,1800,19800,19800;4500,4500,17100,17100;7200,7200,14400,14400";
|
||||
|
||||
Handle one;
|
||||
|
||||
one.position = L"#0,bottomRight";
|
||||
one.xrange = L"0,10800";
|
||||
|
||||
Handles.push_back (one);
|
||||
}
|
||||
|
||||
virtual ~TrapezoidType()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,72 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "Record.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class UnknownRecord: public Record
|
||||
{
|
||||
public:
|
||||
unsigned char* _bytes;
|
||||
unsigned int _size;
|
||||
|
||||
UnknownRecord():
|
||||
Record(), _bytes(NULL), _size(0)
|
||||
{
|
||||
}
|
||||
|
||||
UnknownRecord( IBinaryReader* _reader, unsigned int size, unsigned int typeCode, unsigned int version, unsigned int instance ):
|
||||
Record( _reader, size, typeCode, version, instance ), _bytes(NULL), _size(0)
|
||||
{
|
||||
this->_size = (unsigned int)( this->Reader->GetSize() - this->Reader->GetPosition() );
|
||||
|
||||
if ( this->_size >= size )
|
||||
{
|
||||
this->_size = size;
|
||||
}
|
||||
|
||||
this->_bytes = this->Reader->ReadBytes( this->_size, true );
|
||||
}
|
||||
|
||||
virtual ~UnknownRecord()
|
||||
{
|
||||
RELEASEARRAYOBJECTS( this->_bytes );
|
||||
}
|
||||
|
||||
virtual Record* NewObject( IBinaryReader* _reader, unsigned int bodySize, unsigned int typeCode, unsigned int version, unsigned int instance )
|
||||
{
|
||||
return NULL;//new UnknownRecord( _reader, bodySize, typeCode, version, instance );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,404 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "OleObject.h"
|
||||
#include "WordDocument.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
OleObject::OleObject( const CharacterPropertyExceptions* chpx, WordDocument* document)
|
||||
: bLinked(false), updateMode(NoLink), isEquation(false), isEmbedded (false), oleStorage(NULL)
|
||||
{
|
||||
if (!document) return;
|
||||
if (!chpx) return;
|
||||
|
||||
nWordVersion = document->nWordVersion;
|
||||
|
||||
ObjectId = getOleEntryName( chpx );
|
||||
|
||||
StructuredStorageReader* docStorage = document->GetStorage();
|
||||
|
||||
oleStorage = docStorage->GetStorage();
|
||||
if (!oleStorage) return;
|
||||
|
||||
std::wstring sObjectId( ObjectId.begin(), ObjectId.end() );
|
||||
|
||||
std::wstring name = L"ObjectPool/" + sObjectId + L"/";
|
||||
|
||||
bool bOle = processOleStream( name + L"Ole" );
|
||||
bool bCompObj = bLinked ? processLinkInfoStream( name + L"LinkInfo" ):
|
||||
processCompObjStream( name + L"CompObj" );
|
||||
if (bOle || bCompObj)
|
||||
{
|
||||
processPICStream( name + L"PIC" );
|
||||
processMETAStream( name + L"META" );
|
||||
processEquationNativeStream( name + L"Equation Native" );
|
||||
}
|
||||
else if (nWordVersion > 0)
|
||||
{
|
||||
int fc = pictureDesciptor.GetFcPic( chpx );
|
||||
|
||||
if ( fc >= 0 )
|
||||
{
|
||||
POLE::Stream* pOleStream = document->GetDocumentStream();
|
||||
pictureDesciptor.parse( pOleStream, fc, 0xffffff, nWordVersion);
|
||||
|
||||
VirtualStreamReader reader(pOleStream, pOleStream->tell(), nWordVersion);
|
||||
|
||||
int pos = reader.GetPosition();
|
||||
|
||||
short a1 = reader.ReadInt16();
|
||||
short a2 = reader.ReadInt16();
|
||||
short a3 = reader.ReadInt16();
|
||||
|
||||
int lcb = reader.ReadInt32();
|
||||
//short a4 = reader.ReadInt16();
|
||||
//short a5 = reader.ReadInt16();
|
||||
//short a6 = reader.ReadInt16();
|
||||
//short a7 = reader.ReadInt16();
|
||||
int lcb1 = reader.ReadInt32();
|
||||
|
||||
ClipboardFormat = Program = reader.ReadLengthPrefixedAnsiString(0xffff);
|
||||
|
||||
short a10 = reader.ReadInt16();
|
||||
short a11 = reader.ReadInt16();
|
||||
short a12 = reader.ReadInt16();
|
||||
short a14 = reader.ReadInt16();
|
||||
|
||||
//int lcb = 5000;//reader.ReadInt32();
|
||||
|
||||
int szHeader = reader.GetPosition() - pos;
|
||||
int szData = reader.ReadInt32();
|
||||
if (szData > lcb)
|
||||
{
|
||||
szData = szData >> 16;
|
||||
}
|
||||
unsigned char* bytes = reader.ReadBytes( szData, true );
|
||||
if (bytes && szData < 0xffff)
|
||||
{
|
||||
emeddedData = std::string((char*)bytes, szData);
|
||||
delete []bytes;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool OleObject::processLinkInfoStream( const std::wstring& linkStream )
|
||||
{
|
||||
try
|
||||
{
|
||||
POLE::Stream* pLinkStream = NULL;
|
||||
HRESULT res = S_OK;
|
||||
|
||||
pLinkStream = new POLE::Stream(oleStorage, linkStream);
|
||||
|
||||
if ( pLinkStream )
|
||||
{
|
||||
VirtualStreamReader reader( pLinkStream, 0, false);
|
||||
processLinkInfoStream(reader);
|
||||
|
||||
delete pLinkStream;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void OleObject::processEquationNativeStream( const std::wstring& eqStream )
|
||||
{
|
||||
try
|
||||
{
|
||||
POLE::Stream* pCompStream = NULL;
|
||||
HRESULT res = S_OK;
|
||||
|
||||
pCompStream = new POLE::Stream(oleStorage, eqStream);
|
||||
|
||||
if ( pCompStream )
|
||||
{
|
||||
VirtualStreamReader reader( pCompStream, 0, false);
|
||||
|
||||
int sz = reader.GetSize();
|
||||
|
||||
unsigned char *Buffer = reader.ReadBytes( sz, true );
|
||||
|
||||
if (Buffer && sz > 0)
|
||||
{
|
||||
isEquation = true;
|
||||
delete []Buffer;
|
||||
}
|
||||
|
||||
delete pCompStream;
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
}
|
||||
void OleObject::processMETAStream( const std::wstring& metaStream )
|
||||
{
|
||||
try
|
||||
{
|
||||
HRESULT res = S_OK;
|
||||
|
||||
POLE::Stream* pMETAStream = new POLE::Stream(oleStorage, metaStream);
|
||||
|
||||
if ( pMETAStream )
|
||||
{
|
||||
pictureDesciptor.Type = wmf;
|
||||
VirtualStreamReader reader( pMETAStream, 0, false);
|
||||
|
||||
pictureDesciptor.mfp.mm = reader.ReadUInt16();
|
||||
pictureDesciptor.mfp.xExt = reader.ReadUInt16();
|
||||
pictureDesciptor.mfp.yExt = reader.ReadUInt16();
|
||||
pictureDesciptor.mfp.hMf = reader.ReadUInt16();
|
||||
|
||||
pictureDesciptor.embeddedDataSize = reader.GetSize() - 8;
|
||||
pictureDesciptor.embeddedData = reader.ReadBytes( pictureDesciptor.embeddedDataSize, true );
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
}
|
||||
void OleObject::processPICStream( const std::wstring& picStream )
|
||||
{
|
||||
try
|
||||
{
|
||||
HRESULT res = S_OK;
|
||||
|
||||
POLE::Stream* pPICStream = new POLE::Stream(oleStorage, picStream);
|
||||
|
||||
if ( pPICStream )
|
||||
{
|
||||
VirtualStreamReader reader( pPICStream, 0, false);
|
||||
|
||||
int sz = reader.GetSize();
|
||||
|
||||
int cbHeader = reader.ReadUInt32();
|
||||
|
||||
unsigned char* bytes = NULL;
|
||||
|
||||
pictureDesciptor.mfp.mm = reader.ReadInt16();
|
||||
pictureDesciptor.mfp.xExt = reader.ReadInt16();
|
||||
pictureDesciptor.mfp.yExt = reader.ReadInt16();
|
||||
pictureDesciptor.mfp.hMf = reader.ReadInt16();
|
||||
|
||||
int x = reader.ReadUInt32();
|
||||
int y = reader.ReadUInt32();
|
||||
|
||||
pictureDesciptor.dxaGoal = reader.ReadUInt32();
|
||||
pictureDesciptor.dyaGoal = reader.ReadUInt32();
|
||||
|
||||
unsigned char* data = reader.ReadBytes(16, true);
|
||||
delete []data;
|
||||
|
||||
pictureDesciptor.mx = reader.ReadUInt32();
|
||||
pictureDesciptor.my = reader.ReadUInt32();
|
||||
|
||||
pictureDesciptor.dxaCropLeft = reader.ReadInt32();
|
||||
pictureDesciptor.dyaCropTop = reader.ReadInt32();
|
||||
pictureDesciptor.dxaCropRight = reader.ReadInt32();
|
||||
pictureDesciptor.dyaCropBottom = reader.ReadInt32();
|
||||
|
||||
// borders
|
||||
int bytesCount = (nWordVersion > 0) ? 2 : 4;
|
||||
|
||||
bytes = reader.ReadBytes( bytesCount, true );
|
||||
pictureDesciptor.brcTop = new BorderCode( bytes, bytesCount );
|
||||
RELEASEARRAYOBJECTS( bytes );
|
||||
|
||||
bytes = reader.ReadBytes( bytesCount, true );
|
||||
pictureDesciptor.brcLeft = new BorderCode( bytes, bytesCount );
|
||||
RELEASEARRAYOBJECTS( bytes );
|
||||
|
||||
bytes = reader.ReadBytes( bytesCount, true );
|
||||
pictureDesciptor.brcBottom = new BorderCode( bytes, bytesCount );
|
||||
RELEASEARRAYOBJECTS( bytes );
|
||||
|
||||
bytes = reader.ReadBytes( bytesCount, true );
|
||||
pictureDesciptor.brcRight = new BorderCode( bytes, bytesCount );
|
||||
RELEASEARRAYOBJECTS( bytes );
|
||||
|
||||
int etc = sz - reader.GetPosition();
|
||||
unsigned char* data2 = reader.ReadBytes(etc, true);
|
||||
delete []data2;
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
bool OleObject::processCompObjStream( const std::wstring& compStream )
|
||||
{
|
||||
try
|
||||
{
|
||||
HRESULT res = S_OK;
|
||||
|
||||
POLE::Stream* pCompStream = new POLE::Stream(oleStorage, compStream);
|
||||
|
||||
if ( (pCompStream) && (!pCompStream->fail()) )
|
||||
{
|
||||
VirtualStreamReader reader( pCompStream, 0, false);
|
||||
processCompObjStream(reader);
|
||||
|
||||
delete pCompStream;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool OleObject::processOleStream( const std::wstring& oleStreamName )
|
||||
{
|
||||
try
|
||||
{
|
||||
POLE::Stream* pOleStream;
|
||||
HRESULT res = S_OK;
|
||||
|
||||
pOleStream = new POLE::Stream(oleStorage, oleStreamName);
|
||||
|
||||
if ( (pOleStream) && (!pOleStream->fail()))
|
||||
{
|
||||
VirtualStreamReader reader( pOleStream, 0, false );
|
||||
processOleStream(reader);
|
||||
|
||||
delete pOleStream;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void OleObject::processOleStream( VirtualStreamReader& reader )
|
||||
{
|
||||
//skip version
|
||||
reader.ReadBytes( 4, false );
|
||||
|
||||
//read the embedded/linked flag
|
||||
int flag = reader.ReadInt32();
|
||||
bLinked = FormatUtils::BitmaskToBool( flag, 0x1 );
|
||||
|
||||
//Link update option
|
||||
this->updateMode = (LinkUpdateOption)reader.ReadInt32();
|
||||
|
||||
switch ( this->updateMode )
|
||||
{
|
||||
case NoLink: UpdateMode = L"NoLink"; break;
|
||||
case Always: UpdateMode = L"Always"; break;
|
||||
case OnCall: UpdateMode = L"OnCall"; break;
|
||||
|
||||
}
|
||||
}
|
||||
void OleObject::processLinkInfoStream( VirtualStreamReader& reader )
|
||||
{
|
||||
short cch = reader.ReadInt16();
|
||||
unsigned char* str = reader.ReadBytes( cch, true );
|
||||
FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &this->Link, str, cch, ENCODING_WINDOWS_1250 );
|
||||
RELEASEARRAYOBJECTS( str );
|
||||
|
||||
//skip the terminating zero of the ANSI string
|
||||
//even if the characters are ANSI chars, the terminating zero has 2 bytes
|
||||
reader.ReadBytes( 2, false );
|
||||
|
||||
//skip the next 4 bytes (flags?)
|
||||
reader.ReadBytes( 4, false );
|
||||
|
||||
//Read the Unicode version
|
||||
this->Link.clear();
|
||||
|
||||
cch = reader.ReadInt16();
|
||||
str = reader.ReadBytes( ( cch * 2 ), true );
|
||||
FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &this->Link, str, ( cch * 2 ), ENCODING_UTF16 );
|
||||
RELEASEARRAYOBJECTS( str );
|
||||
|
||||
//skip the terminating zero of the Unicode string
|
||||
reader.ReadBytes( 2, false );
|
||||
}
|
||||
void OleObject::processCompObjStream( VirtualStreamReader& reader )
|
||||
{
|
||||
//skip the CompObjHeader
|
||||
reader.ReadBytes( 28, false );
|
||||
|
||||
unsigned int sz_obj = reader.GetSize() - reader.GetPosition();
|
||||
|
||||
if (sz_obj > 4)
|
||||
{
|
||||
UserType = reader.ReadLengthPrefixedAnsiString(sz_obj);
|
||||
|
||||
sz_obj = reader.GetSize() - reader.GetPosition();
|
||||
if (sz_obj > 4)
|
||||
ClipboardFormat = reader.ReadLengthPrefixedAnsiString(sz_obj);
|
||||
|
||||
sz_obj = reader.GetSize() - reader.GetPosition();
|
||||
if (sz_obj > 4)
|
||||
Program = reader.ReadLengthPrefixedAnsiString(sz_obj);
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring OleObject::getOleEntryName( const CharacterPropertyExceptions* chpx )
|
||||
{
|
||||
std::wstring ret;
|
||||
|
||||
if ( chpx != NULL )
|
||||
{
|
||||
for ( std::list<SinglePropertyModifier>::const_iterator iter = chpx->grpprl->begin(); iter != chpx->grpprl->end(); iter++ )
|
||||
{
|
||||
if ( iter->OpCode == sprmCPicLocation || iter->OpCode == sprmOldCPicLocation)
|
||||
{
|
||||
ret = ( L"_" + FormatUtils::IntToWideString( FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize ) ) );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -1,90 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IVisitable.h"
|
||||
#include "PictureDescriptor.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class WordDocument;
|
||||
class OleObject: public IVisitable
|
||||
{
|
||||
friend class OleObjectMapping;
|
||||
|
||||
public:
|
||||
enum LinkUpdateOption
|
||||
{
|
||||
NoLink = 0,
|
||||
Always = 1,
|
||||
OnCall = 3
|
||||
};
|
||||
int nWordVersion;
|
||||
bool bLinked; // The the value is true, the object is a linked object
|
||||
|
||||
std::wstring ObjectId;
|
||||
std::wstring ClassId;
|
||||
|
||||
std::wstring UserType; // Display name of the linked object or embedded object.
|
||||
std::wstring ClipboardFormat;
|
||||
std::wstring Link;
|
||||
std::wstring Program;
|
||||
LinkUpdateOption updateMode;
|
||||
std::wstring UpdateMode;
|
||||
|
||||
bool isEquation;
|
||||
bool isEmbedded;
|
||||
|
||||
std::string emeddedData;
|
||||
|
||||
PictureDescriptor pictureDesciptor;
|
||||
|
||||
OleObject( const CharacterPropertyExceptions* chpx, WordDocument* document);
|
||||
virtual ~OleObject() {}
|
||||
|
||||
private:
|
||||
POLE::Storage *oleStorage;
|
||||
|
||||
bool processLinkInfoStream ( const std::wstring& linkStream );
|
||||
void processEquationNativeStream( const std::wstring& eqStream );
|
||||
void processPICStream ( const std::wstring& picStream );
|
||||
void processMETAStream ( const std::wstring& metaStream );
|
||||
bool processCompObjStream ( const std::wstring& compStream );
|
||||
bool processOleStream ( const std::wstring& oleStreamName );
|
||||
|
||||
void processOleStream ( VirtualStreamReader& reader );
|
||||
void processLinkInfoStream ( VirtualStreamReader& reader );
|
||||
void processCompObjStream ( VirtualStreamReader& reader );
|
||||
|
||||
std::wstring getOleEntryName ( const CharacterPropertyExceptions* chpx );
|
||||
};
|
||||
}
|
||||
@ -1,190 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ConversionContext.h"
|
||||
#include "PictureDescriptor.h"
|
||||
#include "OleObject.h"
|
||||
|
||||
#include "AbstractOpenXmlMapping.h"
|
||||
#include "IMapping.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class OleObjectMapping: public AbstractOpenXmlMapping, public IMapping
|
||||
{
|
||||
public:
|
||||
OleObjectMapping(XMLTools::CStringXmlWriter* writer, ConversionContext* context, PictureDescriptor* pict, IMapping* caller, const std::wstring& shapeId)
|
||||
:
|
||||
AbstractOpenXmlMapping(writer), m_context(NULL), _pict(NULL), _caller(NULL), _shapeId(shapeId)
|
||||
{
|
||||
m_context = context;
|
||||
_pict = pict;
|
||||
_caller = caller;
|
||||
}
|
||||
|
||||
virtual void Apply(IVisitable* visited)
|
||||
{
|
||||
OleObject* ole = static_cast<OleObject*>(visited);
|
||||
|
||||
if ( ole != NULL )
|
||||
{
|
||||
if (ole->isEmbedded)
|
||||
{
|
||||
if (ole->isEquation) ole->ClipboardFormat = L"Equation";
|
||||
else ole->ClipboardFormat = L"MSWordDocx";
|
||||
|
||||
ole->Program = L"Word.Document";
|
||||
}
|
||||
m_pXmlWriter->WriteNodeBegin( L"o:OLEObject", TRUE );
|
||||
|
||||
int relID = -1;
|
||||
|
||||
if ( ole->bLinked )
|
||||
{
|
||||
relID = m_context->_docx->RegisterExternalOLEObject(_caller, ole->ClipboardFormat, ole->Link);
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"Type", L"Link" );
|
||||
m_pXmlWriter->WriteAttribute( L"UpdateMode", ole->UpdateMode);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ole->isEmbedded)
|
||||
relID = m_context->_docx->RegisterPackage(_caller, ole->ClipboardFormat);
|
||||
else
|
||||
relID = m_context->_docx->RegisterOLEObject(_caller, ole->ClipboardFormat);
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"Type", L"Embed" );
|
||||
|
||||
copyEmbeddedObject( ole );
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteAttribute( L"ProgID", ole->Program);
|
||||
m_pXmlWriter->WriteAttribute( L"ShapeID", _shapeId);
|
||||
m_pXmlWriter->WriteAttribute( L"DrawAspect", L"Content" );
|
||||
m_pXmlWriter->WriteAttribute( L"ObjectID", ole->ObjectId);
|
||||
m_pXmlWriter->WriteAttribute( L"r:id", L"rId"+ FormatUtils::IntToWideString( relID ) );
|
||||
m_pXmlWriter->WriteNodeEnd( L"", TRUE, FALSE );
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"o:OLEObject" );
|
||||
}
|
||||
}
|
||||
|
||||
static std::wstring GetTargetExt(const std::wstring& objectType)
|
||||
{
|
||||
std::wstring objectExt = L".bin";
|
||||
|
||||
if ( objectType == L"Biff8" )
|
||||
{
|
||||
objectExt = L".xls";
|
||||
}
|
||||
else if ( objectType == L"MSWordDoc" )
|
||||
{
|
||||
objectExt = L".doc";
|
||||
}
|
||||
else if ( objectType == L"MSPresentation" )
|
||||
{
|
||||
objectExt = L".ppt";
|
||||
}
|
||||
else if ( objectType == L"MSWordDocx" )
|
||||
{
|
||||
objectExt = L".docx";
|
||||
}
|
||||
else if ( objectType == L"Equation" )
|
||||
{
|
||||
objectExt = L".xml";
|
||||
}
|
||||
return objectExt;
|
||||
}
|
||||
|
||||
static std::wstring GetContentType(const std::wstring& objectType)
|
||||
{
|
||||
std::wstring objectContentType = OpenXmlContentTypes::OleObject;
|
||||
|
||||
if ( objectType == L"Biff8" )
|
||||
{
|
||||
objectContentType = OpenXmlContentTypes::MSExcel;
|
||||
}
|
||||
else if ( objectType == L"MSWordDoc" )
|
||||
{
|
||||
objectContentType = OpenXmlContentTypes::MSWord;
|
||||
}
|
||||
else if ( objectType == L"MSPresentation" )
|
||||
{
|
||||
objectContentType = OpenXmlContentTypes::MSPowerpoint;
|
||||
}
|
||||
else if ( objectType == L"MSWordDocx" )
|
||||
{
|
||||
objectContentType = OpenXmlContentTypes::MSWordDocx;
|
||||
}
|
||||
else if ( objectType == L"Equation" )
|
||||
{
|
||||
objectContentType = OpenXmlContentTypes::Xml;
|
||||
}
|
||||
return objectContentType;
|
||||
}
|
||||
|
||||
private:
|
||||
inline void copyEmbeddedObject( const OleObject* ole )
|
||||
{
|
||||
if ( ole == NULL ) return;
|
||||
|
||||
std::wstring clsid;
|
||||
std::wstring exelChart = L"Excel.Chart";
|
||||
|
||||
if ( std::search( ole->Program.begin(), ole->Program.end(), exelChart.begin(), exelChart.end() ) == ole->Program.end() )
|
||||
{
|
||||
clsid = ole->ClassId;
|
||||
}
|
||||
OleObjectFileStructure object_descr(OleObjectMapping::GetTargetExt( ole->ClipboardFormat ), ole->ObjectId, clsid);
|
||||
|
||||
if (ole->nWordVersion == 2)
|
||||
{
|
||||
object_descr.clsid = ole->ClipboardFormat;
|
||||
object_descr.bNativeOnly = true;
|
||||
}
|
||||
if (ole->isEquation || ole->isEmbedded || ole->nWordVersion == 2)
|
||||
{
|
||||
object_descr.data = ole->emeddedData;
|
||||
}
|
||||
|
||||
m_context->_docx->OleObjectsList.push_back(object_descr);
|
||||
}
|
||||
|
||||
|
||||
ConversionContext* m_context;
|
||||
|
||||
PictureDescriptor* _pict;
|
||||
std::wstring _shapeId;
|
||||
IMapping* _caller;
|
||||
};
|
||||
}
|
||||
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../Common/FormatUtils.h"
|
||||
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class PieceDescriptor
|
||||
{
|
||||
friend class PieceTable;
|
||||
public:
|
||||
/// Parses the bytes to retrieve a PieceDescriptor
|
||||
PieceDescriptor(unsigned char *bytes, unsigned int size, int code_page_) : fc(0), code_page(code_page_), cpStart(0), cpEnd(0)
|
||||
{
|
||||
if (8 == size)
|
||||
{
|
||||
//get the fc value
|
||||
unsigned int fcValue = FormatUtils::BytesToUInt32(bytes, 2, size);
|
||||
|
||||
//get the flag
|
||||
bool flag = FormatUtils::BitmaskToBool((int)fcValue, 0x40000000);
|
||||
|
||||
//delete the flag
|
||||
fcValue = fcValue & 0xBFFFFFFF;
|
||||
|
||||
//find encoding and offset
|
||||
if (flag)
|
||||
{
|
||||
code_page = ENCODING_WINDOWS_1250;
|
||||
this->fc = (unsigned int)( fcValue / 2 );
|
||||
}
|
||||
else
|
||||
{
|
||||
code_page = (code_page == ENCODING_WINDOWS_1250 ? ENCODING_UTF16 : code_page_);
|
||||
this->fc = fcValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
/// File offset of beginning of piece.
|
||||
/// This is relative to the beginning of the WordDocument stream.
|
||||
unsigned int fc;
|
||||
/// The encoding of the piece
|
||||
int code_page;
|
||||
int cpStart;
|
||||
int cpEnd;
|
||||
};
|
||||
}
|
||||
@ -1,94 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../../DesktopEditor/common/Types.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
typedef enum _ByteOrder
|
||||
{
|
||||
RedFirst,
|
||||
RedLast
|
||||
} ByteOrder;
|
||||
|
||||
class RGBColor
|
||||
{
|
||||
private:
|
||||
unsigned char Red;
|
||||
unsigned char Green;
|
||||
unsigned char Blue;
|
||||
unsigned char Alpha;
|
||||
|
||||
public:
|
||||
std::wstring SixDigitHexCode;
|
||||
std::wstring EightDigitHexCode;
|
||||
|
||||
RGBColor( int cv, ByteOrder order )
|
||||
{
|
||||
unsigned char* bytes = FormatUtils::GetBytes( cv );
|
||||
|
||||
std::wstringstream rgbColor6, rgbColor8;
|
||||
|
||||
if( order == RedFirst )
|
||||
{
|
||||
this->Red = bytes[0];
|
||||
this->Green = bytes[1];
|
||||
this->Blue = bytes[2];
|
||||
this->Alpha = bytes[3];
|
||||
|
||||
rgbColor6 << boost::wformat( L"%02x%02x%02x" ) % /*R*/this->Red % /*G*/this->Green % /*B*/this->Blue;
|
||||
rgbColor8 << boost::wformat( L"%02x%02x%02x%02x" ) % /*R*/this->Red % /*G*/this->Green % /*B*/this->Blue % /*A*/this->Alpha;
|
||||
|
||||
SixDigitHexCode = rgbColor6.str();
|
||||
EightDigitHexCode = rgbColor8.str();
|
||||
}
|
||||
else if ( order == RedLast )
|
||||
{
|
||||
this->Red = bytes[2];
|
||||
this->Green = bytes[1];
|
||||
this->Blue = bytes[0];
|
||||
this->Alpha = bytes[3];
|
||||
|
||||
rgbColor6 << boost::wformat( L"%02x%02x%02x" ) % /*R*/this->Red % /*G*/this->Green % /*B*/this->Blue;
|
||||
rgbColor8 << boost::wformat( L"%02x%02x%02x%02x" ) % /*R*/this->Red % /*G*/this->Green % /*B*/this->Blue % /*A*/this->Alpha;
|
||||
|
||||
SixDigitHexCode = rgbColor6.str();
|
||||
EightDigitHexCode = rgbColor8.str();
|
||||
}
|
||||
|
||||
RELEASEARRAYOBJECTS( bytes );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,87 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "VirtualStreamReader.h"
|
||||
#include "ByteStructure.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class SectionDescriptor: public ByteStructure
|
||||
{
|
||||
friend class WordDocument;
|
||||
|
||||
private:
|
||||
short fn;
|
||||
short fnMpr;
|
||||
int fcMpr;
|
||||
/// A signed integer that specifies the position in the WordDocument Stream where a Sepx structure is located.
|
||||
int fcSepx;
|
||||
|
||||
static const int STRUCTURE_SIZE = 12;
|
||||
static const int STRUCTURE_SIZE_OLD = 6;
|
||||
public:
|
||||
static const int GetSize(int nWordVersion)
|
||||
{
|
||||
return (nWordVersion == 2) ? STRUCTURE_SIZE_OLD : STRUCTURE_SIZE;
|
||||
}
|
||||
SectionDescriptor() : fn(0), fnMpr(0), fcMpr(0), fcSepx(0)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~SectionDescriptor()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
|
||||
{
|
||||
SectionDescriptor *newObject = new SectionDescriptor();
|
||||
|
||||
if (reader->nWordVersion == 2)
|
||||
{
|
||||
newObject->fn = reader->ReadInt16();
|
||||
newObject->fcSepx = reader->ReadInt32();
|
||||
//newObject->fnMpr = reader->ReadInt16();
|
||||
//newObject->fcMpr = reader->ReadInt16();
|
||||
}
|
||||
else
|
||||
{
|
||||
newObject->fn = reader->ReadInt16();
|
||||
newObject->fcSepx = reader->ReadInt32();
|
||||
newObject->fnMpr = reader->ReadInt16();
|
||||
newObject->fcMpr = reader->ReadInt32();
|
||||
}
|
||||
|
||||
return static_cast<ByteStructure*>( newObject );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,269 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IVisitable.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
typedef enum _ShadingPattern
|
||||
{
|
||||
Automatic = 0x0000,
|
||||
Solid = 0x0001,
|
||||
Percent_5 = 0x0002,
|
||||
Percent_10 = 0x0003,
|
||||
Percent_20 = 0x0004,
|
||||
Percent_25 = 0x0005,
|
||||
Percent_30 = 0x0006,
|
||||
Percent_40 = 0x0007,
|
||||
Percent_50 = 0x0008,
|
||||
Percent_60 = 0x0009,
|
||||
Percent_70 = 0x000A,
|
||||
Percent_75 = 0x000B,
|
||||
Percent_80 = 0x000C,
|
||||
Percent_90 = 0x000D,
|
||||
DarkHorizontal = 0x000E,
|
||||
DarkVertical = 0x000F,
|
||||
DarkForwardDiagonal = 0x0010,
|
||||
DarkBackwardDiagonal = 0x0011,
|
||||
DarkCross = 0x0012,
|
||||
DarkDiagonalCross = 0x0013,
|
||||
Horizontal = 0x0014,
|
||||
Vertical = 0x0015,
|
||||
ForwardDiagonal = 0x0016,
|
||||
BackwardDiagonal = 0x0017,
|
||||
Cross = 0x0018,
|
||||
DiagonalCross = 0x0019,
|
||||
Percent_2_5 = 0x0023,
|
||||
Percent_7_5 = 0x0024,
|
||||
Percent_12_5 = 0x0025,
|
||||
Percent_15 = 0x0026,
|
||||
Percent_17_5 = 0x0027,
|
||||
Percent_22_5 = 0x0028,
|
||||
Percent_27_5 = 0x0029,
|
||||
Percent_32_5 = 0x002A,
|
||||
Percent_35 = 0x002B,
|
||||
Percent_37_5 = 0x002C,
|
||||
Percent_42_5 = 0x002D,
|
||||
Percent_45 = 0x002E,
|
||||
Percent_47_5 = 0x002F,
|
||||
Percent_52_5 = 0x0030,
|
||||
Percent_55 = 0x0031,
|
||||
Percent_57_5 = 0x0032,
|
||||
Percent_62_5 = 0x0033,
|
||||
Percent_65 = 0x0034,
|
||||
Percent_67_5 = 0x0035,
|
||||
Percent_72_5 = 0x0036,
|
||||
Percent_77_5 = 0x0037,
|
||||
Percent_82_5 = 0x0038,
|
||||
Percent_85 = 0x0039,
|
||||
Percent_87_5 = 0x003A,
|
||||
Percent_92_5 = 0x003B,
|
||||
Percent_95 = 0x003C,
|
||||
Percent_97_5 = 0x003D,
|
||||
Nil = 0xFFFF
|
||||
} ShadingPattern;
|
||||
|
||||
enum ShadingType
|
||||
{
|
||||
shadingTypeShd,
|
||||
shadingTypeShd80
|
||||
};
|
||||
|
||||
enum ShadingSpecialValue
|
||||
{
|
||||
shadingSpecialValueNormal,
|
||||
shadingSpecialValueShdAuto,
|
||||
shadingSpecialValueShdNil,
|
||||
shadingSpecialValueShd80Nil
|
||||
};
|
||||
|
||||
class ShadingDescriptor: public IVisitable
|
||||
{
|
||||
friend class PropertiesMapping;
|
||||
|
||||
private:
|
||||
unsigned int cvFore; // 24-bit foreground color
|
||||
bool cvForeAuto;
|
||||
int icoFore; // Foreground color.
|
||||
unsigned int cvBack;
|
||||
bool cvBackAuto;
|
||||
int icoBack;
|
||||
ShadingPattern ipat;
|
||||
ShadingType shadingType;
|
||||
ShadingSpecialValue shadingSpecialValue;
|
||||
|
||||
public:
|
||||
/// Creates a new ShadingDescriptor with default values
|
||||
ShadingDescriptor()
|
||||
{
|
||||
setDefaultValues();
|
||||
}
|
||||
|
||||
/// Parses the bytes to retrieve a ShadingDescriptor.
|
||||
ShadingDescriptor(unsigned char* bytes, int size)
|
||||
{
|
||||
setDefaultValues();
|
||||
|
||||
if (NULL != bytes)
|
||||
{
|
||||
if (10 == size)
|
||||
{
|
||||
//it's a Word 2000/2003 descriptor
|
||||
unsigned char cvForeBytes[4] = { bytes[2], bytes[1], bytes[0], 0 };
|
||||
unsigned char cvBackBytes[4] = { bytes[6], bytes[5], bytes[4], 0 };
|
||||
|
||||
cvFore = FormatUtils::BytesToUInt32( cvForeBytes, 0, 4 );
|
||||
|
||||
if ( bytes[3] == 0xFF )
|
||||
{
|
||||
cvForeAuto = true;
|
||||
}
|
||||
|
||||
cvBack = FormatUtils::BytesToUInt32( cvBackBytes, 0, 4 );
|
||||
|
||||
if ( bytes[7] == 0xFF )
|
||||
{
|
||||
cvBackAuto = true;
|
||||
}
|
||||
|
||||
ipat = (ShadingPattern)FormatUtils::BytesToUInt16( bytes, 8, size );
|
||||
|
||||
shadingType = shadingTypeShd;
|
||||
|
||||
if ( ( cvFore == 0 ) && ( bytes[3] == 0xFF ) && ( cvBack == 0 ) && ( bytes[7] == 0xFF ) && ( ipat == Automatic ) )
|
||||
{
|
||||
shadingSpecialValue = shadingSpecialValueShdAuto;
|
||||
}
|
||||
else if ( ( cvFore == 0xFFFFFF ) && ( bytes[3] == 0xFF ) && ( cvBack == 0xFFFFFF ) && ( bytes[7] == 0xFF ) && ( ipat == Automatic ) )
|
||||
{
|
||||
shadingSpecialValue = shadingSpecialValueShdNil;
|
||||
}
|
||||
}
|
||||
else if (2 == size)
|
||||
{
|
||||
//it's a Word 97 SPRM
|
||||
short val = FormatUtils::BytesToInt16(bytes, 0, size);
|
||||
|
||||
icoFore = GETBITS(val, 0, 4);
|
||||
icoBack = GETBITS(val, 5, 9);
|
||||
ipat = (ShadingPattern) GETBITS(val, 10, 15);
|
||||
|
||||
shadingType = shadingTypeShd80;
|
||||
|
||||
if ((icoFore == 0x1F) && (icoBack == 0x1F) && (ipat == 0x3F))
|
||||
{
|
||||
shadingSpecialValue = shadingSpecialValueShd80Nil;
|
||||
}
|
||||
else
|
||||
{
|
||||
shadingType = shadingTypeShd;
|
||||
|
||||
cvForeAuto = false;
|
||||
cvBackAuto = false;
|
||||
|
||||
if (0x00 == icoFore) { cvFore = RGB2 (0x00, 0x00, 0x00); cvForeAuto = true; }
|
||||
else if (0x01 == icoFore) { cvFore = RGB2 (0x00, 0x00, 0x00); }
|
||||
else if (0x02 == icoFore) { cvFore = RGB2 (0x00, 0x00, 0xFF); }
|
||||
else if (0x03 == icoFore) { cvFore = RGB2 (0x00, 0xFF, 0xFF); }
|
||||
else if (0x04 == icoFore) { cvFore = RGB2 (0x00, 0xFF, 0x00); }
|
||||
else if (0x05 == icoFore) { cvFore = RGB2 (0xFF, 0x00, 0xFF); }
|
||||
else if (0x06 == icoFore) { cvFore = RGB2 (0xFF, 0x00, 0x00); }
|
||||
else if (0x07 == icoFore) { cvFore = RGB2 (0xFF, 0xFF, 0x00); }
|
||||
else if (0x08 == icoFore) { cvFore = RGB2 (0xFF, 0xFF, 0xFF); }
|
||||
else if (0x09 == icoFore) { cvFore = RGB2 (0x00, 0x00, 0x80); }
|
||||
else if (0x0A == icoFore) { cvFore = RGB2 (0x00, 0x80, 0x80); }
|
||||
else if (0x0B == icoFore) { cvFore = RGB2 (0x00, 0x80, 0x00); }
|
||||
else if (0x0C == icoFore) { cvFore = RGB2 (0x80, 0x00, 0x80); }
|
||||
else if (0x0D == icoFore) { cvFore = RGB2 (0x80, 0x00, 0x80); }
|
||||
else if (0x0E == icoFore) { cvFore = RGB2 (0x80, 0x80, 0x00); }
|
||||
else if (0x0F == icoFore) { cvFore = RGB2 (0x80, 0x80, 0x80); }
|
||||
else if (0x10 == icoFore) { cvFore = RGB2 (0xC0, 0xC0, 0xC0); }
|
||||
|
||||
if (0x00 == icoBack) { cvBack = RGB2 (0xFF, 0xFF, 0xFF); cvBackAuto = true; }
|
||||
else if (0x01 == icoBack) { cvBack = RGB2 (0x00, 0x00, 0x00); }
|
||||
else if (0x02 == icoBack) { cvBack = RGB2 (0x00, 0x00, 0xFF); }
|
||||
else if (0x03 == icoBack) { cvBack = RGB2 (0x00, 0xFF, 0xFF); }
|
||||
else if (0x04 == icoBack) { cvBack = RGB2 (0x00, 0xFF, 0x00); }
|
||||
else if (0x05 == icoBack) { cvBack = RGB2 (0xFF, 0x00, 0xFF); }
|
||||
else if (0x06 == icoBack) { cvBack = RGB2 (0xFF, 0x00, 0x00); }
|
||||
else if (0x07 == icoBack) { cvBack = RGB2 (0xFF, 0xFF, 0x00); }
|
||||
else if (0x08 == icoBack) { cvBack = RGB2 (0xFF, 0xFF, 0xFF); }
|
||||
else if (0x09 == icoBack) { cvBack = RGB2 (0x00, 0x00, 0x80); }
|
||||
else if (0x0A == icoBack) { cvBack = RGB2 (0x00, 0x80, 0x80); }
|
||||
else if (0x0B == icoBack) { cvBack = RGB2 (0x00, 0x80, 0x00); }
|
||||
else if (0x0C == icoBack) { cvBack = RGB2 (0x80, 0x00, 0x80); }
|
||||
else if (0x0D == icoBack) { cvBack = RGB2 (0x80, 0x00, 0x80); }
|
||||
else if (0x0E == icoBack) { cvBack = RGB2 (0x80, 0x80, 0x00); }
|
||||
else if (0x0F == icoBack) { cvBack = RGB2 (0x80, 0x80, 0x80); }
|
||||
else if (0x10 == icoBack) { cvBack = RGB2 (0xC0, 0xC0, 0xC0); }
|
||||
|
||||
// .... если будут документы с такими цветовыми палитрами
|
||||
|
||||
//if ((cvFore == 0) && (icoFore == 0x0) && (cvBack == 0) && (icoBack == 0x0) && (ipat == Automatic))
|
||||
//{
|
||||
// shadingSpecialValue = shadingSpecialValueShdAuto;
|
||||
//}
|
||||
//else if ((cvFore == 0xFFFFFF) && (icoFore == 0x0) && (cvBack == 0xFFFFFF) && (icoBack == 0x0) && (ipat == Automatic))
|
||||
//{
|
||||
// shadingSpecialValue = shadingSpecialValueShdNil;
|
||||
//}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
inline unsigned int RGB2 (unsigned char r, unsigned char g, unsigned char b)
|
||||
{
|
||||
return ( (r<<16) | (g<<8) | (b) );
|
||||
}
|
||||
|
||||
void setDefaultValues()
|
||||
{
|
||||
cvBack = 0;
|
||||
cvBackAuto = false;
|
||||
cvFore = 0;
|
||||
cvForeAuto = false;
|
||||
icoBack = 0;
|
||||
icoFore = 0;
|
||||
ipat = Automatic;
|
||||
|
||||
shadingType = shadingTypeShd80;
|
||||
shadingSpecialValue = shadingSpecialValueNormal;
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,127 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ByteStructure.h"
|
||||
#include "DrawingPrimitives.h"
|
||||
|
||||
class VirtualStreamReader;
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
typedef enum AnchorType
|
||||
{
|
||||
MARGIN,
|
||||
PAGE,
|
||||
TEXT
|
||||
} AnchorType;
|
||||
|
||||
class Spa : public ByteStructure
|
||||
{
|
||||
public:
|
||||
friend class VMLShapeMapping;
|
||||
friend class DocumentMapping;
|
||||
|
||||
static const int STRUCTURE_SIZE = 26;
|
||||
static const int STRUCTURE_SIZE_OLD = 6;
|
||||
|
||||
static const int GetSize(int nWordVersion)
|
||||
{
|
||||
return (nWordVersion > 0) ? STRUCTURE_SIZE_OLD : STRUCTURE_SIZE;
|
||||
}
|
||||
|
||||
Spa();
|
||||
|
||||
virtual ~Spa();
|
||||
|
||||
virtual ByteStructure* ConstructObject(VirtualStreamReader* reader, int length);
|
||||
inline int GetShapeID() const
|
||||
{
|
||||
return spid;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
/// Shape Identifier. Used in conjunction with the office art data
|
||||
/// (found via fcDggInfo in the FIB) to find the actual data for newObject shape.
|
||||
int spid;
|
||||
/// Left of rectangle enclosing shape relative to the origin of the shape
|
||||
int xaLeft;
|
||||
/// Top of rectangle enclosing shape relative to the origin of the shape
|
||||
int yaTop;
|
||||
/// Right of rectangle enclosing shape relative to the origin of the shape
|
||||
int xaRight;
|
||||
/// Bottom of the rectangle enclosing shape relative to the origin of the shape
|
||||
int yaBottom;
|
||||
/// true in the undo doc when shape is from the header doc
|
||||
/// false otherwise (undefined when not in the undo doc)
|
||||
bool fHdr;
|
||||
/// X position of shape relative to anchor CP
|
||||
/// 0 relative to page margin
|
||||
/// 1 relative to top of page
|
||||
/// 2 relative to text (column for horizontal text; paragraph for vertical text)
|
||||
/// 3 reserved for future use
|
||||
AnchorType bx;
|
||||
/// Y position of shape relative to anchor CP
|
||||
/// 0 relative to page margin
|
||||
/// 1 relative to top of page
|
||||
/// 2 relative to text (column for horizontal text; paragraph for vertical text)
|
||||
/// 3 reserved for future use
|
||||
AnchorType by;
|
||||
/// Text wrapping mode
|
||||
/// 0 like 2, but doesn‘t require absolute object
|
||||
/// 1 no text next to shape
|
||||
/// 2 wrap around absolute object
|
||||
/// 3 wrap as if no object present
|
||||
/// 4 wrap tightly around object
|
||||
/// 5 wrap tightly, but allow holes
|
||||
/// 6-15 reserved for future use
|
||||
unsigned short wr;
|
||||
/// Text wrapping mode type (valid only for wrapping modes 2 and 4)
|
||||
/// 0 wrap both sides
|
||||
/// 1 wrap only on left
|
||||
/// 2 wrap only on right
|
||||
/// 3 wrap only on largest side
|
||||
unsigned short wrk;
|
||||
/// When set, temporarily overrides bx, by,
|
||||
/// forcing the xaLeft, xaRight, yaTop, and yaBottom fields
|
||||
/// to all be page relative.
|
||||
bool fRcaSimple;
|
||||
bool fBelowText; // true: shape is below text
|
||||
bool fAnchorLock; // true: anchor is locked
|
||||
int cTxbx; // Count of textboxes in shape (undo doc only)
|
||||
|
||||
DrawingPrimitives primitives;
|
||||
|
||||
void read_primitives(Spa* pSpa, VirtualStreamReader* reader, int length);
|
||||
};
|
||||
}
|
||||
@ -1,192 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#include "../../Common/DocxFormat/Source/Base/SmartPtr.h"
|
||||
|
||||
#include "BorderCode.h"
|
||||
#include "Global.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
struct TC80
|
||||
{
|
||||
TC80()
|
||||
{
|
||||
wWidth = horzMerge =0;
|
||||
|
||||
textFlow = Global::lrTb;
|
||||
vertMerge = Global::fvmClear;
|
||||
vertAlign = Global::top;
|
||||
ftsWidth = Global::nil;
|
||||
|
||||
fFitText = fNoWrap = fHideMark = false;
|
||||
}
|
||||
/// A value from the following table that specifies how this cell merges horizontally with the neighboring cells in the same row.
|
||||
/// MUST be one of the following values:
|
||||
/// 0 - The cell is not merged with the cells on either side of it.
|
||||
/// 1 - The cell is one of a set of horizontally merged cells. It contributes its layout region to the set and its own contents are not rendered.
|
||||
/// 2, 3 - The cell is the first cell in a set of horizontally merged cells. The contents and formatting of this cell extend into any consecutive cells following it that are designated as part of the merged set.
|
||||
unsigned char horzMerge;
|
||||
/// A value from the TextFlow enumeration that specifies rotation settings for the text in the cell.
|
||||
Global::TextFlow textFlow;
|
||||
/// A value from the VerticalMergeFlag enumeration that specifies how this cell merges vertically with the cells above or below it.
|
||||
Global::VerticalMergeFlag vertMerge;
|
||||
/// A value from the VerticalAlign enumeration that specifies how contents inside this cell are aligned.
|
||||
Global::VerticalAlign vertAlign;
|
||||
/// An Fts that specifies the unit of measurement for the wWidth field in the TC80 structure.
|
||||
Global::CellWidthType ftsWidth;
|
||||
/// Specifies whether the contents of the cell are to be stretched out such that the full cell width is used.
|
||||
bool fFitText;
|
||||
/// When set, specifies that the preferred layout of the contents of this cell are as a single line,
|
||||
/// and cell widths can be adjusted to accommodate long lines.
|
||||
/// This preference is ignored when the preferred width of this cell is set to ftsDxa.
|
||||
bool fNoWrap;
|
||||
/// When set, specifies that this cell is rendered with no height if all cells in the row are empty.
|
||||
bool fHideMark;
|
||||
/// An integer that specifies the preferred width of the cell.
|
||||
/// The width includes cell margins, but does not include cell spacing. MUST be non-negative.
|
||||
/// The unit of measurement depends on ftsWidth.
|
||||
/// If ftsWidth is set to ftsPercent, the value is a fraction of the width of the entire table.
|
||||
short wWidth;
|
||||
|
||||
NSCommon::smart_ptr<BorderCode> brcTop;
|
||||
NSCommon::smart_ptr<BorderCode> brcLeft;
|
||||
NSCommon::smart_ptr<BorderCode> brcBottom;
|
||||
NSCommon::smart_ptr<BorderCode> brcRight;
|
||||
} ;
|
||||
|
||||
class SprmTDefTable
|
||||
{
|
||||
private:
|
||||
friend class TableCellPropertiesMapping;
|
||||
public:
|
||||
SprmTDefTable (unsigned char* bytes, int size)
|
||||
{
|
||||
numberOfColumns = bytes[0];
|
||||
int pointer = 1;
|
||||
|
||||
// rgdxaCenter
|
||||
for (int i = 0; i < numberOfColumns + 1; ++i)
|
||||
{
|
||||
int pos = FormatUtils::BytesToInt16(bytes, pointer, size);
|
||||
rgdxaCenter.push_back(pos);
|
||||
pointer += 2;
|
||||
}
|
||||
|
||||
|
||||
// rgTc80
|
||||
|
||||
for (int i = 0; i < numberOfColumns; ++i)
|
||||
{
|
||||
if (size <= pointer)
|
||||
{
|
||||
for (int j = i; j < numberOfColumns; ++j)
|
||||
{
|
||||
TC80 oTC80;
|
||||
|
||||
oTC80.ftsWidth = Global::dxa;
|
||||
oTC80.wWidth = 3190;
|
||||
|
||||
oTC80.brcTop = new BorderCode();
|
||||
oTC80.brcLeft = new BorderCode();
|
||||
oTC80.brcBottom = new BorderCode();
|
||||
oTC80.brcRight = new BorderCode();
|
||||
|
||||
rgTc80.push_back(oTC80);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
TC80 tc;
|
||||
// the flags
|
||||
|
||||
unsigned short flags = FormatUtils::BytesToUInt16(bytes, pointer, size);
|
||||
|
||||
tc.horzMerge = (unsigned char)FormatUtils::BitmaskToInt((int)flags, 0x3);
|
||||
tc.textFlow = (Global::TextFlow)FormatUtils::BitmaskToInt((int)flags, 0x1C);
|
||||
tc.vertMerge = (Global::VerticalMergeFlag)FormatUtils::BitmaskToInt((int)flags, 0x60);
|
||||
tc.vertAlign = (Global::VerticalAlign)FormatUtils::BitmaskToInt((int)flags, 0x180);
|
||||
tc.ftsWidth = (Global::CellWidthType)FormatUtils::BitmaskToInt((int)flags, 0xE00);
|
||||
tc.fFitText = FormatUtils::BitmaskToBool(flags, 0x1000);
|
||||
tc.fNoWrap = FormatUtils::BitmaskToBool(flags, 0x2000);
|
||||
tc.fHideMark = FormatUtils::BitmaskToBool(flags, 0x4000);
|
||||
|
||||
pointer += 2;
|
||||
|
||||
// cell width
|
||||
tc.wWidth = FormatUtils::BytesToInt16(bytes, pointer, size);
|
||||
pointer += 2;
|
||||
|
||||
const int borderCodeBytes = 4;
|
||||
|
||||
//border top
|
||||
unsigned char brcTopBytes[borderCodeBytes];
|
||||
memcpy(brcTopBytes, (bytes + pointer), borderCodeBytes);
|
||||
tc.brcTop = new BorderCode(brcTopBytes, borderCodeBytes);
|
||||
pointer += borderCodeBytes;
|
||||
|
||||
//border left
|
||||
unsigned char brcLeftBytes[borderCodeBytes];
|
||||
memcpy(brcLeftBytes, (bytes + pointer), borderCodeBytes);
|
||||
tc.brcLeft = new BorderCode(brcLeftBytes, borderCodeBytes);
|
||||
pointer += borderCodeBytes;
|
||||
|
||||
//border bottom
|
||||
unsigned char brcBottomBytes[borderCodeBytes];
|
||||
memcpy(brcBottomBytes, (bytes + pointer), borderCodeBytes);
|
||||
tc.brcBottom = new BorderCode(brcBottomBytes, borderCodeBytes);
|
||||
pointer += borderCodeBytes;
|
||||
|
||||
//border top
|
||||
unsigned char brcRightBytes[borderCodeBytes];
|
||||
memcpy(brcRightBytes, (bytes + pointer), borderCodeBytes);
|
||||
tc.brcRight = new BorderCode(brcRightBytes, borderCodeBytes);
|
||||
pointer += borderCodeBytes;
|
||||
|
||||
rgTc80.push_back(tc);
|
||||
}
|
||||
}
|
||||
|
||||
unsigned char numberOfColumns;
|
||||
|
||||
/// An array of 16-bit signed integer that specifies horizontal distance in twips.
|
||||
/// MUST be greater than or equal to -31680 and less than or equal to 31680.
|
||||
std::vector<short> rgdxaCenter;
|
||||
|
||||
/// An array of TC80 that specifies the default formatting for a cell in the table.
|
||||
/// Each TC80 in the array corresponds to the equivalent column in the table.
|
||||
/// If there are fewer TC80s than columns, the remaining columns are formatted with the default TC80 formatting.
|
||||
/// If there are more TC80s than columns, the excess TC80s MUST be ignored.
|
||||
std::vector<TC80> rgTc80;
|
||||
};
|
||||
}
|
||||
@ -1,219 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "VirtualStreamReader.h"
|
||||
#include "WideString.h"
|
||||
#include "IVisitable.h"
|
||||
|
||||
#include "../Common/FormatUtils.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
template<class T> class StringTable: public IVisitable
|
||||
{
|
||||
friend class WordDocument;
|
||||
friend class CharacterPropertiesMapping;
|
||||
friend class FontTableMapping;
|
||||
friend class StyleSheetMapping;
|
||||
friend class DocumentMapping;
|
||||
friend class NumberingMapping;
|
||||
|
||||
private:
|
||||
bool fExtend;
|
||||
int cbData;
|
||||
unsigned short cbExtra;
|
||||
|
||||
std::vector<ByteStructure*> Data;
|
||||
|
||||
std::vector<unsigned char*> DataExtra;
|
||||
int code_page;
|
||||
public:
|
||||
virtual ~StringTable()
|
||||
{
|
||||
for ( size_t i = 0; i < this->Data.size(); ++i )
|
||||
{
|
||||
RELEASEOBJECT( this->Data[i] );
|
||||
|
||||
if (false == this->DataExtra.empty())
|
||||
{
|
||||
if (this->DataExtra[i])
|
||||
{
|
||||
delete []this->DataExtra[i];
|
||||
this->DataExtra[i] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
StringTable( VirtualStreamReader *reader, int code_page_ ):
|
||||
code_page(code_page_), fExtend(false), cbData(0), cbExtra(0)
|
||||
{
|
||||
parse( reader, (unsigned int)reader->GetPosition(), 0, false );
|
||||
}
|
||||
|
||||
StringTable( POLE::Stream* tableStream, unsigned int fc, unsigned int lcb, int nWordVersion, bool bReadExta = false) :
|
||||
code_page(1250), fExtend(false), cbData(0), cbExtra(0)
|
||||
{
|
||||
if ( lcb > 0 )
|
||||
{
|
||||
VirtualStreamReader reader( tableStream, fc, nWordVersion);
|
||||
|
||||
parse( &reader, fc, lcb, bReadExta ) ;
|
||||
}
|
||||
}
|
||||
std::vector<unsigned char*> & getDataExtra() {return DataExtra;}
|
||||
unsigned short getDataExtraSize() {return cbExtra;}
|
||||
|
||||
ByteStructure* operator [] ( size_t index ) const
|
||||
{
|
||||
if ( index < this->Data.size() )
|
||||
{
|
||||
return this->Data.at( index );
|
||||
}
|
||||
else
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void parse( VirtualStreamReader *reader, unsigned int fc, unsigned int lcb = 0, bool bReadExta = false )
|
||||
{
|
||||
if ( reader == NULL ) return;
|
||||
if (fc > reader->GetSize()) return;
|
||||
|
||||
this->cbData = lcb;
|
||||
|
||||
int count_elements = 0;
|
||||
//read fExtend
|
||||
if ( reader->ReadUInt16() == 0xFFFF )
|
||||
{
|
||||
//if the first 2 bytes are 0xFFFF the STTB contains unicode characters
|
||||
this->fExtend = true;
|
||||
code_page = ENCODING_UTF16;
|
||||
}
|
||||
else
|
||||
{
|
||||
//else the STTB contains 1byte characters and the fExtend field is non-existend
|
||||
//seek back to the beginning
|
||||
this->fExtend = false;
|
||||
code_page = ENCODING_WINDOWS_1250;
|
||||
|
||||
reader->Seek( (int)fc, 0/*STREAM_SEEK_SET*/ );
|
||||
}
|
||||
|
||||
//read cData
|
||||
long cDataStart = reader->GetPosition();
|
||||
unsigned short cb = 0, elem_sz = 0;
|
||||
|
||||
//if (reader->nWordVersion == 2)
|
||||
//{
|
||||
// unsigned char * bytes = reader->ReadBytes(lcb, true);
|
||||
// reader->Seek( (int)fc, 0/*STREAM_SEEK_SET*/ );
|
||||
// delete []bytes;
|
||||
//}
|
||||
|
||||
if (reader->nWordVersion > 0)
|
||||
{
|
||||
cb = reader->ReadUInt16();
|
||||
this->cbData = cb; // all size
|
||||
}
|
||||
else if (reader->nWordVersion == 0)
|
||||
{
|
||||
cb = reader->ReadUInt16();
|
||||
if ( cb != 0xFFFF )
|
||||
{
|
||||
count_elements = cb;
|
||||
}
|
||||
else
|
||||
{
|
||||
//cData is a 4byte signed Integer, so we need to seek back
|
||||
reader->Seek( (int)( fc + cDataStart ), 0/*STREAM_SEEK_SET*/ );
|
||||
this->cbData = reader->ReadInt32();
|
||||
}
|
||||
}
|
||||
|
||||
//read cbExtra
|
||||
if (reader->nWordVersion == 0)
|
||||
{
|
||||
this->cbExtra = reader->ReadUInt16();
|
||||
}
|
||||
|
||||
if (lcb > 0 && (lcb/* - fc*/) != this->cbData + this->cbExtra)
|
||||
{
|
||||
//????
|
||||
}
|
||||
|
||||
while(true) //read the strings and extra datas
|
||||
{
|
||||
if (reader->GetPosition() >= fc + this->cbData + this->cbExtra && count_elements < 1)
|
||||
break; //1995 and older
|
||||
|
||||
if (this->Data.size() == count_elements && count_elements > 0)
|
||||
break; //1997 and newer
|
||||
|
||||
int cchData = 0;
|
||||
int cbData = 0;
|
||||
|
||||
if ( this->fExtend )
|
||||
{
|
||||
cchData = (int)reader->ReadUInt16();
|
||||
cbData = cchData * 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
cchData = (int)reader->ReadByte();
|
||||
cbData = cchData;
|
||||
}
|
||||
|
||||
long posBeforeType = reader->GetPosition();
|
||||
|
||||
this->Data.push_back( T().ConstructObject( reader, cbData ) );
|
||||
|
||||
reader->Seek( (int)( posBeforeType + cbData ), 0/*STREAM_SEEK_SET */);
|
||||
|
||||
if (bReadExta)
|
||||
{
|
||||
unsigned char* pData = reader->ReadBytes( cbExtra, true );
|
||||
DataExtra.push_back(pData);
|
||||
}
|
||||
else
|
||||
{
|
||||
reader->ReadBytes( cbExtra, false );
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,162 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../../Common/3dParty/pole/pole.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class StructuredStorageReader
|
||||
{
|
||||
public:
|
||||
StructuredStorageReader () : m_pStorage(NULL)
|
||||
{
|
||||
|
||||
}
|
||||
~StructuredStorageReader()
|
||||
{
|
||||
if(m_pStorage)
|
||||
{
|
||||
delete m_pStorage;
|
||||
m_pStorage = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
bool SetFile (const wchar_t* filename)
|
||||
{
|
||||
m_pStorage = new POLE::Storage(filename);
|
||||
|
||||
if (m_pStorage)//return true;
|
||||
{
|
||||
return m_pStorage->open();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool isDirectory( const std::wstring& name )
|
||||
{
|
||||
if (!m_pStorage) return false;
|
||||
|
||||
return m_pStorage->isDirectory(name);
|
||||
}
|
||||
|
||||
bool GetStream (const std::wstring & path, POLE::Stream** ppStream)
|
||||
{
|
||||
if (( m_pStorage != NULL ) && ( !path.empty() ))
|
||||
{
|
||||
*ppStream = new POLE::Stream(m_pStorage, path.c_str());
|
||||
}
|
||||
if ((*ppStream) && ((*ppStream)->size() > 0))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
inline POLE::Storage* GetStorage()
|
||||
{
|
||||
return m_pStorage;
|
||||
}
|
||||
|
||||
void copy( int indent, std::wstring path, POLE::Storage * storageOut, bool withRoot = true)
|
||||
{
|
||||
std::list<std::wstring> entries, entries_sort;
|
||||
entries = m_pStorage->entries_with_prefix( path );
|
||||
|
||||
for( std::list<std::wstring>::iterator it = entries.begin(); it != entries.end(); ++it )
|
||||
{
|
||||
std::wstring name = *it;
|
||||
std::wstring fullname = path + name;
|
||||
|
||||
if( m_pStorage->isDirectory( fullname ) )
|
||||
{
|
||||
entries_sort.push_back(name);
|
||||
}
|
||||
else
|
||||
{
|
||||
entries_sort.push_front(name);
|
||||
}
|
||||
}
|
||||
//for( std::list<std::string>::iterator it = entries.begin(); it != entries.end(); ++it )
|
||||
for( std::list<std::wstring>::iterator it = entries_sort.begin(); it != entries_sort.end(); ++it )
|
||||
{
|
||||
std::wstring name = *it;
|
||||
std::wstring fullname = path + name;
|
||||
|
||||
if( m_pStorage->isDirectory( fullname ) )
|
||||
{
|
||||
copy( indent + 1, fullname + L"/", storageOut, withRoot );
|
||||
}
|
||||
else
|
||||
{
|
||||
copy_stream(fullname, storageOut, withRoot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
void copy_stream(std::wstring streamName, POLE::Storage * storageOut, bool withRoot = true)
|
||||
{
|
||||
POLE::Stream *stream = new POLE::Stream(m_pStorage, streamName);
|
||||
if (!stream) return;
|
||||
|
||||
stream->seek(0);
|
||||
POLE::int64 size_stream = stream->size();
|
||||
|
||||
if (withRoot == false)
|
||||
{
|
||||
int pos = (int)streamName.find(L"/");
|
||||
if (pos >= 0)
|
||||
streamName = streamName.substr(pos + 1);
|
||||
}
|
||||
|
||||
POLE::Stream *streamNew = new POLE::Stream(storageOut, streamName, true, size_stream);
|
||||
if (!streamNew) return;
|
||||
|
||||
unsigned char* data_stream = new unsigned char[size_stream];
|
||||
if (data_stream)
|
||||
{
|
||||
stream->read(data_stream, size_stream);
|
||||
|
||||
streamNew->write(data_stream, size_stream);
|
||||
|
||||
delete []data_stream;
|
||||
data_stream = NULL;
|
||||
}
|
||||
|
||||
streamNew->flush();
|
||||
|
||||
delete streamNew;
|
||||
delete stream;
|
||||
}
|
||||
|
||||
POLE::Storage* m_pStorage;
|
||||
};
|
||||
}
|
||||
@ -1,108 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ParagraphPropertyExceptions.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class TableInfo
|
||||
{
|
||||
public:
|
||||
bool fInTable;
|
||||
bool fTtp;
|
||||
bool fInnerTtp;
|
||||
bool fInnerTableCell;
|
||||
unsigned int iTap;
|
||||
|
||||
TableInfo( ParagraphPropertyExceptions* papx, int nWordVersion):
|
||||
fInTable(false), fTtp(false), fInnerTtp(false), fInnerTableCell(false), iTap(0)
|
||||
{
|
||||
if ( papx != NULL )
|
||||
{
|
||||
for ( std::list<SinglePropertyModifier>::iterator iter = papx->grpprl->begin(); iter != papx->grpprl->end(); iter++ )
|
||||
{
|
||||
switch(iter->OpCode)
|
||||
{
|
||||
case sprmOldPFInTable:
|
||||
case sprmPFInTable:
|
||||
{
|
||||
fInTable = ( iter->Arguments[0] == 1 ) ? (true) : (false);
|
||||
|
||||
if (iTap < 1 && fInTable) iTap = 1;
|
||||
}break;
|
||||
|
||||
//case sprmOldPFTtp:
|
||||
case sprmOldPTtp:
|
||||
case sprmPFTtp:
|
||||
{
|
||||
fTtp = ( iter->Arguments[0] == 1 ) ? (true) : (false);
|
||||
}break;
|
||||
|
||||
//case sprmOldPFInnerTableCell:
|
||||
case sprmPFInnerTableCell:
|
||||
{
|
||||
fInnerTableCell = ( iter->Arguments[0] == 1 ) ? (true) : (false);
|
||||
}break;
|
||||
|
||||
//case sprmOldPFInnerTtp:
|
||||
case sprmPFInnerTtp:
|
||||
{
|
||||
fInnerTtp = ( iter->Arguments[0] == 1 ) ? (true) : (false);
|
||||
}break;
|
||||
|
||||
//case sprmOldPItap:
|
||||
case sprmPItap:
|
||||
{
|
||||
iTap = FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
if ( iTap > 0 )
|
||||
{
|
||||
fInTable = true;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
if ( (int)( iter->OpCode ) == sprmTCnf )//66a
|
||||
{
|
||||
iTap = FormatUtils::BytesToUInt32( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
if ( iTap > 0 )
|
||||
{
|
||||
fInTable = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,537 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "TablePropertiesMapping.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
TablePropertiesMapping::TablePropertiesMapping (XMLTools::CStringXmlWriter* pWriter, StyleSheet* styles, std::vector<short>* grid, bool isTableStyleNeeded ):
|
||||
PropertiesMapping(pWriter), _tblPr(NULL), _tblGrid(NULL), _tblBorders(NULL), _grid(grid),
|
||||
brcLeft(NULL), brcTop(NULL), brcBottom(NULL), brcRight(NULL), brcHorz(NULL), brcVert(NULL), _styles(styles),
|
||||
_isTableStyleNeeded(isTableStyleNeeded)
|
||||
{
|
||||
_tblPr = new XMLTools::XMLElement( L"w:tblPr");
|
||||
_tblBorders = new XMLTools::XMLElement( L"w:tblBorders");
|
||||
}
|
||||
TablePropertiesMapping::~TablePropertiesMapping()
|
||||
{
|
||||
RELEASEOBJECT (_tblPr);
|
||||
RELEASEOBJECT (_tblGrid);
|
||||
RELEASEOBJECT (_tblBorders);
|
||||
RELEASEOBJECT (brcLeft);
|
||||
RELEASEOBJECT (brcTop);
|
||||
RELEASEOBJECT (brcBottom);
|
||||
RELEASEOBJECT (brcRight);
|
||||
RELEASEOBJECT (brcHorz);
|
||||
RELEASEOBJECT (brcVert);
|
||||
}
|
||||
}
|
||||
namespace DocFileFormat
|
||||
{
|
||||
void TablePropertiesMapping::Apply(IVisitable* visited)
|
||||
{
|
||||
TablePropertyExceptions* tapx = static_cast<TablePropertyExceptions*>( visited );
|
||||
|
||||
XMLTools::XMLElement tblCellMar ( L"w:tblCellMar");
|
||||
XMLTools::XMLElement tblLayout ( L"w:tblLayout");
|
||||
XMLTools::XMLElement tblpPr ( L"w:tblpPr");
|
||||
XMLTools::XMLAttribute layoutType ( L"w:type", L"");
|
||||
|
||||
bool bLayoutFixed = true;
|
||||
//layoutType.SetValue(L"fixed");
|
||||
|
||||
_CP_OPT(short) tblIndent;
|
||||
short gabHalf = 0;
|
||||
short marginLeft = 0;
|
||||
short marginRight = 0;
|
||||
|
||||
BYTE itcFirst = 0;
|
||||
BYTE itcLim = 0;
|
||||
|
||||
bool bTableW = false;
|
||||
|
||||
for ( std::list<SinglePropertyModifier>::iterator iter = tapx->grpprl->begin(); iter != tapx->grpprl->end(); iter++ )
|
||||
{
|
||||
switch( iter->OpCode )
|
||||
{
|
||||
case sprmOldTDxaGapHalf:
|
||||
case sprmTDxaGapHalf:
|
||||
{
|
||||
gabHalf = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmOldTDefTable:
|
||||
case sprmTDefTable:
|
||||
{
|
||||
//table definition
|
||||
SprmTDefTable tDef( iter->Arguments, iter->argumentsSize );
|
||||
//Workaround for retrieving the indent of the table:
|
||||
//In some files there is a indent but no sprmTWidthIndent is set.
|
||||
//For this cases we can calculate the indent of the table by getting the
|
||||
//first boundary of the TDef and adding the padding of the cells
|
||||
|
||||
tblIndent = gabHalf + FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize );
|
||||
//If there follows a real sprmTWidthIndent, this value will be overwritten
|
||||
|
||||
//tblIndent = (std::max)((int)tblIndent,0); //cerere.doc
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTTableWidth:
|
||||
{
|
||||
//preferred table width
|
||||
unsigned char fts = iter->Arguments[0];
|
||||
short width = FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize );
|
||||
|
||||
XMLTools::XMLElement tblW( L"w:tblW");
|
||||
|
||||
XMLTools::XMLAttribute w( L"w:w", FormatUtils::IntToWideString( width ) );
|
||||
XMLTools::XMLAttribute type( L"w:type", FormatUtils::MapValueToWideString( fts, &WidthType[0][0], 4, 5 ) );
|
||||
|
||||
tblW.AppendAttribute( type );
|
||||
tblW.AppendAttribute( w );
|
||||
|
||||
_tblPr->AppendChild( tblW );
|
||||
|
||||
bTableW = true;
|
||||
}
|
||||
break;
|
||||
case sprmTMerge:
|
||||
{
|
||||
itcFirst = iter->Arguments[0];
|
||||
itcLim = iter->Arguments[1];
|
||||
}break;
|
||||
case sprmTSplit:
|
||||
{
|
||||
|
||||
}break;
|
||||
case sprmOldTJc:
|
||||
case sprmTJc:
|
||||
case sprmTJcRow:
|
||||
{ //justification
|
||||
|
||||
appendValueElement( _tblPr, L"jc" , FormatUtils::MapValueToWideString( iter->Arguments[0], &Global::JustificationCode[0][0], 10, 15 ), true );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTWidthIndent:
|
||||
{ //indent
|
||||
|
||||
tblIndent = FtsWWidth_Indent(iter->Arguments).wWidth;
|
||||
// tblIndent = FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTIstd:
|
||||
case sprmTIstdPermute:
|
||||
{ //style
|
||||
|
||||
if ( _isTableStyleNeeded )
|
||||
{
|
||||
size_t ind = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
std::wstring id = ind < _styles->Styles->size() ? StyleSheetMapping::MakeStyleId( _styles->Styles->at( ind ) ) : L"";
|
||||
|
||||
if( id != std::wstring( L"TableNormal") && !id.empty() )
|
||||
{
|
||||
appendValueElement( _tblPr, L"tblStyle", id, true );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTFBiDi:
|
||||
case sprmTFBiDi90:
|
||||
{ //bidi
|
||||
|
||||
appendValueElement( _tblPr, L"bidiVisual", FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ), true );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmOldTTlp:
|
||||
case sprmTTlp:
|
||||
{ //table look
|
||||
|
||||
appendValueElement( _tblPr, L"tblLook", FormatUtils::IntToFormattedWideString( FormatUtils::BytesToInt16( iter->Arguments, 2, iter->argumentsSize ), L"%04x" ), true );
|
||||
}
|
||||
break;
|
||||
case sprmTFAutofit:
|
||||
{//autofit
|
||||
|
||||
layoutType.SetValue(L"fixed");
|
||||
if ( iter->Arguments[0] == 1 )
|
||||
{
|
||||
layoutType.SetValue( L"auto" );
|
||||
bLayoutFixed = false;
|
||||
}
|
||||
}break;
|
||||
case sprmTCellPadding:
|
||||
case sprmTCellPaddingDefault:
|
||||
case sprmTCellPaddingOuter:
|
||||
{ //default cell padding (margin)
|
||||
|
||||
unsigned char grfbrc = iter->Arguments[2];
|
||||
short wMar = FormatUtils::BytesToInt16( iter->Arguments, 4, iter->argumentsSize );
|
||||
std::wstring strValue = FormatUtils::IntToWideString( wMar );
|
||||
|
||||
if ( FormatUtils::BitmaskToBool( (int)grfbrc, 0x01 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, L"top" , strValue, true );
|
||||
}
|
||||
|
||||
if ( FormatUtils::BitmaskToBool( (int)grfbrc, 0x02 ) )
|
||||
{
|
||||
marginLeft = wMar;
|
||||
}
|
||||
|
||||
if ( FormatUtils::BitmaskToBool( (int)grfbrc, 0x04 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, L"bottom", strValue, true );
|
||||
}
|
||||
|
||||
if ( FormatUtils::BitmaskToBool( (int)grfbrc, 0x08 ) )
|
||||
{
|
||||
marginRight = wMar;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTCHorzBands:
|
||||
{ //row count
|
||||
|
||||
appendValueElement( _tblPr, L"tblStyleRowBandSize", iter->Arguments[0], true );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTCVertBands:
|
||||
{ //col count
|
||||
|
||||
appendValueElement( _tblPr, L"tblStyleColBandSize", iter->Arguments[0], true );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTFNoAllowOverlap:
|
||||
{ //overlap
|
||||
|
||||
std::wstring tblOverlapVal = std::wstring( L"overlap");
|
||||
|
||||
if ( iter->Arguments[0] )
|
||||
{
|
||||
tblOverlapVal = std::wstring( L"never");
|
||||
}
|
||||
|
||||
appendValueElement( _tblPr, L"tblOverlap", tblOverlapVal, true );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmOldTSetShd :
|
||||
case sprmTSetShdTable :
|
||||
{ //shading
|
||||
|
||||
appendShading( _tblPr, ShadingDescriptor( iter->Arguments, iter->argumentsSize ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTTableBorders80:
|
||||
{ //borders 80 exceptions
|
||||
|
||||
const int size = 4;
|
||||
unsigned char brc80[size];
|
||||
|
||||
//top border
|
||||
memcpy( brc80, iter->Arguments, size );
|
||||
RELEASEOBJECT( brcTop );
|
||||
brcTop = new BorderCode( brc80, size );
|
||||
|
||||
//left
|
||||
memcpy( brc80, ( iter->Arguments + 4 ), size );
|
||||
RELEASEOBJECT( brcLeft );
|
||||
brcLeft = new BorderCode( brc80, size );
|
||||
|
||||
//bottom
|
||||
memcpy( brc80, ( iter->Arguments + 8 ), size );
|
||||
RELEASEOBJECT( brcBottom );
|
||||
brcBottom = new BorderCode( brc80, size );
|
||||
|
||||
//right
|
||||
memcpy( brc80, ( iter->Arguments + 12 ), size );
|
||||
RELEASEOBJECT( brcRight );
|
||||
brcRight = new BorderCode( brc80, size );
|
||||
|
||||
//inside H
|
||||
memcpy( brc80, ( iter->Arguments + 16 ), size );
|
||||
RELEASEOBJECT( brcHorz );
|
||||
brcHorz = new BorderCode( brc80, size );
|
||||
|
||||
//inside V
|
||||
memcpy( brc80, ( iter->Arguments + 20 ), size );
|
||||
RELEASEOBJECT( brcVert );
|
||||
brcVert = new BorderCode( brc80, size );
|
||||
}
|
||||
break;
|
||||
|
||||
//border exceptions
|
||||
case sprmOldTTableBorders:
|
||||
case sprmTTableBorders:
|
||||
{
|
||||
const int size = 8;
|
||||
unsigned char brc[size];
|
||||
|
||||
//top border
|
||||
memcpy( brc, iter->Arguments, size );
|
||||
RELEASEOBJECT( brcTop );
|
||||
brcTop = new BorderCode( brc, size );
|
||||
|
||||
//left
|
||||
memcpy( brc, ( iter->Arguments + 8 ), size );
|
||||
RELEASEOBJECT( brcLeft );
|
||||
brcLeft = new BorderCode( brc, size );
|
||||
|
||||
//bottom
|
||||
memcpy( brc, ( iter->Arguments + 16 ), size );
|
||||
RELEASEOBJECT( brcBottom );
|
||||
brcBottom = new BorderCode( brc, size );
|
||||
|
||||
//right
|
||||
memcpy( brc, ( iter->Arguments + 24 ), size );
|
||||
RELEASEOBJECT( brcRight );
|
||||
brcRight = new BorderCode( brc, size );
|
||||
|
||||
//inside H
|
||||
memcpy( brc, ( iter->Arguments + 32 ), size );
|
||||
RELEASEOBJECT( brcHorz );
|
||||
brcHorz = new BorderCode( brc, size );
|
||||
|
||||
//inside V
|
||||
memcpy( brc, ( iter->Arguments + 40 ), size );
|
||||
RELEASEOBJECT( brcVert );
|
||||
brcVert = new BorderCode( brc, size );
|
||||
}
|
||||
break;
|
||||
|
||||
//floating table properties
|
||||
case sprmTPc:
|
||||
{
|
||||
unsigned char flag = ( iter->Arguments[0] & 0x30 ) >> 4;
|
||||
|
||||
appendValueAttribute( &tblpPr, L"w:vertAnchor", FormatUtils::MapValueToWideString( flag, &Global::VerticalPositionCode[0][0], 4, 7 ) );
|
||||
|
||||
flag = ( iter->Arguments[0] & 0xC0 ) >> 6;
|
||||
|
||||
appendValueAttribute( &tblpPr, L"w:horzAnchor", FormatUtils::MapValueToWideString( flag, &Global::HorizontalPositionCode[0][0], 4, 7 ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTDxaFromText:
|
||||
{
|
||||
appendValueAttribute( &tblpPr, L"w:leftFromText", FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTDxaFromTextRight:
|
||||
{
|
||||
appendValueAttribute( &tblpPr, L"w:rightFromText", FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTDyaFromText:
|
||||
{
|
||||
appendValueAttribute( &tblpPr, L"w:topFromText", FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTDyaFromTextBottom:
|
||||
{
|
||||
appendValueAttribute( &tblpPr, L"w:bottomFromText", FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTDxaAbs:
|
||||
{
|
||||
appendValueAttribute( &tblpPr, L"w:tblpX", FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
}
|
||||
break;
|
||||
|
||||
case sprmTDyaAbs:
|
||||
{
|
||||
appendValueAttribute( &tblpPr, L"w:tblpY", FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize ) );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (false == bTableW)
|
||||
{
|
||||
XMLTools::XMLElement tblW( L"w:tblW");
|
||||
|
||||
XMLTools::XMLAttribute w( L"w:w", L"0");
|
||||
XMLTools::XMLAttribute type( L"w:type", L"auto" );
|
||||
|
||||
tblW.AppendAttribute( type );
|
||||
tblW.AppendAttribute( w );
|
||||
|
||||
_tblPr->AppendChild( tblW );
|
||||
}
|
||||
|
||||
//indent
|
||||
if ( tblIndent )
|
||||
{
|
||||
XMLTools::XMLElement tblInd( L"w:tblInd");
|
||||
|
||||
XMLTools::XMLAttribute tblIndW( L"w:w", FormatUtils::IntToWideString( *tblIndent ) );
|
||||
tblInd.AppendAttribute( tblIndW );
|
||||
|
||||
XMLTools::XMLAttribute tblIndType( L"w:type", L"dxa");
|
||||
tblInd.AppendAttribute( tblIndType );
|
||||
|
||||
_tblPr->AppendChild( tblInd );
|
||||
}
|
||||
|
||||
//append floating props
|
||||
if ( tblpPr.GetAttributeCount() > 0 )
|
||||
{
|
||||
_tblPr->AppendChild( tblpPr );
|
||||
}
|
||||
|
||||
//set borders
|
||||
if ( brcTop != NULL )
|
||||
{
|
||||
XMLTools::XMLElement topBorder( L"w:top");
|
||||
appendBorderAttributes( brcTop, &topBorder );
|
||||
addOrSetBorder( _tblBorders, &topBorder );
|
||||
}
|
||||
|
||||
if ( brcLeft != NULL )
|
||||
{
|
||||
XMLTools::XMLElement leftBorder( L"w:left");
|
||||
appendBorderAttributes( brcLeft, &leftBorder );
|
||||
addOrSetBorder( _tblBorders, &leftBorder );
|
||||
}
|
||||
|
||||
if ( brcBottom != NULL )
|
||||
{
|
||||
XMLTools::XMLElement bottomBorder( L"w:bottom");
|
||||
appendBorderAttributes( brcBottom, &bottomBorder );
|
||||
addOrSetBorder( _tblBorders, &bottomBorder );
|
||||
}
|
||||
|
||||
if ( brcRight != NULL )
|
||||
{
|
||||
XMLTools::XMLElement rightBorder( L"w:right");
|
||||
appendBorderAttributes( brcRight, &rightBorder );
|
||||
addOrSetBorder( _tblBorders, &rightBorder );
|
||||
}
|
||||
|
||||
if ( brcHorz != NULL )
|
||||
{
|
||||
XMLTools::XMLElement insideHBorder( L"w:insideH");
|
||||
appendBorderAttributes( brcHorz, &insideHBorder );
|
||||
addOrSetBorder( _tblBorders, &insideHBorder );
|
||||
}
|
||||
|
||||
if ( brcVert != NULL )
|
||||
{
|
||||
XMLTools::XMLElement insideVBorder( L"w:insideV");
|
||||
appendBorderAttributes( brcVert, &insideVBorder );
|
||||
addOrSetBorder( _tblBorders, &insideVBorder );
|
||||
}
|
||||
|
||||
if ( _tblBorders->GetChildCount() > 0 )
|
||||
{
|
||||
_tblPr->AppendChild( *_tblBorders );
|
||||
}
|
||||
|
||||
if (false == layoutType.GetValue().empty())
|
||||
{
|
||||
tblLayout.AppendAttribute(layoutType);
|
||||
}
|
||||
_tblPr->AppendChild( tblLayout );
|
||||
|
||||
if ( ( marginLeft == 0 ) && ( gabHalf != 0 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, L"left", FormatUtils::IntToWideString( gabHalf ), true );
|
||||
}
|
||||
else
|
||||
{
|
||||
appendDxaElement( &tblCellMar, L"left", FormatUtils::IntToWideString( marginLeft ), true );
|
||||
}
|
||||
|
||||
if ( ( marginRight == 0 ) && ( gabHalf != 0 ) )
|
||||
{
|
||||
appendDxaElement( &tblCellMar, L"right", FormatUtils::IntToWideString( gabHalf ), true );
|
||||
}
|
||||
else
|
||||
{
|
||||
appendDxaElement( &tblCellMar, L"right", FormatUtils::IntToWideString( marginRight ), true );
|
||||
}
|
||||
|
||||
_tblPr->AppendChild( tblCellMar );
|
||||
|
||||
//write Properties
|
||||
if ( ( _tblPr->GetChildCount() > 0 ) || ( _tblPr->GetAttributeCount() > 0 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _tblPr->GetXMLString() );
|
||||
}
|
||||
|
||||
//append the grid
|
||||
_tblGrid = new XMLTools::XMLElement( L"w:tblGrid");
|
||||
|
||||
//Если _grid состоит из одних DocFormatUtils::gc_nZeroWidth и layout != "fixed", значит это doc полученный нами при конвертации из html. Таблицу размеров писать не нужно
|
||||
|
||||
bool bWriteGridCol = false;
|
||||
if (true == bLayoutFixed)
|
||||
bWriteGridCol = true;
|
||||
else
|
||||
{
|
||||
for ( size_t i = 0, nSize = _grid->size(); i < nSize; i++ )
|
||||
{
|
||||
if(_grid->at(i) % DocFileFormat::gc_nZeroWidth != 0)
|
||||
{
|
||||
bWriteGridCol = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (true == bWriteGridCol)
|
||||
{
|
||||
for ( size_t i = 0; i < _grid->size(); i++ )
|
||||
{
|
||||
XMLTools::XMLElement gridCol( L"w:gridCol");
|
||||
XMLTools::XMLAttribute gridColW( L"w:w", FormatUtils::IntToWideString( _grid->at( i ) ) );
|
||||
gridCol.AppendAttribute( gridColW );
|
||||
_tblGrid->AppendChild( gridCol );
|
||||
}
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteString( _tblGrid->GetXMLString() );
|
||||
}
|
||||
}
|
||||
@ -1,115 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "PropertyExceptions.h"
|
||||
#include "ParagraphPropertyExceptions.h"
|
||||
#include "VirtualStreamReader.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class TablePropertyExceptions: public PropertyExceptions
|
||||
{
|
||||
public:
|
||||
/// Parses the bytes to retrieve a TAPX
|
||||
TablePropertyExceptions(unsigned char* bytes, int size, int nWordVersion) :
|
||||
PropertyExceptions(bytes, size, nWordVersion), m_bSkipShading97 (FALSE)
|
||||
{
|
||||
//not yet implemented
|
||||
}
|
||||
|
||||
virtual ~TablePropertyExceptions()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// Extracts the TAPX SPRMs out of a PAPX
|
||||
TablePropertyExceptions (ParagraphPropertyExceptions* papx, POLE::Stream* dataStream, int nWordVersion) :
|
||||
PropertyExceptions()
|
||||
{
|
||||
VirtualStreamReader oBinReader(dataStream, 0, nWordVersion);
|
||||
|
||||
m_bSkipShading97 = FALSE;
|
||||
|
||||
for (std::list<SinglePropertyModifier>::iterator oSpmIter = papx->grpprl->begin(); oSpmIter != papx->grpprl->end(); ++oSpmIter)
|
||||
{
|
||||
if (oSpmIter->OpCode == sprmTDefTableShd ||
|
||||
oSpmIter->OpCode == sprmTDefTableShd2nd ||
|
||||
oSpmIter->OpCode == sprmTDefTableShd3rd)
|
||||
{
|
||||
m_bSkipShading97 = TRUE;
|
||||
}
|
||||
|
||||
if (oSpmIter->Type == TAP)
|
||||
{
|
||||
grpprl->push_back(*oSpmIter);
|
||||
}
|
||||
else if (oSpmIter->OpCode == sprmPTableProps)
|
||||
{
|
||||
//there is a native TAP in the data stream
|
||||
unsigned int fc = FormatUtils::BytesToUInt32(oSpmIter->Arguments, 0, oSpmIter->argumentsSize);
|
||||
|
||||
//get the size of the following grpprl
|
||||
oBinReader.Seek(fc, 0/* STREAM_SEEK_SET*/);
|
||||
unsigned char* sizebytes = oBinReader.ReadBytes(2, true);
|
||||
unsigned short grpprlSize = FormatUtils::BytesToUInt16(sizebytes, 0, 2);
|
||||
|
||||
//read the grpprl
|
||||
unsigned char* grpprlBytes = oBinReader.ReadBytes(grpprlSize, true);
|
||||
|
||||
//parse the grpprl
|
||||
PropertyExceptions externalPx(grpprlBytes, grpprlSize, nWordVersion);
|
||||
|
||||
for (std::list<SinglePropertyModifier>::iterator oIter = externalPx.grpprl->begin(); oIter != externalPx.grpprl->end(); ++oIter)
|
||||
{
|
||||
if (oIter->Type == TAP)
|
||||
{
|
||||
grpprl->push_back(*oIter);
|
||||
}
|
||||
}
|
||||
|
||||
RELEASEARRAYOBJECTS(grpprlBytes);
|
||||
RELEASEARRAYOBJECTS(sizebytes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline bool IsSkipShading97 ()
|
||||
{
|
||||
return m_bSkipShading97;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
bool m_bSkipShading97; // пропускать правило от Word97
|
||||
};
|
||||
}
|
||||
@ -1,257 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include "TableRowPropertiesMapping.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
TableRowPropertiesMapping::TableRowPropertiesMapping (XMLTools::CStringXmlWriter* pWriter, CharacterPropertyExceptions* rowEndChpx) : PropertiesMapping(pWriter), _trPr(NULL), _tblPrEx(NULL), _rowEndChpx(NULL)
|
||||
{
|
||||
_trPr = new XMLTools::XMLElement(L"w:trPr");
|
||||
_tblPrEx = new XMLTools::XMLElement(L"w:tblPrEx");
|
||||
//_tblBorders = new XMLTools::XMLElement(L"w:tblBorders");
|
||||
_rowEndChpx = rowEndChpx;
|
||||
}
|
||||
|
||||
TableRowPropertiesMapping::~TableRowPropertiesMapping()
|
||||
{
|
||||
RELEASEOBJECT(_trPr);
|
||||
RELEASEOBJECT(_tblPrEx);
|
||||
}
|
||||
|
||||
void TableRowPropertiesMapping::Apply(IVisitable* visited)
|
||||
{
|
||||
TablePropertyExceptions* tapx = static_cast<TablePropertyExceptions*>( visited );
|
||||
|
||||
//delete infos
|
||||
RevisionData rev( _rowEndChpx );
|
||||
|
||||
if ( ( _rowEndChpx != NULL ) && ( rev.Type == Deleted ) )
|
||||
{
|
||||
XMLTools::XMLElement del( L"w:del" );
|
||||
_trPr->AppendChild( del );
|
||||
}
|
||||
|
||||
for ( std::list<SinglePropertyModifier>::iterator iter = tapx->grpprl->begin(); iter != tapx->grpprl->end(); iter++ )
|
||||
{
|
||||
switch ( iter->OpCode )
|
||||
{
|
||||
case sprmOldTDefTable:
|
||||
case sprmTDefTable:
|
||||
{
|
||||
//SprmTDefTable tdef = new SprmTDefTable(sprm.Arguments);
|
||||
}break;
|
||||
case sprmOldTTableHeader:
|
||||
case sprmTTableHeader:
|
||||
{ //header row
|
||||
|
||||
bool fHeader = ( iter->Arguments[0] != 0 ) ? (true) : (false);
|
||||
|
||||
if ( fHeader )
|
||||
{
|
||||
XMLTools::XMLElement header( L"w:tblHeader" );
|
||||
_trPr->AppendChild( header );
|
||||
}
|
||||
}break;
|
||||
case sprmTWidthAfter:
|
||||
{ //width after
|
||||
XMLTools::XMLElement wAfter( L"w:wAfter" );
|
||||
XMLTools::XMLAttribute wAfterValue( L"w:w", FormatUtils::IntToWideString( FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize ) ) );
|
||||
wAfter.AppendAttribute( wAfterValue );
|
||||
|
||||
XMLTools::XMLAttribute wAfterType( L"w:type", L"dxa" );
|
||||
wAfter.AppendAttribute( wAfterType );
|
||||
_trPr->AppendChild( wAfter, true );
|
||||
}break;
|
||||
case sprmTWidthBefore:
|
||||
{ //width before
|
||||
short before = FormatUtils::BytesToInt16( iter->Arguments, 1, iter->argumentsSize );
|
||||
|
||||
if ( before != 0 )
|
||||
{
|
||||
XMLTools::XMLElement wBefore( L"w:wBefore" );
|
||||
XMLTools::XMLAttribute wBeforeValue( L"w:w", FormatUtils::IntToWideString( before ) );
|
||||
wBefore.AppendAttribute( wBeforeValue );
|
||||
|
||||
XMLTools::XMLAttribute wBeforeType( L"w:type", L"dxa" );
|
||||
wBefore.AppendAttribute( wBeforeType );
|
||||
_trPr->AppendChild( wBefore, true );
|
||||
}
|
||||
}break;
|
||||
case sprmOldTDyaRowHeight:
|
||||
case sprmTDyaRowHeight:
|
||||
{ //row height
|
||||
XMLTools::XMLElement rowHeight( L"w:trHeight" );
|
||||
XMLTools::XMLAttribute rowHeightVal( L"w:val" );
|
||||
XMLTools::XMLAttribute rowHeightRule( L"w:hRule" );
|
||||
|
||||
short rH = FormatUtils::BytesToInt16( iter->Arguments, 0, iter->argumentsSize );
|
||||
|
||||
if ( rH > 0 )
|
||||
{
|
||||
rowHeightRule.SetValue( L"atLeast" );
|
||||
rowHeightVal.SetValue( FormatUtils::IntToWideString( rH ) );
|
||||
rowHeight.AppendAttribute( rowHeightVal );
|
||||
}
|
||||
else if( rH == 0 )
|
||||
{
|
||||
rowHeightRule.SetValue( L"auto" );
|
||||
}
|
||||
else
|
||||
{
|
||||
rowHeightRule.SetValue( L"exact" );
|
||||
rH *= -1;
|
||||
rowHeightVal.SetValue( FormatUtils::IntToWideString( rH ) );
|
||||
rowHeight.AppendAttribute( rowHeightVal );
|
||||
}
|
||||
|
||||
rowHeight.AppendAttribute( rowHeightRule );
|
||||
_trPr->AppendChild( rowHeight );
|
||||
}
|
||||
break;
|
||||
case sprmOldTFCantSplit:
|
||||
case sprmTFCantSplit:
|
||||
case sprmTFCantSplit90:
|
||||
{ //can't split
|
||||
appendFlagElement( _trPr, *iter, L"cantSplit", true );
|
||||
}break;
|
||||
|
||||
//div id
|
||||
case sprmTIpgp:// = PGPInfo.ipgpSelf (PGPInfo structure describes the border and margin properties)
|
||||
{
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
//borders 80 exceptions
|
||||
//case SinglePropertyModifier.OperationCode.sprmTTableBorders80:
|
||||
// unsigned char[] brc80 = new unsigned char[4];
|
||||
// //top border
|
||||
// Array.Copy(sprm.Arguments, 0, brc80, 0, 4);
|
||||
// brcTop = new BorderCode(brc80);
|
||||
// //left
|
||||
// Array.Copy(sprm.Arguments, 4, brc80, 0, 4);
|
||||
// brcLeft = new BorderCode(brc80);
|
||||
// //bottom
|
||||
// Array.Copy(sprm.Arguments, 8, brc80, 0, 4);
|
||||
// brcBottom = new BorderCode(brc80);
|
||||
// //right
|
||||
// Array.Copy(sprm.Arguments, 12, brc80, 0, 4);
|
||||
// brcRight = new BorderCode(brc80);
|
||||
// //inside H
|
||||
// Array.Copy(sprm.Arguments, 16, brc80, 0, 4);
|
||||
// brcHorz = new BorderCode(brc80);
|
||||
// //inside V
|
||||
// Array.Copy(sprm.Arguments, 20, brc80, 0, 4);
|
||||
// brcVert = new BorderCode(brc80);
|
||||
// break;
|
||||
|
||||
//border exceptions
|
||||
//case SinglePropertyModifier.OperationCode.sprmTTableBorders:
|
||||
// unsigned char[] brc = new unsigned char[8];
|
||||
// //top border
|
||||
// Array.Copy(sprm.Arguments, 0, brc, 0, 8);
|
||||
// brcTop = new BorderCode(brc);
|
||||
// //left
|
||||
// Array.Copy(sprm.Arguments, 8, brc, 0, 8);
|
||||
// brcLeft = new BorderCode(brc);
|
||||
// //bottom
|
||||
// Array.Copy(sprm.Arguments, 16, brc, 0, 8);
|
||||
// brcBottom = new BorderCode(brc);
|
||||
// //right
|
||||
// Array.Copy(sprm.Arguments, 24, brc, 0, 8);
|
||||
// brcRight = new BorderCode(brc);
|
||||
// //inside H
|
||||
// Array.Copy(sprm.Arguments, 32, brc, 0, 8);
|
||||
// brcHorz = new BorderCode(brc);
|
||||
// //inside V
|
||||
// Array.Copy(sprm.Arguments, 40, brc, 0, 8);
|
||||
// brcVert = new BorderCode(brc);
|
||||
// break;
|
||||
}
|
||||
}
|
||||
|
||||
//set borders
|
||||
//if (brcTop != null)
|
||||
//{
|
||||
// XmlNode topBorder = _nodeFactory.CreateNode(XmlNodeType.Element, "w", "top", OpenXmlNamespaces.WordprocessingML);
|
||||
// appendBorderAttributes(brcTop, topBorder);
|
||||
// addOrSetBorder(_tblBorders, topBorder);
|
||||
//}
|
||||
//if (brcLeft != null)
|
||||
//{
|
||||
// XmlNode leftBorder = _nodeFactory.CreateNode(XmlNodeType.Element, "w", "left", OpenXmlNamespaces.WordprocessingML);
|
||||
// appendBorderAttributes(brcLeft, leftBorder);
|
||||
// addOrSetBorder(_tblBorders, leftBorder);
|
||||
//}
|
||||
//if (brcBottom != null)
|
||||
//{
|
||||
// XmlNode bottomBorder = _nodeFactory.CreateNode(XmlNodeType.Element, "w", "bottom", OpenXmlNamespaces.WordprocessingML);
|
||||
// appendBorderAttributes(brcBottom, bottomBorder);
|
||||
// addOrSetBorder(_tblBorders, bottomBorder);
|
||||
//}
|
||||
//if (brcRight != null)
|
||||
//{
|
||||
// XmlNode rightBorder = _nodeFactory.CreateNode(XmlNodeType.Element, "w", "right", OpenXmlNamespaces.WordprocessingML);
|
||||
// appendBorderAttributes(brcRight, rightBorder);
|
||||
// addOrSetBorder(_tblBorders, rightBorder);
|
||||
//}
|
||||
//if (brcHorz != null)
|
||||
//{
|
||||
// XmlNode insideHBorder = _nodeFactory.CreateNode(XmlNodeType.Element, "w", "insideH", OpenXmlNamespaces.WordprocessingML);
|
||||
// appendBorderAttributes(brcHorz, insideHBorder);
|
||||
// addOrSetBorder(_tblBorders, insideHBorder);
|
||||
//}
|
||||
//if (brcVert != null)
|
||||
//{
|
||||
// XmlNode insideVBorder = _nodeFactory.CreateNode(XmlNodeType.Element, "w", "insideV", OpenXmlNamespaces.WordprocessingML);
|
||||
// appendBorderAttributes(brcVert, insideVBorder);
|
||||
// addOrSetBorder(_tblBorders, insideVBorder);
|
||||
//}
|
||||
//if (_tblBorders.ChildNodes.Count > 0)
|
||||
//{
|
||||
// _tblPrEx.AppendChild(_tblBorders);
|
||||
//}
|
||||
|
||||
//set exceptions
|
||||
if ( _tblPrEx->GetChildCount() > 0 )
|
||||
{
|
||||
_trPr->AppendChild( *(_tblPrEx) );
|
||||
}
|
||||
|
||||
//write Properties
|
||||
if ( ( _trPr->GetChildCount() > 0 ) || ( _trPr->GetAttributeCount() > 0 ) )
|
||||
{
|
||||
m_pXmlWriter->WriteString( _trPr->GetXMLString() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,151 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "ByteStructure.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
// BreaK Descriptor (BKD)
|
||||
class Tbkd : public ByteStructure
|
||||
{
|
||||
public:
|
||||
static const int STRUCTURE_SIZE = 6;
|
||||
|
||||
Tbkd() : ipgd(0), itxbxs(0), dcpDepend(0), icol(0), fTableBreak(false), fColumnBreak(false), fMarked(false), fUnk(false), fTextOverflow(false)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ~Tbkd()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ByteStructure* ConstructObject (VirtualStreamReader* reader, int length)
|
||||
{
|
||||
Tbkd* pTbkd = new Tbkd();
|
||||
|
||||
pTbkd->ipgd = reader->ReadInt16();
|
||||
pTbkd->itxbxs = pTbkd->ipgd;
|
||||
pTbkd->dcpDepend = reader->ReadInt16();
|
||||
|
||||
int flag = (int)reader->ReadInt16();
|
||||
|
||||
pTbkd->icol = (unsigned short)FormatUtils::BitmaskToInt(flag, 0x00FF);
|
||||
pTbkd->fTableBreak = FormatUtils::BitmaskToBool(flag, 0x0100);
|
||||
pTbkd->fColumnBreak = FormatUtils::BitmaskToBool(flag, 0x0200);
|
||||
pTbkd->fMarked = FormatUtils::BitmaskToBool(flag, 0x0400);
|
||||
pTbkd->fUnk = FormatUtils::BitmaskToBool(flag, 0x0800);
|
||||
pTbkd->fTextOverflow = FormatUtils::BitmaskToBool(flag, 0x1000);
|
||||
|
||||
return static_cast<ByteStructure*>(pTbkd);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
/// Except in textbox BKD, index to PGD in plfpgd that describes the page this break is on
|
||||
short ipgd;
|
||||
/// In textbox BKD
|
||||
short itxbxs;
|
||||
/// Number of cp's considered for this break; note that the CP's described by cpDepend in this break reside in the next BKD
|
||||
short dcpDepend;
|
||||
unsigned short icol;
|
||||
/// When true, this indicates that this is a table break.
|
||||
bool fTableBreak;
|
||||
/// When true, this indicates that this is a column break.
|
||||
bool fColumnBreak;
|
||||
/// Used temporarily while Word is running.
|
||||
bool fMarked;
|
||||
/// In textbox BKD, when true indicates cpLim of this textbox is not valid
|
||||
bool fUnk;
|
||||
/// In textbox BKD, when true indicates that text overflows the end of this textbox
|
||||
bool fTextOverflow;
|
||||
};
|
||||
|
||||
class FTXBXS : public ByteStructure
|
||||
{
|
||||
friend class TextboxMapping;
|
||||
public:
|
||||
static const int STRUCTURE_SIZE = 22;
|
||||
|
||||
struct FTXBXSReusable
|
||||
{
|
||||
int iNextReuse;
|
||||
int cReusable;
|
||||
};
|
||||
|
||||
struct FTXBXNonReusable
|
||||
{
|
||||
int cTxbx;
|
||||
int cTxbxEdit; // This value MUST be zero and MUST be ignored.
|
||||
};
|
||||
|
||||
FTXBXS ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ~FTXBXS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
virtual ByteStructure* ConstructObject (VirtualStreamReader* reader, int length)
|
||||
{
|
||||
FTXBXS* pFTXBXS = new FTXBXS();
|
||||
if (!pFTXBXS) return NULL;
|
||||
|
||||
pFTXBXS->reusable01 = reader->ReadInt32();
|
||||
pFTXBXS->reusable02 = reader->ReadInt32();
|
||||
|
||||
pFTXBXS->fReusable = reader->ReadInt16();
|
||||
|
||||
pFTXBXS->itxbxsDest = reader->ReadInt32();
|
||||
pFTXBXS->lid = reader->ReadInt32();
|
||||
pFTXBXS->txidUndo = reader->ReadInt32();
|
||||
|
||||
return static_cast<ByteStructure*>(pFTXBXS);
|
||||
}
|
||||
|
||||
private:
|
||||
int reusable01;
|
||||
int reusable02;
|
||||
|
||||
short fReusable; // ставим в 0 потому что один TbRef привязан к одному элементу
|
||||
|
||||
int itxbxsDest; // This field MUST be ignored.
|
||||
int lid;
|
||||
int txidUndo; // This value MUST be zero and MUST be ignored.
|
||||
};
|
||||
}
|
||||
@ -1,184 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Converter.h"
|
||||
|
||||
#include "TextboxMapping.h"
|
||||
#include "TableMapping.h"
|
||||
#include "FooterMapping.h"
|
||||
#include "HeaderMapping.h"
|
||||
#include "MainDocumentMapping.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
int TextboxMapping::TextboxCount = 0;
|
||||
|
||||
TextboxMapping::TextboxMapping (ConversionContext* ctx, int nTBIndex, XMLTools::CStringXmlWriter* writer, IMapping* caller ): DocumentMapping( ctx, writer, caller ), m_nTBIndex(0)
|
||||
{
|
||||
TextboxCount++;
|
||||
m_nTBIndex = nTBIndex;
|
||||
SetInset(-1,-1,-1,-1);
|
||||
}
|
||||
|
||||
|
||||
TextboxMapping::TextboxMapping (ConversionContext* ctx, XMLTools::CStringXmlWriter* writer, IMapping* caller) : DocumentMapping( ctx, writer, caller ), m_nTBIndex(0)
|
||||
{
|
||||
TextboxCount++;
|
||||
m_nTBIndex = TextboxCount - 1;
|
||||
SetInset(-1,-1,-1,-1);
|
||||
}
|
||||
|
||||
TextboxMapping::~TextboxMapping()
|
||||
{
|
||||
//TextboxCount--;
|
||||
}
|
||||
}
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
void TextboxMapping::SetTextboxStyle(const std::wstring & style)
|
||||
{
|
||||
m_sTextBoxStyle = style;
|
||||
}
|
||||
|
||||
void TextboxMapping::SetInset (int nLeft, int nTop, int nRight, int nBottom)
|
||||
{
|
||||
//emu to pt (1 pt = 12700)
|
||||
m_dxTextLeft = nLeft / 12700.;
|
||||
m_dyTextTop = nTop / 12700.;
|
||||
m_dxTextRight = nRight / 12700.;
|
||||
m_dyTextBottom = nBottom / 12700.;
|
||||
}
|
||||
|
||||
void TextboxMapping::Apply (IVisitable* visited)
|
||||
{
|
||||
m_document = static_cast<WordDocument*>(visited);
|
||||
|
||||
if (m_document)
|
||||
{
|
||||
//if (m_nTBIndex < m_document->TextboxBreakPlex->Elements.size())
|
||||
// return;
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin(L"v:textbox", true);
|
||||
if(m_dxTextLeft >= 0 && m_dyTextTop >= 0 && m_dxTextRight >= 0 && m_dyTextBottom >= 0)
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"inset" , FormatUtils::DoubleToWideString(m_dxTextLeft) + L"pt," +
|
||||
FormatUtils::DoubleToWideString(m_dyTextTop) + L"pt," +
|
||||
FormatUtils::DoubleToWideString(m_dxTextRight) + L"pt," +
|
||||
FormatUtils::DoubleToWideString(m_dyTextBottom) + L"pt");
|
||||
}
|
||||
if (!m_sTextBoxStyle.empty())
|
||||
{
|
||||
m_pXmlWriter->WriteAttribute( L"style", m_sTextBoxStyle);
|
||||
}
|
||||
m_pXmlWriter->WriteNodeEnd( L"", true, false );
|
||||
|
||||
m_pXmlWriter->WriteNodeBegin( L"w:txbxContent" );
|
||||
|
||||
int cp = 0;
|
||||
int cpEnd = 0;
|
||||
Tbkd* bkd = NULL;
|
||||
|
||||
int txtbxSubdocStart =
|
||||
m_document->FIB->m_RgLw97.ccpText +
|
||||
m_document->FIB->m_RgLw97.ccpFtn +
|
||||
m_document->FIB->m_RgLw97.ccpHdr +
|
||||
m_document->FIB->m_RgLw97.ccpAtn +
|
||||
m_document->FIB->m_RgLw97.ccpEdn ;
|
||||
|
||||
if (typeid(*_caller) == typeid(MainDocumentMapping))
|
||||
{
|
||||
if (m_nTBIndex < m_document->TextboxBreakPlex->Elements.size() )//file(21).doc
|
||||
{
|
||||
bkd = static_cast<Tbkd*>(m_document->TextboxBreakPlex->Elements[m_nTBIndex]);
|
||||
}
|
||||
|
||||
if (m_nTBIndex + 1 < m_document->TextboxBreakPlex->CharacterPositions.size())
|
||||
{
|
||||
cp = txtbxSubdocStart + m_document->TextboxBreakPlex->CharacterPositions[m_nTBIndex];
|
||||
cpEnd = txtbxSubdocStart + m_document->TextboxBreakPlex->CharacterPositions[m_nTBIndex + 1];
|
||||
}
|
||||
else if (m_nTBIndex + 1 < m_document->TextboxIndividualPlex->CharacterPositions.size())
|
||||
{
|
||||
//todooo сделать чище
|
||||
cp = m_document->TextboxIndividualPlex->CharacterPositions[m_nTBIndex] + 2;
|
||||
cpEnd = m_document->TextboxIndividualPlex->CharacterPositions[m_nTBIndex + 1];
|
||||
}
|
||||
}
|
||||
else if ((typeid(*_caller) == typeid(HeaderMapping)) || (typeid(*_caller) == typeid(FooterMapping)))
|
||||
{
|
||||
txtbxSubdocStart += m_document->FIB->m_RgLw97.ccpTxbx;
|
||||
|
||||
bkd = static_cast<Tbkd*>(m_document->TextboxBreakPlexHeader->Elements[m_nTBIndex]);
|
||||
|
||||
cp = txtbxSubdocStart + m_document->TextboxBreakPlexHeader->CharacterPositions[m_nTBIndex];
|
||||
cpEnd = txtbxSubdocStart + m_document->TextboxBreakPlexHeader->CharacterPositions[m_nTBIndex + 1];
|
||||
}
|
||||
|
||||
_isTextBoxContent = true;
|
||||
|
||||
//convert the textbox text
|
||||
_lastValidPapx = (*(m_document->AllPapxFkps->begin()))->grppapx[0];
|
||||
|
||||
ParagraphPropertyExceptions* papx_prev = NULL;
|
||||
while (cp < cpEnd)
|
||||
{
|
||||
int fc = m_document->FindFileCharPos(cp);
|
||||
if (fc < 0) break;
|
||||
|
||||
ParagraphPropertyExceptions* papx = findValidPapx( fc );
|
||||
if (papx_prev && papx_prev == papx)//file(21).doc
|
||||
break;
|
||||
papx_prev = papx;
|
||||
|
||||
TableInfo tai( papx, m_document->nWordVersion );
|
||||
|
||||
if ( tai.fInTable )
|
||||
{
|
||||
//this PAPX is for a table
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
table.Convert( this );
|
||||
cp = table.GetCPEnd();
|
||||
}
|
||||
else
|
||||
{
|
||||
//this PAPX is for a normal paragraph
|
||||
cp = writeParagraph( cp, 0x7fffffff );
|
||||
}
|
||||
}
|
||||
_isTextBoxContent = false;
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:txbxContent" );
|
||||
m_pXmlWriter->WriteNodeEnd( L"v:textbox" );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,294 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IBinaryReader.h"
|
||||
#include "../Common/FormatUtils.h"
|
||||
#include "../../Common/3dParty/pole/pole.h"
|
||||
#include "../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
|
||||
class VirtualStreamReader : public IBinaryReader
|
||||
{
|
||||
public:
|
||||
VirtualStreamReader (POLE::Stream* _stream, ULONG _position , int _nWordVersion) :
|
||||
nWordVersion(_nWordVersion), stream(_stream), position(_position)
|
||||
{
|
||||
if ( stream == NULL )return;
|
||||
|
||||
stream->seek(position);
|
||||
}
|
||||
|
||||
virtual ~VirtualStreamReader()
|
||||
{
|
||||
}
|
||||
|
||||
virtual unsigned short ReadUInt16()
|
||||
{
|
||||
unsigned short rdUShort = 0;
|
||||
|
||||
if (( stream != NULL ) && (position + 2 < stream->size()))
|
||||
{
|
||||
stream->seek( position );
|
||||
stream->read((unsigned char*)(&rdUShort), sizeof( rdUShort ));
|
||||
}
|
||||
position += sizeof( rdUShort );
|
||||
|
||||
return rdUShort;
|
||||
}
|
||||
|
||||
virtual short ReadInt16()
|
||||
{
|
||||
short rdShort = 0;
|
||||
|
||||
if (( stream != NULL ) && (position + 2 < stream->size()))
|
||||
{
|
||||
stream->seek( position );
|
||||
stream->read((unsigned char*)(&rdShort), sizeof( rdShort ));
|
||||
|
||||
}
|
||||
position += sizeof( rdShort );
|
||||
|
||||
return rdShort;
|
||||
}
|
||||
|
||||
virtual int ReadInt32()
|
||||
{
|
||||
_INT32 rdInt = 0;
|
||||
|
||||
if (( stream != NULL ) && (position + 4 < stream->size()))
|
||||
{
|
||||
stream->seek( position );
|
||||
stream->read( (unsigned char*) &rdInt, sizeof( rdInt ) );
|
||||
|
||||
}
|
||||
position += sizeof( rdInt );
|
||||
|
||||
return rdInt;
|
||||
}
|
||||
|
||||
virtual unsigned int ReadUInt32()
|
||||
{
|
||||
_UINT32 rdUInt = 0;
|
||||
|
||||
if (( stream != NULL ) && (position + 4 < stream->size()))
|
||||
{
|
||||
stream->seek( position );
|
||||
stream->read((unsigned char*) &rdUInt, sizeof( rdUInt ) );
|
||||
|
||||
}
|
||||
position += sizeof( rdUInt );
|
||||
|
||||
return rdUInt;
|
||||
}
|
||||
|
||||
virtual unsigned char ReadByte()
|
||||
{
|
||||
unsigned char rdByte = 0;
|
||||
|
||||
if (( stream != NULL ) && (position + 1 < stream->size()))
|
||||
{
|
||||
stream->seek( position);
|
||||
stream->read( (unsigned char*)&rdByte, sizeof( rdByte ) );
|
||||
|
||||
}
|
||||
position += sizeof( rdByte );
|
||||
|
||||
return rdByte;
|
||||
}
|
||||
|
||||
virtual unsigned char* ReadBytes( unsigned int count, bool isResultNeeded )
|
||||
{
|
||||
unsigned char *rdBytes = NULL;
|
||||
|
||||
if ( count > 0 && isResultNeeded)
|
||||
{
|
||||
if (position + count > stream->size())
|
||||
{
|
||||
if (position > stream->size()) count = 0;
|
||||
else count = (unsigned int)(stream->size() - position);
|
||||
}
|
||||
rdBytes = new unsigned char[count];
|
||||
}
|
||||
|
||||
if ( stream != NULL && rdBytes != NULL )
|
||||
{
|
||||
stream->seek( position );
|
||||
count = (unsigned int)stream->read( rdBytes, count );
|
||||
}
|
||||
|
||||
position += count;
|
||||
|
||||
return rdBytes;
|
||||
}
|
||||
|
||||
virtual unsigned long GetPosition() const
|
||||
{
|
||||
return (unsigned long)this->position;
|
||||
}
|
||||
|
||||
virtual unsigned long GetSize() const
|
||||
{
|
||||
unsigned long size = 0;
|
||||
|
||||
if ( stream != NULL )
|
||||
{
|
||||
size = (unsigned long)stream->size();
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
virtual int Seek( int offset, int origin )
|
||||
{
|
||||
if ( stream != NULL )
|
||||
{
|
||||
if (origin > 1)
|
||||
{
|
||||
|
||||
}
|
||||
stream->seek( offset );
|
||||
position = offset;
|
||||
return offset;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring ReadXst()
|
||||
{
|
||||
if (!stream) return L"";
|
||||
std::wstring wstrResult;
|
||||
|
||||
unsigned char* xstz = NULL;
|
||||
unsigned char* cch = NULL;
|
||||
|
||||
if (nWordVersion > 0)
|
||||
{
|
||||
int cchSize = 1;
|
||||
cch = ReadBytes( cchSize, true );
|
||||
|
||||
int xstzSize = DocFileFormat::FormatUtils::BytesToUChar( cch, 0, cchSize ) * 1;
|
||||
xstz = ReadBytes(xstzSize, true);
|
||||
|
||||
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &wstrResult, xstz, xstzSize, ENCODING_WINDOWS_1250 );
|
||||
}
|
||||
else
|
||||
{
|
||||
int cchSize = 2;
|
||||
cch = ReadBytes( cchSize, true );
|
||||
|
||||
int xstzSize = DocFileFormat::FormatUtils::BytesToInt16( cch, 0, cchSize ) * 2;
|
||||
xstz = ReadBytes(xstzSize, true);
|
||||
|
||||
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &wstrResult, xstz, xstzSize, ENCODING_UTF16 );
|
||||
}
|
||||
|
||||
RELEASEARRAYOBJECTS(xstz);
|
||||
RELEASEARRAYOBJECTS(cch);
|
||||
|
||||
return wstrResult;
|
||||
}
|
||||
|
||||
/// Read a length prefixed Unicode string from the given stream.
|
||||
/// The string must have the following structure:
|
||||
/// unsigned char 1 - 4: Character count (cch)
|
||||
/// unsigned char 5 - (cch*2)+4: Unicode characters terminated by \0
|
||||
std::wstring ReadLengthPrefixedUnicodeString()
|
||||
{
|
||||
std::wstring result;
|
||||
|
||||
int cch = ReadInt32();
|
||||
|
||||
if ( cch > 0 )
|
||||
{
|
||||
//dont read the terminating zero
|
||||
unsigned char* stringBytes = ReadBytes( ( cch * 2 ), true );
|
||||
|
||||
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &result, stringBytes, ( ( cch * 2 ) - 2 ), ENCODING_UTF16 );
|
||||
|
||||
RELEASEARRAYOBJECTS( stringBytes );
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// Read a length prefixed ANSI string from the given stream.
|
||||
/// The string must have the following structure:
|
||||
/// unsigned char 1-4: Character count (cch)
|
||||
/// unsigned char 5-cch+4: ANSI characters terminated by \0
|
||||
std::wstring ReadLengthPrefixedAnsiString(unsigned int max_size)
|
||||
{
|
||||
std::wstring result;
|
||||
|
||||
unsigned int cch = ReadUInt32();
|
||||
|
||||
unsigned char* stringBytes = NULL;
|
||||
|
||||
if (cch > max_size)
|
||||
{
|
||||
//error ... skip to 0
|
||||
unsigned int pos_orinal = GetPosition();
|
||||
unsigned int pos = 0;
|
||||
|
||||
stringBytes = ReadBytes( max_size, true );
|
||||
|
||||
if (stringBytes)
|
||||
{
|
||||
while(pos < max_size)
|
||||
{
|
||||
if (stringBytes[pos] == 0)
|
||||
break;
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
Seek(pos_orinal + pos - 1, 0);
|
||||
}else
|
||||
if ( cch > 0 )
|
||||
{
|
||||
//dont read the terminating zero
|
||||
stringBytes = ReadBytes( cch, true );
|
||||
|
||||
DocFileFormat::FormatUtils::GetSTLCollectionFromBytes<std::wstring>( &result, stringBytes, ( cch - 1 ), ENCODING_WINDOWS_1250);
|
||||
|
||||
}
|
||||
RELEASEARRAYOBJECTS( stringBytes );
|
||||
|
||||
return result;
|
||||
}
|
||||
int nWordVersion;
|
||||
private:
|
||||
|
||||
POLE::uint64 position;
|
||||
POLE::Stream* stream;
|
||||
};
|
||||
@ -1,75 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "VirtualStreamReader.h"
|
||||
#include "ByteStructure.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
class WideString: public std::wstring, public ByteStructure
|
||||
{
|
||||
public:
|
||||
WideString( VirtualStreamReader reader, int length ): std::wstring()
|
||||
{
|
||||
}
|
||||
|
||||
WideString(): std::wstring()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~WideString()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ByteStructure* ConstructObject( VirtualStreamReader* reader, int length )
|
||||
{
|
||||
WideString* newObject = new WideString();
|
||||
|
||||
unsigned char *bytes = NULL;
|
||||
bytes = reader->ReadBytes( length, true );
|
||||
|
||||
//It's a real string table
|
||||
if (reader->nWordVersion > 0)
|
||||
{
|
||||
FormatUtils::GetSTLCollectionFromBytes<WideString>( newObject, bytes, length, ENCODING_WINDOWS_1250 );
|
||||
}
|
||||
else
|
||||
{
|
||||
FormatUtils::GetSTLCollectionFromBytes<WideString>( newObject, bytes, length, ENCODING_UTF16 );
|
||||
}
|
||||
RELEASEARRAYOBJECTS( bytes );
|
||||
|
||||
return static_cast<ByteStructure*>( newObject );
|
||||
}
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,183 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "WordprocessingDocument.h"
|
||||
|
||||
#include "../../DesktopEditor/common/Directory.h"
|
||||
#include "../../DesktopEditor/common/SystemUtils.h"
|
||||
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/App.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Core.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/ContentTypes.h"
|
||||
|
||||
namespace DocFileFormat
|
||||
{
|
||||
WordprocessingDocument::WordprocessingDocument(const std::wstring & _pathOutput, const WordDocument* _docFile) :
|
||||
OpenXmlPackage( _docFile )
|
||||
{
|
||||
m_strOutputPath = _pathOutput;
|
||||
}
|
||||
|
||||
WordprocessingDocument::~WordprocessingDocument()
|
||||
{
|
||||
}
|
||||
|
||||
void WordprocessingDocument::SaveDocument(bool &bMacros)
|
||||
{
|
||||
std::wstring pathWord = m_strOutputPath + FILE_SEPARATOR_STR + L"word" ;
|
||||
NSDirectory::CreateDirectory( pathWord );
|
||||
|
||||
if (bMacros && docFile->GetStorage()->isDirectory(L"Macros"))
|
||||
{
|
||||
std::wstring sVbaProjectFile = pathWord + FILE_SEPARATOR_STR + L"vbaProject.bin";
|
||||
|
||||
POLE::Storage *storageVbaProject = new POLE::Storage(sVbaProjectFile.c_str());
|
||||
|
||||
if ((storageVbaProject) && (storageVbaProject->open(true, true)))
|
||||
{
|
||||
docFile->GetStorage()->copy(0, L"Macros/", storageVbaProject, false);
|
||||
|
||||
storageVbaProject->close();
|
||||
delete storageVbaProject;
|
||||
|
||||
RegisterDocumentMacros();
|
||||
RegisterVbaProject();
|
||||
//output_document->get_xl_files().add_vba_project();
|
||||
}
|
||||
else bMacros = false;
|
||||
}
|
||||
else
|
||||
bMacros = false;
|
||||
|
||||
if (!bMacros)
|
||||
{
|
||||
RegisterDocument();
|
||||
}
|
||||
OOX::CContentTypes oContentTypes;
|
||||
OOX::CPath pathDocProps = m_strOutputPath + FILE_SEPARATOR_STR + _T("docProps");
|
||||
NSDirectory::CreateDirectory(pathDocProps.GetPath());
|
||||
|
||||
OOX::CPath DocProps = std::wstring(_T("docProps"));
|
||||
|
||||
OOX::CApp* pApp = new OOX::CApp(NULL);
|
||||
if (pApp)
|
||||
{
|
||||
std::wstring sApplication = NSSystemUtils::GetEnvVariable(NSSystemUtils::gc_EnvApplicationName);
|
||||
if (sApplication.empty())
|
||||
sApplication = NSSystemUtils::gc_EnvApplicationNameDefault;
|
||||
pApp->SetApplication(sApplication);
|
||||
#if defined(INTVER)
|
||||
pApp->SetAppVersion(VALUE2STR(INTVER));
|
||||
#endif
|
||||
pApp->SetDocSecurity(0);
|
||||
pApp->SetScaleCrop(false);
|
||||
pApp->SetLinksUpToDate(false);
|
||||
pApp->SetSharedDoc(false);
|
||||
pApp->SetHyperlinksChanged(false);
|
||||
|
||||
pApp->write(pathDocProps + FILE_SEPARATOR_STR + _T("app.xml"), DocProps, oContentTypes);
|
||||
delete pApp;
|
||||
}
|
||||
OOX::CCore* pCore = new OOX::CCore(NULL);
|
||||
if (pCore)
|
||||
{
|
||||
pCore->SetCreator(_T(""));
|
||||
pCore->SetLastModifiedBy(_T(""));
|
||||
pCore->write(pathDocProps + FILE_SEPARATOR_STR + _T("core.xml"), DocProps, oContentTypes);
|
||||
delete pCore;
|
||||
}
|
||||
RegisterDocPr();
|
||||
|
||||
WritePackage();
|
||||
|
||||
//Write main content. (word directory)
|
||||
|
||||
SaveToFile(pathWord, std::wstring( L"document.xml" ), DocumentXML );
|
||||
SaveToFile(pathWord, std::wstring( L"fontTable.xml" ), FontTableXML );
|
||||
SaveToFile(pathWord, std::wstring( L"styles.xml" ), StyleSheetXML );
|
||||
SaveToFile(pathWord, std::wstring( L"footnotes.xml" ), FootnotesXML );
|
||||
SaveToFile(pathWord, std::wstring( L"endnotes.xml" ), EndnotesXML );
|
||||
SaveToFile(pathWord, std::wstring( L"numbering.xml" ), NumberingXML );
|
||||
SaveToFile(pathWord, std::wstring( L"comments.xml" ), CommentsXML );
|
||||
SaveToFile(pathWord, std::wstring( L"commentsExtended.xml"),CommentsExtendedXML );
|
||||
SaveToFile(pathWord, std::wstring( L"settings.xml" ), SettingsXML );
|
||||
SaveToFile(pathWord, std::wstring( L"customizations.xml" ), CommandTableXML );
|
||||
|
||||
if (!ImagesList.empty())
|
||||
{
|
||||
std::wstring pathMedia = pathWord + FILE_SEPARATOR_STR + L"media";
|
||||
|
||||
NSDirectory::CreateDirectory(pathMedia);
|
||||
|
||||
int i = 1;
|
||||
|
||||
for (std::list<ImageFileStructure>::iterator iter = ImagesList.begin(); iter != ImagesList.end(); ++iter)
|
||||
{
|
||||
SaveToFile(pathMedia, std::wstring(L"image" ) + FormatUtils::IntToWideString(i++) + iter->ext, (void*)iter->data.get(), iter->size);
|
||||
}
|
||||
}
|
||||
|
||||
if (!OleObjectsList.empty())
|
||||
{
|
||||
std::wstring pathObjects = pathWord + FILE_SEPARATOR_STR + L"embeddings" ;
|
||||
NSDirectory::CreateDirectory( pathObjects );
|
||||
|
||||
int i = 1;
|
||||
for (std::list<OleObjectFileStructure>::iterator iter = OleObjectsList.begin(); iter != OleObjectsList.end(); ++iter)
|
||||
{
|
||||
std::wstring fileName = pathObjects + FILE_SEPARATOR_STR + L"oleObject" + FormatUtils::IntToWideString(i++) + iter->ext;
|
||||
|
||||
if (!iter->data.empty())
|
||||
{
|
||||
SaveEmbeddedObject(fileName, *iter);
|
||||
}
|
||||
else
|
||||
{
|
||||
SaveOLEObject( fileName, *iter );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int headersCount = 0;
|
||||
int footersCount = 0;
|
||||
|
||||
for (std::list<std::wstring>::iterator iter = HeaderXMLList.begin(); iter != HeaderXMLList.end(); ++iter)
|
||||
{
|
||||
SaveToFile(pathWord, ( std::wstring( L"header" ) + FormatUtils::IntToWideString(++headersCount) + std::wstring( L".xml" ) ), *iter);
|
||||
}
|
||||
|
||||
for (std::list<std::wstring>::iterator iter = FooterXMLList.begin(); iter != FooterXMLList.end(); ++iter)
|
||||
{
|
||||
SaveToFile(pathWord, ( std::wstring( L"footer" ) + FormatUtils::IntToWideString(++footersCount) + std::wstring( L".xml" ) ), *iter);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,268 +0,0 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2014-12-16T18:28:23
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT -= core gui
|
||||
|
||||
TARGET = DocFormatLib
|
||||
TEMPLATE = lib
|
||||
CONFIG += staticlib
|
||||
|
||||
CORE_ROOT_DIR = $$PWD/../../..
|
||||
PWD_ROOT_DIR = $$PWD
|
||||
|
||||
CONFIG += core_x2t
|
||||
include(../../../Common/base.pri)
|
||||
|
||||
#BOOST
|
||||
include($$PWD/../../../Common/3dParty/boost/boost.pri)
|
||||
|
||||
DEFINES += UNICODE \
|
||||
_UNICODE \
|
||||
DONT_WRITE_EMBEDDED_FONTS
|
||||
|
||||
core_mac {
|
||||
#QMAKE_MAC_SDK = macosx10.11
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
../DocFormatLib.cpp \
|
||||
../../../Common/3dParty/pole/pole.cpp \
|
||||
../../DocDocxConverter/EncryptionHeader.cpp \
|
||||
../../DocDocxConverter/DrawingPrimitives.cpp \
|
||||
../../DocDocxConverter/Spa.cpp \
|
||||
../../DocDocxConverter/OleObject.cpp
|
||||
|
||||
core_release {
|
||||
SOURCES += \
|
||||
docformatlib_converter.cpp
|
||||
}
|
||||
|
||||
core_debug {
|
||||
SOURCES += \
|
||||
../../DocDocxConverter/AnnotationReferenceDescriptor.cpp \
|
||||
../../DocDocxConverter/CharacterPropertiesMapping.cpp \
|
||||
../../DocDocxConverter/Converter.cpp \
|
||||
../../DocDocxConverter/DocumentMapping.cpp \
|
||||
../../DocDocxConverter/DocumentProperties.cpp \
|
||||
../../DocDocxConverter/FontFamilyName.cpp \
|
||||
../../DocDocxConverter/FontTableMapping.cpp \
|
||||
../../DocDocxConverter/FooterMapping.cpp \
|
||||
../../DocDocxConverter/FormattedDiskPageCHPX.cpp \
|
||||
../../DocDocxConverter/FormattedDiskPagePAPX.cpp \
|
||||
../../DocDocxConverter/HeaderAndFooterTable.cpp \
|
||||
../../DocDocxConverter/HeaderMapping.cpp \
|
||||
../../DocDocxConverter/LanguageIdMapping.cpp \
|
||||
../../DocDocxConverter/ListData.cpp \
|
||||
../../DocDocxConverter/ListLevel.cpp \
|
||||
../../DocDocxConverter/ListTable.cpp \
|
||||
../../DocDocxConverter/MainDocumentMapping.cpp \
|
||||
../../DocDocxConverter/NumberingMapping.cpp \
|
||||
../../DocDocxConverter/OpenXmlPackage.cpp \
|
||||
../../DocDocxConverter/ParagraphHeight.cpp \
|
||||
../../DocDocxConverter/ParagraphPropertiesMapping.cpp \
|
||||
../../DocDocxConverter/ParagraphPropertyExceptions.cpp \
|
||||
../../DocDocxConverter/PictureDescriptor.cpp \
|
||||
../../DocDocxConverter/PieceTable.cpp \
|
||||
../../DocDocxConverter/PropertiesMapping.cpp \
|
||||
../../DocDocxConverter/PropertyExceptions.cpp \
|
||||
../../DocDocxConverter/RevisionData.cpp \
|
||||
../../DocDocxConverter/SectionPropertiesMapping.cpp \
|
||||
../../DocDocxConverter/SettingsMapping.cpp \
|
||||
../../DocDocxConverter/SinglePropertyModifier.cpp \
|
||||
../../DocDocxConverter/StyleSheet.cpp \
|
||||
../../DocDocxConverter/StyleSheetDescription.cpp \
|
||||
../../DocDocxConverter/StyleSheetInformation.cpp \
|
||||
../../DocDocxConverter/StyleSheetMapping.cpp \
|
||||
../../DocDocxConverter/TableCellPropertiesMapping.cpp \
|
||||
../../DocDocxConverter/TableMapping.cpp \
|
||||
../../DocDocxConverter/TablePropertiesMapping.cpp \
|
||||
../../DocDocxConverter/TableRowPropertiesMapping.cpp \
|
||||
../../DocDocxConverter/TextboxMapping.cpp \
|
||||
../../DocDocxConverter/VMLPictureMapping.cpp \
|
||||
../../DocDocxConverter/VMLShapeMapping.cpp \
|
||||
../../DocDocxConverter/VMLShapeTypeMapping.cpp \
|
||||
../../DocDocxConverter/WordDocument.cpp \
|
||||
../../DocDocxConverter/WordprocessingDocument.cpp \
|
||||
../../DocDocxConverter/FormFieldData.cpp \
|
||||
../../DocDocxConverter/OfficeDrawing/Record.cpp \
|
||||
../../DocDocxConverter/OfficeDrawing/RecordFactory.cpp \
|
||||
../../DocDocxConverter/OfficeDrawing/ShapeTypeFactory.cpp
|
||||
}
|
||||
|
||||
HEADERS += \
|
||||
../DocFormatLib.h \
|
||||
../../Common/Aggregat.h \
|
||||
../../Common/FormatUtils.h \
|
||||
../../Common/IOperand.h \
|
||||
../../Common/IVirtualConstructor.h \
|
||||
../../Common/LanguageCodes.h \
|
||||
../../Common/Singleton.h \
|
||||
../../Common/SPRMCodes.h \
|
||||
../../Common/TargetOptions.h \
|
||||
../../Common/TextMark.h \
|
||||
../../Common/utf8.h \
|
||||
../../Common/XmlTools.h \
|
||||
../../DocDocxConverter/AbstractOpenXmlMapping.h \
|
||||
../../DocDocxConverter/AnnotationOwnerList.h \
|
||||
../../DocDocxConverter/AnnotationReferenceDescriptor.h \
|
||||
../../DocDocxConverter/AutoSummaryInfo.h \
|
||||
../../DocDocxConverter/BookmarkFirst.h \
|
||||
../../DocDocxConverter/BorderCode.h \
|
||||
../../DocDocxConverter/ByteStructure.h \
|
||||
../../DocDocxConverter/CharacterPropertiesMapping.h \
|
||||
../../DocDocxConverter/CharacterPropertyExceptions.h \
|
||||
../../DocDocxConverter/CharacterRange.h \
|
||||
../../DocDocxConverter/CommentsMapping.h \
|
||||
../../DocDocxConverter/ContentTypes.h \
|
||||
../../DocDocxConverter/ConversionContext.h \
|
||||
../../DocDocxConverter/Converter.h \
|
||||
../../DocDocxConverter/DateAndTime.h \
|
||||
../../DocDocxConverter/DocumentMapping.h \
|
||||
../../DocDocxConverter/DocumentProperties.h \
|
||||
../../DocDocxConverter/DocumentTypographyInfo.h \
|
||||
../../DocDocxConverter/DrawingObjectGrid.h \
|
||||
../../DocDocxConverter/EmuValue.h \
|
||||
../../DocDocxConverter/EndnoteDescriptor.h \
|
||||
../../DocDocxConverter/EndnotesMapping.h \
|
||||
../../DocDocxConverter/FieldCharacter.h \
|
||||
../../DocDocxConverter/FileInformationBlock.h \
|
||||
../../DocDocxConverter/FixedPointNumber.h \
|
||||
../../DocDocxConverter/FontFamilyName.h \
|
||||
../../DocDocxConverter/FontTableMapping.h \
|
||||
../../DocDocxConverter/FooterMapping.h \
|
||||
../../DocDocxConverter/FootnoteDescriptor.h \
|
||||
../../DocDocxConverter/FootnotesMapping.h \
|
||||
../../DocDocxConverter/FormattedDiskPage.h \
|
||||
../../DocDocxConverter/FormattedDiskPageCHPX.h \
|
||||
../../DocDocxConverter/FormattedDiskPagePAPX.h \
|
||||
../../DocDocxConverter/Global.h \
|
||||
../../DocDocxConverter/HeaderAndFooterTable.h \
|
||||
../../DocDocxConverter/HeaderMapping.h \
|
||||
../../DocDocxConverter/IBinaryReader.h \
|
||||
../../DocDocxConverter/IMapping.h \
|
||||
../../DocDocxConverter/IVisitable.h \
|
||||
../../DocDocxConverter/LanguageId.h \
|
||||
../../DocDocxConverter/LanguageIdMapping.h \
|
||||
../../DocDocxConverter/LineSpacingDescriptor.h \
|
||||
../../DocDocxConverter/ListData.h \
|
||||
../../DocDocxConverter/ListFormatOverride.h \
|
||||
../../DocDocxConverter/ListFormatOverrideLevel.h \
|
||||
../../DocDocxConverter/ListFormatOverrideTable.h \
|
||||
../../DocDocxConverter/ListLevel.h \
|
||||
../../DocDocxConverter/ListTable.h \
|
||||
../../DocDocxConverter/MainDocumentMapping.h \
|
||||
../../DocDocxConverter/MemoryStream.h \
|
||||
../../DocDocxConverter/NumberingMapping.h \
|
||||
../../DocDocxConverter/OfficeArtContent.h \
|
||||
../../DocDocxConverter/OleObject.h \
|
||||
../../DocDocxConverter/OleObjectMapping.h \
|
||||
../../DocDocxConverter/OpenXmlPackage.h \
|
||||
../../DocDocxConverter/ParagraphHeight.h \
|
||||
../../DocDocxConverter/ParagraphPropertiesMapping.h \
|
||||
../../DocDocxConverter/ParagraphPropertyExceptions.h \
|
||||
../../DocDocxConverter/PictureDescriptor.h \
|
||||
../../DocDocxConverter/PieceDescriptor.h \
|
||||
../../DocDocxConverter/PieceTable.h \
|
||||
../../DocDocxConverter/Plex.h \
|
||||
../../DocDocxConverter/PropertiesMapping.h \
|
||||
../../DocDocxConverter/PropertyExceptions.h \
|
||||
../../DocDocxConverter/RevisionData.h \
|
||||
../../DocDocxConverter/RGBColor.h \
|
||||
../../DocDocxConverter/SectionDescriptor.h \
|
||||
../../DocDocxConverter/SectionPropertiesMapping.h \
|
||||
../../DocDocxConverter/SectionPropertyExceptions.h \
|
||||
../../DocDocxConverter/SettingsMapping.h \
|
||||
../../DocDocxConverter/ShadingDescriptor.h \
|
||||
../../DocDocxConverter/SinglePropertyModifier.h \
|
||||
../../DocDocxConverter/Spa.h \
|
||||
../../DocDocxConverter/SprmTDefTable.h \
|
||||
../../DocDocxConverter/StringTable.h \
|
||||
../../DocDocxConverter/StructuredStorageReader.h \
|
||||
../../DocDocxConverter/StyleSheet.h \
|
||||
../../DocDocxConverter/StyleSheetDescription.h \
|
||||
../../DocDocxConverter/StyleSheetInformation.h \
|
||||
../../DocDocxConverter/StyleSheetMapping.h \
|
||||
../../DocDocxConverter/TabDescriptor.h \
|
||||
../../DocDocxConverter/TableCellPropertiesMapping.h \
|
||||
../../DocDocxConverter/TableInfo.h \
|
||||
../../DocDocxConverter/TableMapping.h \
|
||||
../../DocDocxConverter/TablePropertiesMapping.h \
|
||||
../../DocDocxConverter/TablePropertyExceptions.h \
|
||||
../../DocDocxConverter/TableRowPropertiesMapping.h \
|
||||
../../DocDocxConverter/Tbkd.h \
|
||||
../../DocDocxConverter/TextboxMapping.h \
|
||||
../../DocDocxConverter/TwipsValue.h \
|
||||
../../DocDocxConverter/VirtualStreamReader.h \
|
||||
../../DocDocxConverter/VMLPictureMapping.h \
|
||||
../../DocDocxConverter/VMLShapeMapping.h \
|
||||
../../DocDocxConverter/VMLShapeTypeMapping.h \
|
||||
../../DocDocxConverter/WideString.h \
|
||||
../../DocDocxConverter/WordDocument.h \
|
||||
../../DocDocxConverter/WordprocessingDocument.h \
|
||||
../../DocDocxConverter/OfficeDrawing/BitmapBlip.h \
|
||||
../../DocDocxConverter/OfficeDrawing/BlipStoreContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/BlipStoreEntry.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ChildAnchor.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ClientAnchor.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ClientData.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DrawingContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DrawingGroup.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DrawingGroupRecord.h \
|
||||
../../DocDocxConverter/OfficeDrawing/DrawingRecord.h \
|
||||
../../DocDocxConverter/OfficeDrawing/GroupContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/GroupShapeRecord.h \
|
||||
../../DocDocxConverter/OfficeDrawing/MetafilePictBlip.h \
|
||||
../../DocDocxConverter/OfficeDrawing/OfficeArtClientTextbox.h \
|
||||
../../DocDocxConverter/OfficeDrawing/PathParser.h \
|
||||
../../DocDocxConverter/OfficeDrawing/PathSegment.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Record.h \
|
||||
../../DocDocxConverter/OfficeDrawing/RecordFactory.h \
|
||||
../../DocDocxConverter/OfficeDrawing/RegularContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shape.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ShapeContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ShapeOptions.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ShapeType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/ShapeTypeFactory.h \
|
||||
../../DocDocxConverter/OfficeDrawing/SplitMenuColorContainer.h \
|
||||
../../DocDocxConverter/OfficeDrawing/UnknownRecord.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/ArcType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/ArrowType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/BevelType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/BlockArcType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/BracketsType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/CalloutsType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/CanType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/Connector.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/CubeType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/DiamondType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/DonutType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/FlowChartType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/FoldedCornerlType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/HeartType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/HexagonType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/IsoscelesTriangleType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/LightningBoltType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/LineType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/MoonType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/NoSmokingType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/OctagonType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/OvalType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/ParallelogramType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/PentagonType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/PictureFrameType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/PlaqueType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/PlusType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/RectangleType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/RightTriangleType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/RoundedRectangleType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/SmileyFaceType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/StarType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/SunType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/TextboxType.h \
|
||||
../../DocDocxConverter/OfficeDrawing/Shapetypes/TrapezoidType.h \
|
||||
../../../Common/3dParty/pole/pole.h \
|
||||
../../DocDocxConverter/EncryptionHeader.h \
|
||||
../../DocDocxConverter/DrawingPrimitives.h
|
||||
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../../DocDocxConverter/AnnotationReferenceDescriptor.cpp"
|
||||
#include "../../DocDocxConverter/CharacterPropertiesMapping.cpp"
|
||||
#include "../../DocDocxConverter/Converter.cpp"
|
||||
#include "../../DocDocxConverter/DocumentMapping.cpp"
|
||||
#include "../../DocDocxConverter/DocumentProperties.cpp"
|
||||
#include "../../DocDocxConverter/FontFamilyName.cpp"
|
||||
#include "../../DocDocxConverter/FontTableMapping.cpp"
|
||||
#include "../../DocDocxConverter/FooterMapping.cpp"
|
||||
#include "../../DocDocxConverter/FormattedDiskPageCHPX.cpp"
|
||||
#include "../../DocDocxConverter/FormattedDiskPagePAPX.cpp"
|
||||
#include "../../DocDocxConverter/HeaderAndFooterTable.cpp"
|
||||
#include "../../DocDocxConverter/HeaderMapping.cpp"
|
||||
#include "../../DocDocxConverter/LanguageIdMapping.cpp"
|
||||
#include "../../DocDocxConverter/ListData.cpp"
|
||||
#include "../../DocDocxConverter/ListLevel.cpp"
|
||||
#include "../../DocDocxConverter/ListTable.cpp"
|
||||
#include "../../DocDocxConverter/MainDocumentMapping.cpp"
|
||||
#include "../../DocDocxConverter/NumberingMapping.cpp"
|
||||
#include "../../DocDocxConverter/OpenXmlPackage.cpp"
|
||||
#include "../../DocDocxConverter/ParagraphHeight.cpp"
|
||||
#include "../../DocDocxConverter/ParagraphPropertiesMapping.cpp"
|
||||
#include "../../DocDocxConverter/ParagraphPropertyExceptions.cpp"
|
||||
#include "../../DocDocxConverter/PictureDescriptor.cpp"
|
||||
#include "../../DocDocxConverter/PieceTable.cpp"
|
||||
#include "../../DocDocxConverter/PropertiesMapping.cpp"
|
||||
#include "../../DocDocxConverter/PropertyExceptions.cpp"
|
||||
#include "../../DocDocxConverter/RevisionData.cpp"
|
||||
#include "../../DocDocxConverter/SectionPropertiesMapping.cpp"
|
||||
#include "../../DocDocxConverter/SettingsMapping.cpp"
|
||||
#include "../../DocDocxConverter/SinglePropertyModifier.cpp"
|
||||
#include "../../DocDocxConverter/StyleSheet.cpp"
|
||||
#include "../../DocDocxConverter/StyleSheetDescription.cpp"
|
||||
#include "../../DocDocxConverter/StyleSheetInformation.cpp"
|
||||
#include "../../DocDocxConverter/StyleSheetMapping.cpp"
|
||||
#include "../../DocDocxConverter/TableCellPropertiesMapping.cpp"
|
||||
#include "../../DocDocxConverter/TableMapping.cpp"
|
||||
#include "../../DocDocxConverter/TablePropertiesMapping.cpp"
|
||||
#include "../../DocDocxConverter/TableRowPropertiesMapping.cpp"
|
||||
#include "../../DocDocxConverter/TextboxMapping.cpp"
|
||||
#include "../../DocDocxConverter/VMLPictureMapping.cpp"
|
||||
#include "../../DocDocxConverter/VMLShapeMapping.cpp"
|
||||
#include "../../DocDocxConverter/VMLShapeTypeMapping.cpp"
|
||||
#include "../../DocDocxConverter/WordDocument.cpp"
|
||||
#include "../../DocDocxConverter/WordprocessingDocument.cpp"
|
||||
#include "../../DocDocxConverter/FormFieldData.cpp"
|
||||
#include "../../DocDocxConverter/OfficeDrawing/Record.cpp"
|
||||
#include "../../DocDocxConverter/OfficeDrawing/RecordFactory.cpp"
|
||||
#include "../../DocDocxConverter/OfficeDrawing/ShapeTypeFactory.cpp"
|
||||
@ -1,885 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
6967B2F91E27C26800A129E2 /* DocFormatLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B2F71E27C26800A129E2 /* DocFormatLib.cpp */; };
|
||||
6967B3E11E27C2D500A129E2 /* pole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3DF1E27C2D500A129E2 /* pole.cpp */; };
|
||||
6967B4C31E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3E71E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp */; };
|
||||
6967B4C41E27C52700A129E2 /* CharacterPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3ED1E27C52700A129E2 /* CharacterPropertiesMapping.cpp */; };
|
||||
6967B4C51E27C52700A129E2 /* Converter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3F41E27C52700A129E2 /* Converter.cpp */; };
|
||||
6967B4C61E27C52700A129E2 /* DocumentMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3F71E27C52700A129E2 /* DocumentMapping.cpp */; };
|
||||
6967B4C71E27C52700A129E2 /* DocumentProperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3F91E27C52700A129E2 /* DocumentProperties.cpp */; };
|
||||
6967B4C81E27C52700A129E2 /* DrawingPrimitives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B3FD1E27C52700A129E2 /* DrawingPrimitives.cpp */; };
|
||||
6967B4C91E27C52700A129E2 /* EncryptionHeader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4001E27C52700A129E2 /* EncryptionHeader.cpp */; };
|
||||
6967B4CA1E27C52700A129E2 /* FontFamilyName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4071E27C52700A129E2 /* FontFamilyName.cpp */; };
|
||||
6967B4CB1E27C52700A129E2 /* FontTableMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4091E27C52700A129E2 /* FontTableMapping.cpp */; };
|
||||
6967B4CC1E27C52700A129E2 /* FooterMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B40B1E27C52700A129E2 /* FooterMapping.cpp */; };
|
||||
6967B4CD1E27C52700A129E2 /* FormattedDiskPageCHPX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4101E27C52700A129E2 /* FormattedDiskPageCHPX.cpp */; };
|
||||
6967B4CE1E27C52700A129E2 /* FormattedDiskPagePAPX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4121E27C52700A129E2 /* FormattedDiskPagePAPX.cpp */; };
|
||||
6967B4CF1E27C52700A129E2 /* HeaderAndFooterTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4151E27C52700A129E2 /* HeaderAndFooterTable.cpp */; };
|
||||
6967B4D01E27C52700A129E2 /* HeaderMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4171E27C52700A129E2 /* HeaderMapping.cpp */; };
|
||||
6967B4D11E27C52700A129E2 /* LanguageIdMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B41D1E27C52700A129E2 /* LanguageIdMapping.cpp */; };
|
||||
6967B4D21E27C52700A129E2 /* ListData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4201E27C52700A129E2 /* ListData.cpp */; };
|
||||
6967B4D31E27C52700A129E2 /* ListLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4251E27C52700A129E2 /* ListLevel.cpp */; };
|
||||
6967B4D41E27C52700A129E2 /* ListTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4271E27C52700A129E2 /* ListTable.cpp */; };
|
||||
6967B4D51E27C52700A129E2 /* MainDocumentMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4291E27C52700A129E2 /* MainDocumentMapping.cpp */; };
|
||||
6967B4D61E27C52700A129E2 /* NumberingMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B42C1E27C52700A129E2 /* NumberingMapping.cpp */; };
|
||||
6967B4DA1E27C52700A129E2 /* OleObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B47A1E27C52700A129E2 /* OleObject.cpp */; };
|
||||
6967B4DB1E27C52700A129E2 /* OpenXmlPackage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B47D1E27C52700A129E2 /* OpenXmlPackage.cpp */; };
|
||||
6967B4DC1E27C52700A129E2 /* ParagraphHeight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B47F1E27C52700A129E2 /* ParagraphHeight.cpp */; };
|
||||
6967B4DD1E27C52700A129E2 /* ParagraphPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4811E27C52700A129E2 /* ParagraphPropertiesMapping.cpp */; };
|
||||
6967B4DE1E27C52700A129E2 /* ParagraphPropertyExceptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4831E27C52700A129E2 /* ParagraphPropertyExceptions.cpp */; };
|
||||
6967B4DF1E27C52700A129E2 /* PictureDescriptor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4851E27C52700A129E2 /* PictureDescriptor.cpp */; };
|
||||
6967B4E01E27C52700A129E2 /* PieceTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4881E27C52700A129E2 /* PieceTable.cpp */; };
|
||||
6967B4E11E27C52700A129E2 /* PropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B48B1E27C52700A129E2 /* PropertiesMapping.cpp */; };
|
||||
6967B4E21E27C52700A129E2 /* PropertyExceptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B48D1E27C52700A129E2 /* PropertyExceptions.cpp */; };
|
||||
6967B4E31E27C52700A129E2 /* RevisionData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B48F1E27C52700A129E2 /* RevisionData.cpp */; };
|
||||
6967B4E41E27C52700A129E2 /* SectionPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4931E27C52700A129E2 /* SectionPropertiesMapping.cpp */; };
|
||||
6967B4E51E27C52700A129E2 /* SettingsMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4961E27C52700A129E2 /* SettingsMapping.cpp */; };
|
||||
6967B4E61E27C52700A129E2 /* SinglePropertyModifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4991E27C52700A129E2 /* SinglePropertyModifier.cpp */; };
|
||||
6967B4E71E27C52700A129E2 /* Spa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B49B1E27C52700A129E2 /* Spa.cpp */; };
|
||||
6967B4E81E27C52700A129E2 /* StyleSheet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A01E27C52700A129E2 /* StyleSheet.cpp */; };
|
||||
6967B4E91E27C52700A129E2 /* StyleSheetDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A21E27C52700A129E2 /* StyleSheetDescription.cpp */; };
|
||||
6967B4EA1E27C52700A129E2 /* StyleSheetInformation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A41E27C52700A129E2 /* StyleSheetInformation.cpp */; };
|
||||
6967B4EB1E27C52700A129E2 /* StyleSheetMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A61E27C52700A129E2 /* StyleSheetMapping.cpp */; };
|
||||
6967B4EC1E27C52700A129E2 /* TableCellPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4A91E27C52700A129E2 /* TableCellPropertiesMapping.cpp */; };
|
||||
6967B4ED1E27C52700A129E2 /* TableMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4AC1E27C52700A129E2 /* TableMapping.cpp */; };
|
||||
6967B4EE1E27C52700A129E2 /* TablePropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4AE1E27C52700A129E2 /* TablePropertiesMapping.cpp */; };
|
||||
6967B4EF1E27C52700A129E2 /* TableRowPropertiesMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4B11E27C52700A129E2 /* TableRowPropertiesMapping.cpp */; };
|
||||
6967B4F01E27C52700A129E2 /* TextboxMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4B41E27C52700A129E2 /* TextboxMapping.cpp */; };
|
||||
6967B4F11E27C52700A129E2 /* VMLPictureMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4B81E27C52700A129E2 /* VMLPictureMapping.cpp */; };
|
||||
6967B4F21E27C52700A129E2 /* VMLShapeMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4BA1E27C52700A129E2 /* VMLShapeMapping.cpp */; };
|
||||
6967B4F31E27C52700A129E2 /* VMLShapeTypeMapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4BC1E27C52700A129E2 /* VMLShapeTypeMapping.cpp */; };
|
||||
6967B4F41E27C52700A129E2 /* WordDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4BF1E27C52700A129E2 /* WordDocument.cpp */; };
|
||||
6967B4F51E27C52700A129E2 /* WordprocessingDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6967B4C11E27C52700A129E2 /* WordprocessingDocument.cpp */; };
|
||||
8A1BC15322DF34920084799E /* ShapeTypeFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A1BC11622DF34900084799E /* ShapeTypeFactory.cpp */; };
|
||||
8A1BC15422DF34920084799E /* Record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A1BC14922DF34920084799E /* Record.cpp */; };
|
||||
8A1BC15522DF34920084799E /* RecordFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8A1BC15222DF34920084799E /* RecordFactory.cpp */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
6967B2E91E27C23A00A129E2 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "include/$(PRODUCT_NAME)";
|
||||
dstSubfolderSpec = 16;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
6967B2EB1E27C23A00A129E2 /* libDocFormatLib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libDocFormatLib.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
6967B2F71E27C26800A129E2 /* DocFormatLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DocFormatLib.cpp; path = ../../DocFormatLib.cpp; sourceTree = "<group>"; };
|
||||
6967B2F81E27C26800A129E2 /* DocFormatLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DocFormatLib.h; path = ../../DocFormatLib.h; sourceTree = "<group>"; };
|
||||
6967B2FB1E27C2A100A129E2 /* Aggregat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Aggregat.h; sourceTree = "<group>"; };
|
||||
6967B2FC1E27C2A100A129E2 /* Callback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Callback.h; sourceTree = "<group>"; };
|
||||
6967B2FD1E27C2A100A129E2 /* FormatUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormatUtils.h; sourceTree = "<group>"; };
|
||||
6967B2FE1E27C2A100A129E2 /* IOperand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOperand.h; sourceTree = "<group>"; };
|
||||
6967B2FF1E27C2A100A129E2 /* IVirtualConstructor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IVirtualConstructor.h; sourceTree = "<group>"; };
|
||||
6967B3001E27C2A100A129E2 /* LanguageCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LanguageCodes.h; sourceTree = "<group>"; };
|
||||
6967B3011E27C2A100A129E2 /* Singleton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Singleton.h; sourceTree = "<group>"; };
|
||||
6967B3021E27C2A100A129E2 /* SPRMCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPRMCodes.h; sourceTree = "<group>"; };
|
||||
6967B3031E27C2A100A129E2 /* TargetOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetOptions.h; sourceTree = "<group>"; };
|
||||
6967B3041E27C2A100A129E2 /* TextMark.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextMark.h; sourceTree = "<group>"; };
|
||||
6967B3051E27C2A100A129E2 /* utf8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utf8.h; sourceTree = "<group>"; };
|
||||
6967B3061E27C2A100A129E2 /* XmlTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlTools.h; sourceTree = "<group>"; };
|
||||
6967B3DF1E27C2D500A129E2 /* pole.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pole.cpp; path = ../../../../Common/3dParty/pole/pole.cpp; sourceTree = "<group>"; };
|
||||
6967B3E01E27C2D500A129E2 /* pole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pole.h; path = ../../../../Common/3dParty/pole/pole.h; sourceTree = "<group>"; };
|
||||
6967B3E51E27C52700A129E2 /* AbstractOpenXmlMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractOpenXmlMapping.h; sourceTree = "<group>"; };
|
||||
6967B3E61E27C52700A129E2 /* AnnotationOwnerList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnnotationOwnerList.h; sourceTree = "<group>"; };
|
||||
6967B3E71E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AnnotationReferenceDescriptor.cpp; sourceTree = "<group>"; };
|
||||
6967B3E81E27C52700A129E2 /* AnnotationReferenceDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnnotationReferenceDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B3E91E27C52700A129E2 /* AutoSummaryInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoSummaryInfo.h; sourceTree = "<group>"; };
|
||||
6967B3EA1E27C52700A129E2 /* BookmarkFirst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BookmarkFirst.h; sourceTree = "<group>"; };
|
||||
6967B3EB1E27C52700A129E2 /* BorderCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BorderCode.h; sourceTree = "<group>"; };
|
||||
6967B3EC1E27C52700A129E2 /* ByteStructure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ByteStructure.h; sourceTree = "<group>"; };
|
||||
6967B3ED1E27C52700A129E2 /* CharacterPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CharacterPropertiesMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B3EE1E27C52700A129E2 /* CharacterPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CharacterPropertiesMapping.h; sourceTree = "<group>"; };
|
||||
6967B3EF1E27C52700A129E2 /* CharacterPropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CharacterPropertyExceptions.h; sourceTree = "<group>"; };
|
||||
6967B3F01E27C52700A129E2 /* CharacterRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CharacterRange.h; sourceTree = "<group>"; };
|
||||
6967B3F11E27C52700A129E2 /* CommentsMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommentsMapping.h; sourceTree = "<group>"; };
|
||||
6967B3F21E27C52700A129E2 /* ContentTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentTypes.h; sourceTree = "<group>"; };
|
||||
6967B3F31E27C52700A129E2 /* ConversionContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConversionContext.h; sourceTree = "<group>"; };
|
||||
6967B3F41E27C52700A129E2 /* Converter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Converter.cpp; sourceTree = "<group>"; };
|
||||
6967B3F51E27C52700A129E2 /* Converter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Converter.h; sourceTree = "<group>"; };
|
||||
6967B3F61E27C52700A129E2 /* DateAndTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateAndTime.h; sourceTree = "<group>"; };
|
||||
6967B3F71E27C52700A129E2 /* DocumentMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B3F81E27C52700A129E2 /* DocumentMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentMapping.h; sourceTree = "<group>"; };
|
||||
6967B3F91E27C52700A129E2 /* DocumentProperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentProperties.cpp; sourceTree = "<group>"; };
|
||||
6967B3FA1E27C52700A129E2 /* DocumentProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentProperties.h; sourceTree = "<group>"; };
|
||||
6967B3FB1E27C52700A129E2 /* DocumentTypographyInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentTypographyInfo.h; sourceTree = "<group>"; };
|
||||
6967B3FC1E27C52700A129E2 /* DrawingObjectGrid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingObjectGrid.h; sourceTree = "<group>"; };
|
||||
6967B3FD1E27C52700A129E2 /* DrawingPrimitives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DrawingPrimitives.cpp; sourceTree = "<group>"; };
|
||||
6967B3FE1E27C52700A129E2 /* DrawingPrimitives.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingPrimitives.h; sourceTree = "<group>"; };
|
||||
6967B3FF1E27C52700A129E2 /* EmuValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmuValue.h; sourceTree = "<group>"; };
|
||||
6967B4001E27C52700A129E2 /* EncryptionHeader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EncryptionHeader.cpp; sourceTree = "<group>"; };
|
||||
6967B4011E27C52700A129E2 /* EncryptionHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EncryptionHeader.h; sourceTree = "<group>"; };
|
||||
6967B4021E27C52700A129E2 /* EndnoteDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EndnoteDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B4031E27C52700A129E2 /* EndnotesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EndnotesMapping.h; sourceTree = "<group>"; };
|
||||
6967B4041E27C52700A129E2 /* FieldCharacter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FieldCharacter.h; sourceTree = "<group>"; };
|
||||
6967B4051E27C52700A129E2 /* FileInformationBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileInformationBlock.h; sourceTree = "<group>"; };
|
||||
6967B4061E27C52700A129E2 /* FixedPointNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FixedPointNumber.h; sourceTree = "<group>"; };
|
||||
6967B4071E27C52700A129E2 /* FontFamilyName.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontFamilyName.cpp; sourceTree = "<group>"; };
|
||||
6967B4081E27C52700A129E2 /* FontFamilyName.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontFamilyName.h; sourceTree = "<group>"; };
|
||||
6967B4091E27C52700A129E2 /* FontTableMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontTableMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B40A1E27C52700A129E2 /* FontTableMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontTableMapping.h; sourceTree = "<group>"; };
|
||||
6967B40B1E27C52700A129E2 /* FooterMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FooterMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B40C1E27C52700A129E2 /* FooterMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FooterMapping.h; sourceTree = "<group>"; };
|
||||
6967B40D1E27C52700A129E2 /* FootnoteDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FootnoteDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B40E1E27C52700A129E2 /* FootnotesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FootnotesMapping.h; sourceTree = "<group>"; };
|
||||
6967B40F1E27C52700A129E2 /* FormattedDiskPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormattedDiskPage.h; sourceTree = "<group>"; };
|
||||
6967B4101E27C52700A129E2 /* FormattedDiskPageCHPX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormattedDiskPageCHPX.cpp; sourceTree = "<group>"; };
|
||||
6967B4111E27C52700A129E2 /* FormattedDiskPageCHPX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormattedDiskPageCHPX.h; sourceTree = "<group>"; };
|
||||
6967B4121E27C52700A129E2 /* FormattedDiskPagePAPX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormattedDiskPagePAPX.cpp; sourceTree = "<group>"; };
|
||||
6967B4131E27C52700A129E2 /* FormattedDiskPagePAPX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormattedDiskPagePAPX.h; sourceTree = "<group>"; };
|
||||
6967B4141E27C52700A129E2 /* Global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Global.h; sourceTree = "<group>"; };
|
||||
6967B4151E27C52700A129E2 /* HeaderAndFooterTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeaderAndFooterTable.cpp; sourceTree = "<group>"; };
|
||||
6967B4161E27C52700A129E2 /* HeaderAndFooterTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeaderAndFooterTable.h; sourceTree = "<group>"; };
|
||||
6967B4171E27C52700A129E2 /* HeaderMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HeaderMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4181E27C52700A129E2 /* HeaderMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeaderMapping.h; sourceTree = "<group>"; };
|
||||
6967B4191E27C52700A129E2 /* IBinaryReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IBinaryReader.h; sourceTree = "<group>"; };
|
||||
6967B41A1E27C52700A129E2 /* IMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMapping.h; sourceTree = "<group>"; };
|
||||
6967B41B1E27C52700A129E2 /* IVisitable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IVisitable.h; sourceTree = "<group>"; };
|
||||
6967B41C1E27C52700A129E2 /* LanguageId.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LanguageId.h; sourceTree = "<group>"; };
|
||||
6967B41D1E27C52700A129E2 /* LanguageIdMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LanguageIdMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B41E1E27C52700A129E2 /* LanguageIdMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LanguageIdMapping.h; sourceTree = "<group>"; };
|
||||
6967B41F1E27C52700A129E2 /* LineSpacingDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineSpacingDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B4201E27C52700A129E2 /* ListData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ListData.cpp; sourceTree = "<group>"; };
|
||||
6967B4211E27C52700A129E2 /* ListData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListData.h; sourceTree = "<group>"; };
|
||||
6967B4221E27C52700A129E2 /* ListFormatOverride.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListFormatOverride.h; sourceTree = "<group>"; };
|
||||
6967B4231E27C52700A129E2 /* ListFormatOverrideLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListFormatOverrideLevel.h; sourceTree = "<group>"; };
|
||||
6967B4241E27C52700A129E2 /* ListFormatOverrideTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListFormatOverrideTable.h; sourceTree = "<group>"; };
|
||||
6967B4251E27C52700A129E2 /* ListLevel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ListLevel.cpp; sourceTree = "<group>"; };
|
||||
6967B4261E27C52700A129E2 /* ListLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListLevel.h; sourceTree = "<group>"; };
|
||||
6967B4271E27C52700A129E2 /* ListTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ListTable.cpp; sourceTree = "<group>"; };
|
||||
6967B4281E27C52700A129E2 /* ListTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListTable.h; sourceTree = "<group>"; };
|
||||
6967B4291E27C52700A129E2 /* MainDocumentMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MainDocumentMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B42A1E27C52700A129E2 /* MainDocumentMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainDocumentMapping.h; sourceTree = "<group>"; };
|
||||
6967B42B1E27C52700A129E2 /* MemoryStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryStream.h; sourceTree = "<group>"; };
|
||||
6967B42C1E27C52700A129E2 /* NumberingMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NumberingMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B42D1E27C52700A129E2 /* NumberingMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NumberingMapping.h; sourceTree = "<group>"; };
|
||||
6967B42E1E27C52700A129E2 /* OfficeArtContent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeArtContent.h; sourceTree = "<group>"; };
|
||||
6967B47A1E27C52700A129E2 /* OleObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OleObject.cpp; sourceTree = "<group>"; };
|
||||
6967B47B1E27C52700A129E2 /* OleObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OleObject.h; sourceTree = "<group>"; };
|
||||
6967B47C1E27C52700A129E2 /* OleObjectMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OleObjectMapping.h; sourceTree = "<group>"; };
|
||||
6967B47D1E27C52700A129E2 /* OpenXmlPackage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OpenXmlPackage.cpp; sourceTree = "<group>"; };
|
||||
6967B47E1E27C52700A129E2 /* OpenXmlPackage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenXmlPackage.h; sourceTree = "<group>"; };
|
||||
6967B47F1E27C52700A129E2 /* ParagraphHeight.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParagraphHeight.cpp; sourceTree = "<group>"; };
|
||||
6967B4801E27C52700A129E2 /* ParagraphHeight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParagraphHeight.h; sourceTree = "<group>"; };
|
||||
6967B4811E27C52700A129E2 /* ParagraphPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParagraphPropertiesMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4821E27C52700A129E2 /* ParagraphPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParagraphPropertiesMapping.h; sourceTree = "<group>"; };
|
||||
6967B4831E27C52700A129E2 /* ParagraphPropertyExceptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParagraphPropertyExceptions.cpp; sourceTree = "<group>"; };
|
||||
6967B4841E27C52700A129E2 /* ParagraphPropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParagraphPropertyExceptions.h; sourceTree = "<group>"; };
|
||||
6967B4851E27C52700A129E2 /* PictureDescriptor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PictureDescriptor.cpp; sourceTree = "<group>"; };
|
||||
6967B4861E27C52700A129E2 /* PictureDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B4871E27C52700A129E2 /* PieceDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PieceDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B4881E27C52700A129E2 /* PieceTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PieceTable.cpp; sourceTree = "<group>"; };
|
||||
6967B4891E27C52700A129E2 /* PieceTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PieceTable.h; sourceTree = "<group>"; };
|
||||
6967B48A1E27C52700A129E2 /* Plex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Plex.h; sourceTree = "<group>"; };
|
||||
6967B48B1E27C52700A129E2 /* PropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PropertiesMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B48C1E27C52700A129E2 /* PropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PropertiesMapping.h; sourceTree = "<group>"; };
|
||||
6967B48D1E27C52700A129E2 /* PropertyExceptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PropertyExceptions.cpp; sourceTree = "<group>"; };
|
||||
6967B48E1E27C52700A129E2 /* PropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PropertyExceptions.h; sourceTree = "<group>"; };
|
||||
6967B48F1E27C52700A129E2 /* RevisionData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RevisionData.cpp; sourceTree = "<group>"; };
|
||||
6967B4901E27C52700A129E2 /* RevisionData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RevisionData.h; sourceTree = "<group>"; };
|
||||
6967B4911E27C52700A129E2 /* RGBColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RGBColor.h; sourceTree = "<group>"; };
|
||||
6967B4921E27C52700A129E2 /* SectionDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SectionDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B4931E27C52700A129E2 /* SectionPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SectionPropertiesMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4941E27C52700A129E2 /* SectionPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SectionPropertiesMapping.h; sourceTree = "<group>"; };
|
||||
6967B4951E27C52700A129E2 /* SectionPropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SectionPropertyExceptions.h; sourceTree = "<group>"; };
|
||||
6967B4961E27C52700A129E2 /* SettingsMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SettingsMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4971E27C52700A129E2 /* SettingsMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsMapping.h; sourceTree = "<group>"; };
|
||||
6967B4981E27C52700A129E2 /* ShadingDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShadingDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B4991E27C52700A129E2 /* SinglePropertyModifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SinglePropertyModifier.cpp; sourceTree = "<group>"; };
|
||||
6967B49A1E27C52700A129E2 /* SinglePropertyModifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SinglePropertyModifier.h; sourceTree = "<group>"; };
|
||||
6967B49B1E27C52700A129E2 /* Spa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Spa.cpp; sourceTree = "<group>"; };
|
||||
6967B49C1E27C52700A129E2 /* Spa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Spa.h; sourceTree = "<group>"; };
|
||||
6967B49D1E27C52700A129E2 /* SprmTDefTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SprmTDefTable.h; sourceTree = "<group>"; };
|
||||
6967B49E1E27C52700A129E2 /* StringTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringTable.h; sourceTree = "<group>"; };
|
||||
6967B49F1E27C52700A129E2 /* StructuredStorageReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StructuredStorageReader.h; sourceTree = "<group>"; };
|
||||
6967B4A01E27C52700A129E2 /* StyleSheet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheet.cpp; sourceTree = "<group>"; };
|
||||
6967B4A11E27C52700A129E2 /* StyleSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheet.h; sourceTree = "<group>"; };
|
||||
6967B4A21E27C52700A129E2 /* StyleSheetDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheetDescription.cpp; sourceTree = "<group>"; };
|
||||
6967B4A31E27C52700A129E2 /* StyleSheetDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheetDescription.h; sourceTree = "<group>"; };
|
||||
6967B4A41E27C52700A129E2 /* StyleSheetInformation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheetInformation.cpp; sourceTree = "<group>"; };
|
||||
6967B4A51E27C52700A129E2 /* StyleSheetInformation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheetInformation.h; sourceTree = "<group>"; };
|
||||
6967B4A61E27C52700A129E2 /* StyleSheetMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheetMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4A71E27C52700A129E2 /* StyleSheetMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSheetMapping.h; sourceTree = "<group>"; };
|
||||
6967B4A81E27C52700A129E2 /* TabDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TabDescriptor.h; sourceTree = "<group>"; };
|
||||
6967B4A91E27C52700A129E2 /* TableCellPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TableCellPropertiesMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4AA1E27C52700A129E2 /* TableCellPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableCellPropertiesMapping.h; sourceTree = "<group>"; };
|
||||
6967B4AB1E27C52700A129E2 /* TableInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableInfo.h; sourceTree = "<group>"; };
|
||||
6967B4AC1E27C52700A129E2 /* TableMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TableMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4AD1E27C52700A129E2 /* TableMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableMapping.h; sourceTree = "<group>"; };
|
||||
6967B4AE1E27C52700A129E2 /* TablePropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TablePropertiesMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4AF1E27C52700A129E2 /* TablePropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TablePropertiesMapping.h; sourceTree = "<group>"; };
|
||||
6967B4B01E27C52700A129E2 /* TablePropertyExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TablePropertyExceptions.h; sourceTree = "<group>"; };
|
||||
6967B4B11E27C52700A129E2 /* TableRowPropertiesMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TableRowPropertiesMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4B21E27C52700A129E2 /* TableRowPropertiesMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableRowPropertiesMapping.h; sourceTree = "<group>"; };
|
||||
6967B4B31E27C52700A129E2 /* Tbkd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tbkd.h; sourceTree = "<group>"; };
|
||||
6967B4B41E27C52700A129E2 /* TextboxMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextboxMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4B51E27C52700A129E2 /* TextboxMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextboxMapping.h; sourceTree = "<group>"; };
|
||||
6967B4B61E27C52700A129E2 /* TwipsValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TwipsValue.h; sourceTree = "<group>"; };
|
||||
6967B4B71E27C52700A129E2 /* VirtualStreamReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualStreamReader.h; sourceTree = "<group>"; };
|
||||
6967B4B81E27C52700A129E2 /* VMLPictureMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMLPictureMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4B91E27C52700A129E2 /* VMLPictureMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMLPictureMapping.h; sourceTree = "<group>"; };
|
||||
6967B4BA1E27C52700A129E2 /* VMLShapeMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMLShapeMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4BB1E27C52700A129E2 /* VMLShapeMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMLShapeMapping.h; sourceTree = "<group>"; };
|
||||
6967B4BC1E27C52700A129E2 /* VMLShapeTypeMapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMLShapeTypeMapping.cpp; sourceTree = "<group>"; };
|
||||
6967B4BD1E27C52700A129E2 /* VMLShapeTypeMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMLShapeTypeMapping.h; sourceTree = "<group>"; };
|
||||
6967B4BE1E27C52700A129E2 /* WideString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WideString.h; sourceTree = "<group>"; };
|
||||
6967B4BF1E27C52700A129E2 /* WordDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WordDocument.cpp; sourceTree = "<group>"; };
|
||||
6967B4C01E27C52700A129E2 /* WordDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordDocument.h; sourceTree = "<group>"; };
|
||||
6967B4C11E27C52700A129E2 /* WordprocessingDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WordprocessingDocument.cpp; sourceTree = "<group>"; };
|
||||
6967B4C21E27C52700A129E2 /* WordprocessingDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordprocessingDocument.h; sourceTree = "<group>"; };
|
||||
8A1BC11122DF348F0084799E /* ClientAnchor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientAnchor.h; sourceTree = "<group>"; };
|
||||
8A1BC11222DF34900084799E /* ShapeTypeFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeTypeFactory.h; sourceTree = "<group>"; };
|
||||
8A1BC11322DF34900084799E /* OfficeArtClientTextbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeArtClientTextbox.h; sourceTree = "<group>"; };
|
||||
8A1BC11422DF34900084799E /* DiagramBooleanProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagramBooleanProperties.h; sourceTree = "<group>"; };
|
||||
8A1BC11522DF34900084799E /* MetafilePictBlip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MetafilePictBlip.h; sourceTree = "<group>"; };
|
||||
8A1BC11622DF34900084799E /* ShapeTypeFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShapeTypeFactory.cpp; sourceTree = "<group>"; };
|
||||
8A1BC11722DF34900084799E /* DrawingContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingContainer.h; sourceTree = "<group>"; };
|
||||
8A1BC11822DF34900084799E /* UnknownRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnknownRecord.h; sourceTree = "<group>"; };
|
||||
8A1BC11922DF34900084799E /* Record.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Record.h; sourceTree = "<group>"; };
|
||||
8A1BC11A22DF34900084799E /* BitmapBlip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitmapBlip.h; sourceTree = "<group>"; };
|
||||
8A1BC11B22DF34910084799E /* OfficeArtFRITContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeArtFRITContainer.h; sourceTree = "<group>"; };
|
||||
8A1BC11C22DF34910084799E /* DrawingGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingGroup.h; sourceTree = "<group>"; };
|
||||
8A1BC11D22DF34910084799E /* ShapeContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeContainer.h; sourceTree = "<group>"; };
|
||||
8A1BC11E22DF34910084799E /* ShapeType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeType.h; sourceTree = "<group>"; };
|
||||
8A1BC12022DF34910084799E /* PlaqueType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaqueType.h; sourceTree = "<group>"; };
|
||||
8A1BC12122DF34910084799E /* CubeType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CubeType.h; sourceTree = "<group>"; };
|
||||
8A1BC12222DF34910084799E /* LightningBoltType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LightningBoltType.h; sourceTree = "<group>"; };
|
||||
8A1BC12322DF34910084799E /* OvalType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OvalType.h; sourceTree = "<group>"; };
|
||||
8A1BC12422DF34910084799E /* CalloutsType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CalloutsType.h; sourceTree = "<group>"; };
|
||||
8A1BC12522DF34910084799E /* TextboxType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextboxType.h; sourceTree = "<group>"; };
|
||||
8A1BC12622DF34910084799E /* HexagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HexagonType.h; sourceTree = "<group>"; };
|
||||
8A1BC12722DF34910084799E /* NoSmokingType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoSmokingType.h; sourceTree = "<group>"; };
|
||||
8A1BC12822DF34910084799E /* OctagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OctagonType.h; sourceTree = "<group>"; };
|
||||
8A1BC12922DF34910084799E /* ArcType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArcType.h; sourceTree = "<group>"; };
|
||||
8A1BC12A22DF34910084799E /* CanType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CanType.h; sourceTree = "<group>"; };
|
||||
8A1BC12B22DF34910084799E /* PictureFrameType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureFrameType.h; sourceTree = "<group>"; };
|
||||
8A1BC12C22DF34910084799E /* BevelType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BevelType.h; sourceTree = "<group>"; };
|
||||
8A1BC12D22DF34910084799E /* MoonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoonType.h; sourceTree = "<group>"; };
|
||||
8A1BC12E22DF34910084799E /* FoldedCornerlType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FoldedCornerlType.h; sourceTree = "<group>"; };
|
||||
8A1BC12F22DF34910084799E /* PentagonType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PentagonType.h; sourceTree = "<group>"; };
|
||||
8A1BC13022DF34910084799E /* BracketsType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BracketsType.h; sourceTree = "<group>"; };
|
||||
8A1BC13122DF34910084799E /* IsoscelesTriangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IsoscelesTriangleType.h; sourceTree = "<group>"; };
|
||||
8A1BC13222DF34910084799E /* StarType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StarType.h; sourceTree = "<group>"; };
|
||||
8A1BC13322DF34910084799E /* DonutType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DonutType.h; sourceTree = "<group>"; };
|
||||
8A1BC13422DF34910084799E /* RectangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RectangleType.h; sourceTree = "<group>"; };
|
||||
8A1BC13522DF34910084799E /* TrapezoidType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrapezoidType.h; sourceTree = "<group>"; };
|
||||
8A1BC13622DF34910084799E /* ArrowType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArrowType.h; sourceTree = "<group>"; };
|
||||
8A1BC13722DF34910084799E /* SmileyFaceType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmileyFaceType.h; sourceTree = "<group>"; };
|
||||
8A1BC13822DF34910084799E /* PlusType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlusType.h; sourceTree = "<group>"; };
|
||||
8A1BC13922DF34910084799E /* RightTriangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RightTriangleType.h; sourceTree = "<group>"; };
|
||||
8A1BC13A22DF34910084799E /* HeartType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeartType.h; sourceTree = "<group>"; };
|
||||
8A1BC13B22DF34910084799E /* SunType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SunType.h; sourceTree = "<group>"; };
|
||||
8A1BC13C22DF34910084799E /* Connector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Connector.h; sourceTree = "<group>"; };
|
||||
8A1BC13D22DF34910084799E /* RoundedRectangleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RoundedRectangleType.h; sourceTree = "<group>"; };
|
||||
8A1BC13E22DF34910084799E /* BlockArcType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockArcType.h; sourceTree = "<group>"; };
|
||||
8A1BC13F22DF34910084799E /* WordArtText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordArtText.h; sourceTree = "<group>"; };
|
||||
8A1BC14022DF34910084799E /* FlowChartType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlowChartType.h; sourceTree = "<group>"; };
|
||||
8A1BC14122DF34910084799E /* LineType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LineType.h; sourceTree = "<group>"; };
|
||||
8A1BC14222DF34910084799E /* DiamondType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiamondType.h; sourceTree = "<group>"; };
|
||||
8A1BC14322DF34910084799E /* ParallelogramType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParallelogramType.h; sourceTree = "<group>"; };
|
||||
8A1BC14422DF34910084799E /* ClientData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientData.h; sourceTree = "<group>"; };
|
||||
8A1BC14522DF34910084799E /* GroupShapeRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupShapeRecord.h; sourceTree = "<group>"; };
|
||||
8A1BC14622DF34910084799E /* Shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Shape.h; sourceTree = "<group>"; };
|
||||
8A1BC14722DF34910084799E /* BlipStoreEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlipStoreEntry.h; sourceTree = "<group>"; };
|
||||
8A1BC14822DF34920084799E /* DrawingGroupRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingGroupRecord.h; sourceTree = "<group>"; };
|
||||
8A1BC14922DF34920084799E /* Record.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Record.cpp; sourceTree = "<group>"; };
|
||||
8A1BC14A22DF34920084799E /* SplitMenuColorContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplitMenuColorContainer.h; sourceTree = "<group>"; };
|
||||
8A1BC14B22DF34920084799E /* ShapeOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShapeOptions.h; sourceTree = "<group>"; };
|
||||
8A1BC14C22DF34920084799E /* RegularContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegularContainer.h; sourceTree = "<group>"; };
|
||||
8A1BC14D22DF34920084799E /* BlipStoreContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlipStoreContainer.h; sourceTree = "<group>"; };
|
||||
8A1BC14E22DF34920084799E /* RecordFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecordFactory.h; sourceTree = "<group>"; };
|
||||
8A1BC14F22DF34920084799E /* DrawingRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingRecord.h; sourceTree = "<group>"; };
|
||||
8A1BC15022DF34920084799E /* GroupContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupContainer.h; sourceTree = "<group>"; };
|
||||
8A1BC15122DF34920084799E /* ChildAnchor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChildAnchor.h; sourceTree = "<group>"; };
|
||||
8A1BC15222DF34920084799E /* RecordFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RecordFactory.cpp; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
6967B2E81E27C23A00A129E2 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
6967B2E21E27C23A00A129E2 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6967B2ED1E27C23A00A129E2 /* DocFormatLib */,
|
||||
6967B2EC1E27C23A00A129E2 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6967B2EC1E27C23A00A129E2 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6967B2EB1E27C23A00A129E2 /* libDocFormatLib.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6967B2ED1E27C23A00A129E2 /* DocFormatLib */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6967B3E41E27C52700A129E2 /* DocDocxConverter */,
|
||||
6967B3E21E27C2D700A129E2 /* pole */,
|
||||
6967B2FA1E27C2A100A129E2 /* Common */,
|
||||
6967B2F71E27C26800A129E2 /* DocFormatLib.cpp */,
|
||||
6967B2F81E27C26800A129E2 /* DocFormatLib.h */,
|
||||
);
|
||||
path = DocFormatLib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6967B2FA1E27C2A100A129E2 /* Common */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6967B2FB1E27C2A100A129E2 /* Aggregat.h */,
|
||||
6967B2FC1E27C2A100A129E2 /* Callback.h */,
|
||||
6967B2FD1E27C2A100A129E2 /* FormatUtils.h */,
|
||||
6967B2FE1E27C2A100A129E2 /* IOperand.h */,
|
||||
6967B2FF1E27C2A100A129E2 /* IVirtualConstructor.h */,
|
||||
6967B3001E27C2A100A129E2 /* LanguageCodes.h */,
|
||||
6967B3011E27C2A100A129E2 /* Singleton.h */,
|
||||
6967B3021E27C2A100A129E2 /* SPRMCodes.h */,
|
||||
6967B3031E27C2A100A129E2 /* TargetOptions.h */,
|
||||
6967B3041E27C2A100A129E2 /* TextMark.h */,
|
||||
6967B3051E27C2A100A129E2 /* utf8.h */,
|
||||
6967B3061E27C2A100A129E2 /* XmlTools.h */,
|
||||
);
|
||||
name = Common;
|
||||
path = ../../../Common;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6967B3E21E27C2D700A129E2 /* pole */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6967B3DF1E27C2D500A129E2 /* pole.cpp */,
|
||||
6967B3E01E27C2D500A129E2 /* pole.h */,
|
||||
);
|
||||
name = pole;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6967B3E41E27C52700A129E2 /* DocDocxConverter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6967B3E51E27C52700A129E2 /* AbstractOpenXmlMapping.h */,
|
||||
6967B3E61E27C52700A129E2 /* AnnotationOwnerList.h */,
|
||||
6967B3E71E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp */,
|
||||
6967B3E81E27C52700A129E2 /* AnnotationReferenceDescriptor.h */,
|
||||
6967B3E91E27C52700A129E2 /* AutoSummaryInfo.h */,
|
||||
6967B3EA1E27C52700A129E2 /* BookmarkFirst.h */,
|
||||
6967B3EB1E27C52700A129E2 /* BorderCode.h */,
|
||||
6967B3EC1E27C52700A129E2 /* ByteStructure.h */,
|
||||
6967B3ED1E27C52700A129E2 /* CharacterPropertiesMapping.cpp */,
|
||||
6967B3EE1E27C52700A129E2 /* CharacterPropertiesMapping.h */,
|
||||
6967B3EF1E27C52700A129E2 /* CharacterPropertyExceptions.h */,
|
||||
6967B3F01E27C52700A129E2 /* CharacterRange.h */,
|
||||
6967B3F11E27C52700A129E2 /* CommentsMapping.h */,
|
||||
6967B3F21E27C52700A129E2 /* ContentTypes.h */,
|
||||
6967B3F31E27C52700A129E2 /* ConversionContext.h */,
|
||||
6967B3F41E27C52700A129E2 /* Converter.cpp */,
|
||||
6967B3F51E27C52700A129E2 /* Converter.h */,
|
||||
6967B3F61E27C52700A129E2 /* DateAndTime.h */,
|
||||
6967B3F71E27C52700A129E2 /* DocumentMapping.cpp */,
|
||||
6967B3F81E27C52700A129E2 /* DocumentMapping.h */,
|
||||
6967B3F91E27C52700A129E2 /* DocumentProperties.cpp */,
|
||||
6967B3FA1E27C52700A129E2 /* DocumentProperties.h */,
|
||||
6967B3FB1E27C52700A129E2 /* DocumentTypographyInfo.h */,
|
||||
6967B3FC1E27C52700A129E2 /* DrawingObjectGrid.h */,
|
||||
6967B3FD1E27C52700A129E2 /* DrawingPrimitives.cpp */,
|
||||
6967B3FE1E27C52700A129E2 /* DrawingPrimitives.h */,
|
||||
6967B3FF1E27C52700A129E2 /* EmuValue.h */,
|
||||
6967B4001E27C52700A129E2 /* EncryptionHeader.cpp */,
|
||||
6967B4011E27C52700A129E2 /* EncryptionHeader.h */,
|
||||
6967B4021E27C52700A129E2 /* EndnoteDescriptor.h */,
|
||||
6967B4031E27C52700A129E2 /* EndnotesMapping.h */,
|
||||
6967B4041E27C52700A129E2 /* FieldCharacter.h */,
|
||||
6967B4051E27C52700A129E2 /* FileInformationBlock.h */,
|
||||
6967B4061E27C52700A129E2 /* FixedPointNumber.h */,
|
||||
6967B4071E27C52700A129E2 /* FontFamilyName.cpp */,
|
||||
6967B4081E27C52700A129E2 /* FontFamilyName.h */,
|
||||
6967B4091E27C52700A129E2 /* FontTableMapping.cpp */,
|
||||
6967B40A1E27C52700A129E2 /* FontTableMapping.h */,
|
||||
6967B40B1E27C52700A129E2 /* FooterMapping.cpp */,
|
||||
6967B40C1E27C52700A129E2 /* FooterMapping.h */,
|
||||
6967B40D1E27C52700A129E2 /* FootnoteDescriptor.h */,
|
||||
6967B40E1E27C52700A129E2 /* FootnotesMapping.h */,
|
||||
6967B40F1E27C52700A129E2 /* FormattedDiskPage.h */,
|
||||
6967B4101E27C52700A129E2 /* FormattedDiskPageCHPX.cpp */,
|
||||
6967B4111E27C52700A129E2 /* FormattedDiskPageCHPX.h */,
|
||||
6967B4121E27C52700A129E2 /* FormattedDiskPagePAPX.cpp */,
|
||||
6967B4131E27C52700A129E2 /* FormattedDiskPagePAPX.h */,
|
||||
6967B4141E27C52700A129E2 /* Global.h */,
|
||||
6967B4151E27C52700A129E2 /* HeaderAndFooterTable.cpp */,
|
||||
6967B4161E27C52700A129E2 /* HeaderAndFooterTable.h */,
|
||||
6967B4171E27C52700A129E2 /* HeaderMapping.cpp */,
|
||||
6967B4181E27C52700A129E2 /* HeaderMapping.h */,
|
||||
6967B4191E27C52700A129E2 /* IBinaryReader.h */,
|
||||
6967B41A1E27C52700A129E2 /* IMapping.h */,
|
||||
6967B41B1E27C52700A129E2 /* IVisitable.h */,
|
||||
6967B41C1E27C52700A129E2 /* LanguageId.h */,
|
||||
6967B41D1E27C52700A129E2 /* LanguageIdMapping.cpp */,
|
||||
6967B41E1E27C52700A129E2 /* LanguageIdMapping.h */,
|
||||
6967B41F1E27C52700A129E2 /* LineSpacingDescriptor.h */,
|
||||
6967B4201E27C52700A129E2 /* ListData.cpp */,
|
||||
6967B4211E27C52700A129E2 /* ListData.h */,
|
||||
6967B4221E27C52700A129E2 /* ListFormatOverride.h */,
|
||||
6967B4231E27C52700A129E2 /* ListFormatOverrideLevel.h */,
|
||||
6967B4241E27C52700A129E2 /* ListFormatOverrideTable.h */,
|
||||
6967B4251E27C52700A129E2 /* ListLevel.cpp */,
|
||||
6967B4261E27C52700A129E2 /* ListLevel.h */,
|
||||
6967B4271E27C52700A129E2 /* ListTable.cpp */,
|
||||
6967B4281E27C52700A129E2 /* ListTable.h */,
|
||||
6967B4291E27C52700A129E2 /* MainDocumentMapping.cpp */,
|
||||
6967B42A1E27C52700A129E2 /* MainDocumentMapping.h */,
|
||||
6967B42B1E27C52700A129E2 /* MemoryStream.h */,
|
||||
6967B42C1E27C52700A129E2 /* NumberingMapping.cpp */,
|
||||
6967B42D1E27C52700A129E2 /* NumberingMapping.h */,
|
||||
6967B42E1E27C52700A129E2 /* OfficeArtContent.h */,
|
||||
6967B42F1E27C52700A129E2 /* OfficeDrawing */,
|
||||
6967B47A1E27C52700A129E2 /* OleObject.cpp */,
|
||||
6967B47B1E27C52700A129E2 /* OleObject.h */,
|
||||
6967B47C1E27C52700A129E2 /* OleObjectMapping.h */,
|
||||
6967B47D1E27C52700A129E2 /* OpenXmlPackage.cpp */,
|
||||
6967B47E1E27C52700A129E2 /* OpenXmlPackage.h */,
|
||||
6967B47F1E27C52700A129E2 /* ParagraphHeight.cpp */,
|
||||
6967B4801E27C52700A129E2 /* ParagraphHeight.h */,
|
||||
6967B4811E27C52700A129E2 /* ParagraphPropertiesMapping.cpp */,
|
||||
6967B4821E27C52700A129E2 /* ParagraphPropertiesMapping.h */,
|
||||
6967B4831E27C52700A129E2 /* ParagraphPropertyExceptions.cpp */,
|
||||
6967B4841E27C52700A129E2 /* ParagraphPropertyExceptions.h */,
|
||||
6967B4851E27C52700A129E2 /* PictureDescriptor.cpp */,
|
||||
6967B4861E27C52700A129E2 /* PictureDescriptor.h */,
|
||||
6967B4871E27C52700A129E2 /* PieceDescriptor.h */,
|
||||
6967B4881E27C52700A129E2 /* PieceTable.cpp */,
|
||||
6967B4891E27C52700A129E2 /* PieceTable.h */,
|
||||
6967B48A1E27C52700A129E2 /* Plex.h */,
|
||||
6967B48B1E27C52700A129E2 /* PropertiesMapping.cpp */,
|
||||
6967B48C1E27C52700A129E2 /* PropertiesMapping.h */,
|
||||
6967B48D1E27C52700A129E2 /* PropertyExceptions.cpp */,
|
||||
6967B48E1E27C52700A129E2 /* PropertyExceptions.h */,
|
||||
6967B48F1E27C52700A129E2 /* RevisionData.cpp */,
|
||||
6967B4901E27C52700A129E2 /* RevisionData.h */,
|
||||
6967B4911E27C52700A129E2 /* RGBColor.h */,
|
||||
6967B4921E27C52700A129E2 /* SectionDescriptor.h */,
|
||||
6967B4931E27C52700A129E2 /* SectionPropertiesMapping.cpp */,
|
||||
6967B4941E27C52700A129E2 /* SectionPropertiesMapping.h */,
|
||||
6967B4951E27C52700A129E2 /* SectionPropertyExceptions.h */,
|
||||
6967B4961E27C52700A129E2 /* SettingsMapping.cpp */,
|
||||
6967B4971E27C52700A129E2 /* SettingsMapping.h */,
|
||||
6967B4981E27C52700A129E2 /* ShadingDescriptor.h */,
|
||||
6967B4991E27C52700A129E2 /* SinglePropertyModifier.cpp */,
|
||||
6967B49A1E27C52700A129E2 /* SinglePropertyModifier.h */,
|
||||
6967B49B1E27C52700A129E2 /* Spa.cpp */,
|
||||
6967B49C1E27C52700A129E2 /* Spa.h */,
|
||||
6967B49D1E27C52700A129E2 /* SprmTDefTable.h */,
|
||||
6967B49E1E27C52700A129E2 /* StringTable.h */,
|
||||
6967B49F1E27C52700A129E2 /* StructuredStorageReader.h */,
|
||||
6967B4A01E27C52700A129E2 /* StyleSheet.cpp */,
|
||||
6967B4A11E27C52700A129E2 /* StyleSheet.h */,
|
||||
6967B4A21E27C52700A129E2 /* StyleSheetDescription.cpp */,
|
||||
6967B4A31E27C52700A129E2 /* StyleSheetDescription.h */,
|
||||
6967B4A41E27C52700A129E2 /* StyleSheetInformation.cpp */,
|
||||
6967B4A51E27C52700A129E2 /* StyleSheetInformation.h */,
|
||||
6967B4A61E27C52700A129E2 /* StyleSheetMapping.cpp */,
|
||||
6967B4A71E27C52700A129E2 /* StyleSheetMapping.h */,
|
||||
6967B4A81E27C52700A129E2 /* TabDescriptor.h */,
|
||||
6967B4A91E27C52700A129E2 /* TableCellPropertiesMapping.cpp */,
|
||||
6967B4AA1E27C52700A129E2 /* TableCellPropertiesMapping.h */,
|
||||
6967B4AB1E27C52700A129E2 /* TableInfo.h */,
|
||||
6967B4AC1E27C52700A129E2 /* TableMapping.cpp */,
|
||||
6967B4AD1E27C52700A129E2 /* TableMapping.h */,
|
||||
6967B4AE1E27C52700A129E2 /* TablePropertiesMapping.cpp */,
|
||||
6967B4AF1E27C52700A129E2 /* TablePropertiesMapping.h */,
|
||||
6967B4B01E27C52700A129E2 /* TablePropertyExceptions.h */,
|
||||
6967B4B11E27C52700A129E2 /* TableRowPropertiesMapping.cpp */,
|
||||
6967B4B21E27C52700A129E2 /* TableRowPropertiesMapping.h */,
|
||||
6967B4B31E27C52700A129E2 /* Tbkd.h */,
|
||||
6967B4B41E27C52700A129E2 /* TextboxMapping.cpp */,
|
||||
6967B4B51E27C52700A129E2 /* TextboxMapping.h */,
|
||||
6967B4B61E27C52700A129E2 /* TwipsValue.h */,
|
||||
6967B4B71E27C52700A129E2 /* VirtualStreamReader.h */,
|
||||
6967B4B81E27C52700A129E2 /* VMLPictureMapping.cpp */,
|
||||
6967B4B91E27C52700A129E2 /* VMLPictureMapping.h */,
|
||||
6967B4BA1E27C52700A129E2 /* VMLShapeMapping.cpp */,
|
||||
6967B4BB1E27C52700A129E2 /* VMLShapeMapping.h */,
|
||||
6967B4BC1E27C52700A129E2 /* VMLShapeTypeMapping.cpp */,
|
||||
6967B4BD1E27C52700A129E2 /* VMLShapeTypeMapping.h */,
|
||||
6967B4BE1E27C52700A129E2 /* WideString.h */,
|
||||
6967B4BF1E27C52700A129E2 /* WordDocument.cpp */,
|
||||
6967B4C01E27C52700A129E2 /* WordDocument.h */,
|
||||
6967B4C11E27C52700A129E2 /* WordprocessingDocument.cpp */,
|
||||
6967B4C21E27C52700A129E2 /* WordprocessingDocument.h */,
|
||||
);
|
||||
name = DocDocxConverter;
|
||||
path = ../../../DocDocxConverter;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6967B42F1E27C52700A129E2 /* OfficeDrawing */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8A1BC11A22DF34900084799E /* BitmapBlip.h */,
|
||||
8A1BC14D22DF34920084799E /* BlipStoreContainer.h */,
|
||||
8A1BC14722DF34910084799E /* BlipStoreEntry.h */,
|
||||
8A1BC15122DF34920084799E /* ChildAnchor.h */,
|
||||
8A1BC11122DF348F0084799E /* ClientAnchor.h */,
|
||||
8A1BC14422DF34910084799E /* ClientData.h */,
|
||||
8A1BC11422DF34900084799E /* DiagramBooleanProperties.h */,
|
||||
8A1BC11722DF34900084799E /* DrawingContainer.h */,
|
||||
8A1BC11C22DF34910084799E /* DrawingGroup.h */,
|
||||
8A1BC14822DF34920084799E /* DrawingGroupRecord.h */,
|
||||
8A1BC14F22DF34920084799E /* DrawingRecord.h */,
|
||||
8A1BC15022DF34920084799E /* GroupContainer.h */,
|
||||
8A1BC14522DF34910084799E /* GroupShapeRecord.h */,
|
||||
8A1BC11522DF34900084799E /* MetafilePictBlip.h */,
|
||||
8A1BC11322DF34900084799E /* OfficeArtClientTextbox.h */,
|
||||
8A1BC11B22DF34910084799E /* OfficeArtFRITContainer.h */,
|
||||
8A1BC14922DF34920084799E /* Record.cpp */,
|
||||
8A1BC11922DF34900084799E /* Record.h */,
|
||||
8A1BC15222DF34920084799E /* RecordFactory.cpp */,
|
||||
8A1BC14E22DF34920084799E /* RecordFactory.h */,
|
||||
8A1BC14C22DF34920084799E /* RegularContainer.h */,
|
||||
8A1BC14622DF34910084799E /* Shape.h */,
|
||||
8A1BC11D22DF34910084799E /* ShapeContainer.h */,
|
||||
8A1BC14B22DF34920084799E /* ShapeOptions.h */,
|
||||
8A1BC11E22DF34910084799E /* ShapeType.h */,
|
||||
8A1BC11622DF34900084799E /* ShapeTypeFactory.cpp */,
|
||||
8A1BC11222DF34900084799E /* ShapeTypeFactory.h */,
|
||||
8A1BC11F22DF34910084799E /* Shapetypes */,
|
||||
8A1BC14A22DF34920084799E /* SplitMenuColorContainer.h */,
|
||||
8A1BC11822DF34900084799E /* UnknownRecord.h */,
|
||||
);
|
||||
path = OfficeDrawing;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8A1BC11F22DF34910084799E /* Shapetypes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8A1BC12022DF34910084799E /* PlaqueType.h */,
|
||||
8A1BC12122DF34910084799E /* CubeType.h */,
|
||||
8A1BC12222DF34910084799E /* LightningBoltType.h */,
|
||||
8A1BC12322DF34910084799E /* OvalType.h */,
|
||||
8A1BC12422DF34910084799E /* CalloutsType.h */,
|
||||
8A1BC12522DF34910084799E /* TextboxType.h */,
|
||||
8A1BC12622DF34910084799E /* HexagonType.h */,
|
||||
8A1BC12722DF34910084799E /* NoSmokingType.h */,
|
||||
8A1BC12822DF34910084799E /* OctagonType.h */,
|
||||
8A1BC12922DF34910084799E /* ArcType.h */,
|
||||
8A1BC12A22DF34910084799E /* CanType.h */,
|
||||
8A1BC12B22DF34910084799E /* PictureFrameType.h */,
|
||||
8A1BC12C22DF34910084799E /* BevelType.h */,
|
||||
8A1BC12D22DF34910084799E /* MoonType.h */,
|
||||
8A1BC12E22DF34910084799E /* FoldedCornerlType.h */,
|
||||
8A1BC12F22DF34910084799E /* PentagonType.h */,
|
||||
8A1BC13022DF34910084799E /* BracketsType.h */,
|
||||
8A1BC13122DF34910084799E /* IsoscelesTriangleType.h */,
|
||||
8A1BC13222DF34910084799E /* StarType.h */,
|
||||
8A1BC13322DF34910084799E /* DonutType.h */,
|
||||
8A1BC13422DF34910084799E /* RectangleType.h */,
|
||||
8A1BC13522DF34910084799E /* TrapezoidType.h */,
|
||||
8A1BC13622DF34910084799E /* ArrowType.h */,
|
||||
8A1BC13722DF34910084799E /* SmileyFaceType.h */,
|
||||
8A1BC13822DF34910084799E /* PlusType.h */,
|
||||
8A1BC13922DF34910084799E /* RightTriangleType.h */,
|
||||
8A1BC13A22DF34910084799E /* HeartType.h */,
|
||||
8A1BC13B22DF34910084799E /* SunType.h */,
|
||||
8A1BC13C22DF34910084799E /* Connector.h */,
|
||||
8A1BC13D22DF34910084799E /* RoundedRectangleType.h */,
|
||||
8A1BC13E22DF34910084799E /* BlockArcType.h */,
|
||||
8A1BC13F22DF34910084799E /* WordArtText.h */,
|
||||
8A1BC14022DF34910084799E /* FlowChartType.h */,
|
||||
8A1BC14122DF34910084799E /* LineType.h */,
|
||||
8A1BC14222DF34910084799E /* DiamondType.h */,
|
||||
8A1BC14322DF34910084799E /* ParallelogramType.h */,
|
||||
);
|
||||
path = Shapetypes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
6967B2EA1E27C23A00A129E2 /* DocFormatLib */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 6967B2F41E27C23A00A129E2 /* Build configuration list for PBXNativeTarget "DocFormatLib" */;
|
||||
buildPhases = (
|
||||
6967B2E71E27C23A00A129E2 /* Sources */,
|
||||
6967B2E81E27C23A00A129E2 /* Frameworks */,
|
||||
6967B2E91E27C23A00A129E2 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = DocFormatLib;
|
||||
productName = DocFormatLib;
|
||||
productReference = 6967B2EB1E27C23A00A129E2 /* libDocFormatLib.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
6967B2E31E27C23A00A129E2 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0820;
|
||||
ORGANIZATIONNAME = OnlyOffce;
|
||||
TargetAttributes = {
|
||||
6967B2EA1E27C23A00A129E2 = {
|
||||
CreatedOnToolsVersion = 8.2;
|
||||
DevelopmentTeam = 2WH24U26GJ;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 6967B2E61E27C23A00A129E2 /* Build configuration list for PBXProject "DocFormatLib" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
);
|
||||
mainGroup = 6967B2E21E27C23A00A129E2;
|
||||
productRefGroup = 6967B2EC1E27C23A00A129E2 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
6967B2EA1E27C23A00A129E2 /* DocFormatLib */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
6967B2E71E27C23A00A129E2 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
6967B4D11E27C52700A129E2 /* LanguageIdMapping.cpp in Sources */,
|
||||
6967B4E61E27C52700A129E2 /* SinglePropertyModifier.cpp in Sources */,
|
||||
6967B4C91E27C52700A129E2 /* EncryptionHeader.cpp in Sources */,
|
||||
6967B4ED1E27C52700A129E2 /* TableMapping.cpp in Sources */,
|
||||
6967B4F31E27C52700A129E2 /* VMLShapeTypeMapping.cpp in Sources */,
|
||||
6967B4E31E27C52700A129E2 /* RevisionData.cpp in Sources */,
|
||||
6967B4D41E27C52700A129E2 /* ListTable.cpp in Sources */,
|
||||
6967B4F41E27C52700A129E2 /* WordDocument.cpp in Sources */,
|
||||
6967B4CD1E27C52700A129E2 /* FormattedDiskPageCHPX.cpp in Sources */,
|
||||
6967B4F11E27C52700A129E2 /* VMLPictureMapping.cpp in Sources */,
|
||||
6967B4D21E27C52700A129E2 /* ListData.cpp in Sources */,
|
||||
6967B4E21E27C52700A129E2 /* PropertyExceptions.cpp in Sources */,
|
||||
6967B4C31E27C52700A129E2 /* AnnotationReferenceDescriptor.cpp in Sources */,
|
||||
6967B4D31E27C52700A129E2 /* ListLevel.cpp in Sources */,
|
||||
8A1BC15322DF34920084799E /* ShapeTypeFactory.cpp in Sources */,
|
||||
6967B4CB1E27C52700A129E2 /* FontTableMapping.cpp in Sources */,
|
||||
6967B4EC1E27C52700A129E2 /* TableCellPropertiesMapping.cpp in Sources */,
|
||||
6967B4C61E27C52700A129E2 /* DocumentMapping.cpp in Sources */,
|
||||
6967B4CA1E27C52700A129E2 /* FontFamilyName.cpp in Sources */,
|
||||
6967B4F21E27C52700A129E2 /* VMLShapeMapping.cpp in Sources */,
|
||||
6967B4C71E27C52700A129E2 /* DocumentProperties.cpp in Sources */,
|
||||
6967B4EF1E27C52700A129E2 /* TableRowPropertiesMapping.cpp in Sources */,
|
||||
8A1BC15422DF34920084799E /* Record.cpp in Sources */,
|
||||
6967B4E01E27C52700A129E2 /* PieceTable.cpp in Sources */,
|
||||
6967B4E81E27C52700A129E2 /* StyleSheet.cpp in Sources */,
|
||||
6967B4EA1E27C52700A129E2 /* StyleSheetInformation.cpp in Sources */,
|
||||
6967B4D01E27C52700A129E2 /* HeaderMapping.cpp in Sources */,
|
||||
6967B4DA1E27C52700A129E2 /* OleObject.cpp in Sources */,
|
||||
6967B4D61E27C52700A129E2 /* NumberingMapping.cpp in Sources */,
|
||||
6967B4CE1E27C52700A129E2 /* FormattedDiskPagePAPX.cpp in Sources */,
|
||||
6967B4DF1E27C52700A129E2 /* PictureDescriptor.cpp in Sources */,
|
||||
6967B4C41E27C52700A129E2 /* CharacterPropertiesMapping.cpp in Sources */,
|
||||
6967B4F01E27C52700A129E2 /* TextboxMapping.cpp in Sources */,
|
||||
6967B4DC1E27C52700A129E2 /* ParagraphHeight.cpp in Sources */,
|
||||
6967B4DD1E27C52700A129E2 /* ParagraphPropertiesMapping.cpp in Sources */,
|
||||
6967B4E11E27C52700A129E2 /* PropertiesMapping.cpp in Sources */,
|
||||
6967B4C51E27C52700A129E2 /* Converter.cpp in Sources */,
|
||||
6967B4E91E27C52700A129E2 /* StyleSheetDescription.cpp in Sources */,
|
||||
6967B4E41E27C52700A129E2 /* SectionPropertiesMapping.cpp in Sources */,
|
||||
8A1BC15522DF34920084799E /* RecordFactory.cpp in Sources */,
|
||||
6967B4EE1E27C52700A129E2 /* TablePropertiesMapping.cpp in Sources */,
|
||||
6967B4D51E27C52700A129E2 /* MainDocumentMapping.cpp in Sources */,
|
||||
6967B4E51E27C52700A129E2 /* SettingsMapping.cpp in Sources */,
|
||||
6967B4DB1E27C52700A129E2 /* OpenXmlPackage.cpp in Sources */,
|
||||
6967B4CF1E27C52700A129E2 /* HeaderAndFooterTable.cpp in Sources */,
|
||||
6967B4F51E27C52700A129E2 /* WordprocessingDocument.cpp in Sources */,
|
||||
6967B2F91E27C26800A129E2 /* DocFormatLib.cpp in Sources */,
|
||||
6967B4CC1E27C52700A129E2 /* FooterMapping.cpp in Sources */,
|
||||
6967B4C81E27C52700A129E2 /* DrawingPrimitives.cpp in Sources */,
|
||||
6967B4E71E27C52700A129E2 /* Spa.cpp in Sources */,
|
||||
6967B3E11E27C2D500A129E2 /* pole.cpp in Sources */,
|
||||
6967B4EB1E27C52700A129E2 /* StyleSheetMapping.cpp in Sources */,
|
||||
6967B4DE1E27C52700A129E2 /* ParagraphPropertyExceptions.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
6967B2F21E27C23A00A129E2 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
6967B2F31E27C23A00A129E2 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
6967B2F51E27C23A00A129E2 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
DEVELOPMENT_TEAM = 2WH24U26GJ;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
/usr/include/,
|
||||
/usr/include/libxml2/,
|
||||
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/include",
|
||||
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/devel",
|
||||
"$(PROJECT_DIR)/../../../DesktopEditor/agg-2.4/include",
|
||||
"$(PROJECT_DIR)/../../../Common/3dParty/pole",
|
||||
"$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0",
|
||||
);
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
6967B2F61E27C23A00A129E2 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
DEVELOPMENT_TEAM = 2WH24U26GJ;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
/usr/include/,
|
||||
/usr/include/libxml2/,
|
||||
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/include",
|
||||
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/devel",
|
||||
"$(PROJECT_DIR)/../../../DesktopEditor/agg-2.4/include",
|
||||
"$(PROJECT_DIR)/../../../Common/3dParty/pole",
|
||||
"$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0",
|
||||
);
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
6967B2E61E27C23A00A129E2 /* Build configuration list for PBXProject "DocFormatLib" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
6967B2F21E27C23A00A129E2 /* Debug */,
|
||||
6967B2F31E27C23A00A129E2 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
6967B2F41E27C23A00A129E2 /* Build configuration list for PBXNativeTarget "DocFormatLib" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
6967B2F51E27C23A00A129E2 /* Debug */,
|
||||
6967B2F61E27C23A00A129E2 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 6967B2E31E27C23A00A129E2 /* Project object */;
|
||||
}
|
||||
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:DocFormatLib.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
@ -1 +0,0 @@
|
||||
DO NOT REMOVE FOLDER FOR XCODE
|
||||
@ -1,376 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{C5371405-338F-4B70-83BD-2A5CDF64F383}</ProjectGuid>
|
||||
<RootNamespace>DocFormatLib</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.23107.0</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
<IncludePath>D:\_Work\core\Common\3dParty\boost\build\win_32\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>D:\_Work\core\Common\3dParty\boost\build\win_32\lib;$(LibraryPath)</LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
|
||||
<IntDir>$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\..\..\DesktopEditor\freetype-2.5.2\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;PPTX_DEF;PPT_DEF;ENABLE_PPT_TO_PPTX_CONVERT;AVS_USE_CONVERT_PPTX_TOCUSTOM_VML;DONT_WRITE_EMBEDDED_FONTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4005;4311;4312;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_DEBUG;_LIB;USE_LITE_READER;_USE_XMLLITE_READER_;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;PPTX_DEF;PPT_DEF;ENABLE_PPT_TO_PPTX_CONVERT;AVS_USE_CONVERT_PPTX_TOCUSTOM_VML;DONT_WRITE_EMBEDDED_FONTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..\Common\DocxFormat\Source\XML\libxml2\XML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>NDEBUG;_LIB;USE_ATL_CSTRINGS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader />
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\Common\3dParty\pole\pole.h" />
|
||||
<ClInclude Include="..\..\Common\Aggregat.h" />
|
||||
<ClInclude Include="..\..\Common\Callback.h" />
|
||||
<ClInclude Include="..\..\Common\FormatUtils.h" />
|
||||
<ClInclude Include="..\..\Common\IOperand.h" />
|
||||
<ClInclude Include="..\..\Common\IVirtualConstructor.h" />
|
||||
<ClInclude Include="..\..\Common\LanguageCodes.h" />
|
||||
<ClInclude Include="..\..\Common\Singleton.h" />
|
||||
<ClInclude Include="..\..\Common\SPRMCodes.h" />
|
||||
<ClInclude Include="..\..\Common\TargetOptions.h" />
|
||||
<ClInclude Include="..\..\Common\TextMark.h" />
|
||||
<ClInclude Include="..\..\Common\utf8.h" />
|
||||
<ClInclude Include="..\..\Common\XmlTools.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\AbstractOpenXmlMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\AnnotationOwnerList.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\AnnotationReferenceDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\AutoSummaryInfo.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\BookmarkFirst.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\BorderCode.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ByteStructure.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterPropertiesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterPropertyExceptions.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterRange.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\CommentsMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ContentTypes.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ConversionContext.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\Converter.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DateAndTime.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentTypographyInfo.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DrawingObjectGrid.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\DrawingPrimitives.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\EmuValue.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\EncryptionHeader.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\EndnoteDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\EndnotesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FieldCharacter.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FileInformationBlock.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FixedPointNumber.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FontFamilyName.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FontTableMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FooterMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FootnoteDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FootnotesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPage.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPageCHPX.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPagePAPX.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormFieldData.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormFieldDataMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\Global.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\HeaderAndFooterTable.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\HeaderMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\IBinaryReader.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\IMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\IVisitable.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\LanguageId.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\LanguageIdMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\LineSpacingDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListData.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverride.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverrideLevel.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverrideTable.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListLevel.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListTable.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\MainDocumentMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\MemoryStream.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\NumberingMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeArtContent.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BitmapBlip.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BlipStoreContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BlipStoreEntry.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ChildAnchor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ClientAnchor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ClientData.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingGroup.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingGroupRecord.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingRecord.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupShapeRecord.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\MetafilePictBlip.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\OfficeArtClientTextbox.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Record.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\RecordFactory.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\RegularContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shape.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeOptions.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeTypeFactory.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ArcType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ArrowType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BevelType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BlockArcType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BracketsType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CalloutsType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CanType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\Connector.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CubeType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\DiamondType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\DonutType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\FlowChartType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\FoldedCornerlType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\HeartType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\HexagonType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\IsoscelesTriangleType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\LightningBoltType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\LineType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\MoonType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\NoSmokingType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\OctagonType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\OvalType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ParallelogramType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PentagonType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PictureFrameType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PlaqueType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PlusType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RectangleType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RightTriangleType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RoundedRectangleType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\SmileyFaceType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\StarType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\SunType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\TextboxType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\TrapezoidType.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\WordArtText.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\SplitMenuColorContainer.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\threeDBooleanProperties.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\UnknownRecord.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OleObject.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OleObjectMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\OpenXmlPackage.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphHeight.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphPropertiesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphPropertyExceptions.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\PictureDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\PieceDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\PieceTable.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\Plex.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\PropertiesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\PropertyExceptions.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\RevisionData.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\RGBColor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionPropertiesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionPropertyExceptions.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\SettingsMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\ShadingDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\SinglePropertyModifier.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\Spa.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\SprmTDefTable.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\StringTable.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\StructuredStorageReader.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheet.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetDescription.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetInformation.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TabDescriptor.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableCellPropertiesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableInfo.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TablePropertiesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TablePropertyExceptions.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableRowPropertiesMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\Tbkd.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TextboxMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\TwipsValue.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\VirtualStreamReader.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLPictureMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLShapeMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLShapeTypeMapping.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\WideString.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\WordDocument.h" />
|
||||
<ClInclude Include="..\..\DocDocxConverter\WordprocessingDocument.h" />
|
||||
<ClInclude Include="..\DocFormatLib.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\Common\3dParty\pole\pole.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\AnnotationReferenceDescriptor.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\CharacterPropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\Converter.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\DocumentMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\DocumentProperties.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\DrawingPrimitives.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\EncryptionHeader.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FontFamilyName.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FontTableMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FooterMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormattedDiskPageCHPX.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormattedDiskPagePAPX.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormFieldData.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\HeaderAndFooterTable.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\HeaderMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\LanguageIdMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListData.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListLevel.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListTable.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\MainDocumentMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\NumberingMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\Record.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\RecordFactory.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\ShapeTypeFactory.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OleObject.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\OpenXmlPackage.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphHeight.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphPropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphPropertyExceptions.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\PictureDescriptor.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\PieceTable.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\PropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\PropertyExceptions.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\RevisionData.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\SectionPropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\SettingsMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\SinglePropertyModifier.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\Spa.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheet.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetDescription.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetInformation.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableCellPropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\TablePropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableRowPropertiesMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\TextboxMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLPictureMapping.cpp">
|
||||
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/bigobj %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLShapeMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLShapeTypeMapping.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\WordDocument.cpp" />
|
||||
<ClCompile Include="..\..\DocDocxConverter\WordprocessingDocument.cpp" />
|
||||
<ClCompile Include="..\DocFormatLib.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@ -1,713 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Common">
|
||||
<UniqueIdentifier>{b71e7e8a-fe3b-470f-aecc-cd46ae338e31}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Common\pole">
|
||||
<UniqueIdentifier>{08f46501-29da-4691-b19d-2f230e536ee2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Doc_2_Docx">
|
||||
<UniqueIdentifier>{0c04a0b9-7265-4e3e-af45-0a86e4d7c49c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Doc_2_Docx\OfficeDrawing">
|
||||
<UniqueIdentifier>{bbeff7b2-a7b0-4cab-85a4-893aebfce8a8}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Doc_2_Docx\OfficeDrawing\Shapetypes">
|
||||
<UniqueIdentifier>{80f3b70c-514b-444d-8a10-21c4ccbea4a1}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Doc_2_Docx\Mapping">
|
||||
<UniqueIdentifier>{6640ac5f-d20f-4e15-9a1c-230e6d19266e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\Common\Aggregat.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\Callback.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\FormatUtils.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\IOperand.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\IVirtualConstructor.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\LanguageCodes.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\Singleton.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\SPRMCodes.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\TargetOptions.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\TextMark.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\utf8.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Common\XmlTools.h">
|
||||
<Filter>Common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\Common\3dParty\pole\pole.h">
|
||||
<Filter>Common\pole</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\AnnotationOwnerList.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\AnnotationReferenceDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\AutoSummaryInfo.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\BookmarkFirst.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\BorderCode.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ByteStructure.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterPropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterRange.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ContentTypes.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ConversionContext.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Converter.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DateAndTime.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentProperties.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentTypographyInfo.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DrawingObjectGrid.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DrawingPrimitives.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\EmuValue.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\EncryptionHeader.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\EndnoteDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FieldCharacter.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FileInformationBlock.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FixedPointNumber.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FontFamilyName.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FootnoteDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPage.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPageCHPX.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormattedDiskPagePAPX.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormFieldData.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Global.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\HeaderAndFooterTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\IBinaryReader.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\IMapping.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\IVisitable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\LanguageId.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\LineSpacingDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListData.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverride.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverrideLevel.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListFormatOverrideTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListLevel.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ListTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\MemoryStream.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeArtContent.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OleObject.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OpenXmlPackage.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphHeight.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphPropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PictureDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PieceDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PieceTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Plex.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\RevisionData.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\RGBColor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionPropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ShadingDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SinglePropertyModifier.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Spa.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SprmTDefTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StringTable.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StructuredStorageReader.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheet.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetDescription.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetInformation.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TabDescriptor.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableInfo.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TablePropertyExceptions.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\Tbkd.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TwipsValue.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\VirtualStreamReader.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\WideString.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\WordDocument.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\WordprocessingDocument.h">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BitmapBlip.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BlipStoreContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\BlipStoreEntry.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ChildAnchor.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ClientAnchor.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ClientData.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingGroup.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingGroupRecord.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\DrawingRecord.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\GroupShapeRecord.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\MetafilePictBlip.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\OfficeArtClientTextbox.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Record.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\RecordFactory.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\RegularContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shape.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeOptions.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\ShapeTypeFactory.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\SplitMenuColorContainer.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\threeDBooleanProperties.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\UnknownRecord.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ArcType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ArrowType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BevelType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BlockArcType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\BracketsType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CalloutsType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CanType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\Connector.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\CubeType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\DiamondType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\DonutType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\FlowChartType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\FoldedCornerlType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\HeartType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\HexagonType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\IsoscelesTriangleType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\LightningBoltType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\LineType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\MoonType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\NoSmokingType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\OctagonType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\OvalType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\ParallelogramType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PentagonType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PictureFrameType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PlaqueType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\PlusType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RectangleType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RightTriangleType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\RoundedRectangleType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\SmileyFaceType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\StarType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\SunType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\TextboxType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\TrapezoidType.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OfficeDrawing\Shapetypes\WordArtText.h">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing\Shapetypes</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\AbstractOpenXmlMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\CharacterPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\CommentsMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\DocumentMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\EndnotesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FontTableMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FooterMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FootnotesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\FormFieldDataMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\HeaderMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\LanguageIdMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\MainDocumentMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\NumberingMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\OleObjectMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\ParagraphPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\PropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SectionPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\SettingsMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\StyleSheetMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableCellPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TablePropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TableRowPropertiesMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\TextboxMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLPictureMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLShapeMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\DocDocxConverter\VMLShapeTypeMapping.h">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\DocFormatLib.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\Common\3dParty\pole\pole.cpp">
|
||||
<Filter>Common\pole</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\AnnotationReferenceDescriptor.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\Converter.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\DocumentProperties.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\DrawingPrimitives.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\EncryptionHeader.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FontFamilyName.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormattedDiskPageCHPX.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormattedDiskPagePAPX.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FormFieldData.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\HeaderAndFooterTable.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListData.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListLevel.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ListTable.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OleObject.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OpenXmlPackage.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphHeight.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphPropertyExceptions.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\PictureDescriptor.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\PieceTable.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\PropertyExceptions.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\RevisionData.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\SinglePropertyModifier.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\Spa.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheet.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetDescription.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetInformation.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\WordDocument.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\WordprocessingDocument.cpp">
|
||||
<Filter>Doc_2_Docx</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\Record.cpp">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\RecordFactory.cpp">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\OfficeDrawing\ShapeTypeFactory.cpp">
|
||||
<Filter>Doc_2_Docx\OfficeDrawing</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\CharacterPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\DocumentMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FontTableMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\FooterMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\HeaderMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\LanguageIdMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\MainDocumentMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\NumberingMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\ParagraphPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\PropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\SectionPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\SettingsMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\StyleSheetMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableCellPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TablePropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TableRowPropertiesMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\TextboxMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLPictureMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLShapeMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\DocDocxConverter\VMLShapeTypeMapping.cpp">
|
||||
<Filter>Doc_2_Docx\Mapping</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\DocFormatLib.cpp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -1,201 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../Common/Singleton.h"
|
||||
#include "../pole/pole.h"
|
||||
|
||||
namespace ASCDocFileFormat
|
||||
{
|
||||
class BinaryStorage
|
||||
{
|
||||
struct BinaryStorageData
|
||||
{
|
||||
unsigned char* data;
|
||||
unsigned int size;
|
||||
|
||||
BinaryStorageData():
|
||||
data(NULL), size(0)
|
||||
{
|
||||
}
|
||||
|
||||
BinaryStorageData( const unsigned char* _data, unsigned int _size ):
|
||||
data(NULL), size(0)
|
||||
{
|
||||
if ( ( _data != NULL ) && ( _size != NULL ) )
|
||||
{
|
||||
this->size = _size;
|
||||
|
||||
this->data = new unsigned char[this->size];
|
||||
|
||||
if ( this->data != NULL )
|
||||
{
|
||||
memset( this->data, 0, this->size );
|
||||
|
||||
memcpy( this->data, _data, this->size );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BinaryStorageData( const BinaryStorageData& _binaryStorageData ):
|
||||
data(NULL), size(0)
|
||||
{
|
||||
if ( ( _binaryStorageData.data != NULL ) && ( _binaryStorageData.size != NULL ) )
|
||||
{
|
||||
this->size = _binaryStorageData.size;
|
||||
|
||||
this->data = new unsigned char[this->size];
|
||||
|
||||
if ( this->data != NULL )
|
||||
{
|
||||
memset( this->data, 0, this->size );
|
||||
|
||||
memcpy( this->data, _binaryStorageData.data, this->size );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
~BinaryStorageData()
|
||||
{
|
||||
RELEASEARRAYOBJECTS (data);
|
||||
}
|
||||
};
|
||||
|
||||
protected:
|
||||
POLE::Storage* pIStorage;
|
||||
POLE::Stream* pIStream;
|
||||
|
||||
list<BinaryStorageData> data;
|
||||
unsigned long offset;
|
||||
unsigned long startOffset;
|
||||
bool ownStream;
|
||||
|
||||
public:
|
||||
explicit BinaryStorage( unsigned long _startOffset = 0, POLE::Stream* _pIStream = NULL ):
|
||||
pIStream(_pIStream), pIStorage(NULL), offset(_startOffset), startOffset(_startOffset), ownStream(false)
|
||||
{
|
||||
}
|
||||
|
||||
long BindToStorage( POLE::Storage* _pIStorage, const char* _stream_name )
|
||||
{
|
||||
HRESULT res = S_FALSE;
|
||||
|
||||
pIStorage = _pIStorage;
|
||||
|
||||
if ( pIStorage != NULL )
|
||||
{
|
||||
if ( ( pIStream != NULL ) && ( this->ownStream ) )
|
||||
{
|
||||
delete pIStream;
|
||||
pIStream = NULL;
|
||||
}
|
||||
|
||||
pIStream = new POLE::Stream(pIStorage,_stream_name,true);
|
||||
|
||||
if (pIStream == NULL)return S_FALSE;
|
||||
//res = this->pIStorage->OpenStream( _stream, NULL, ( STGM_READWRITE | STGM_DIRECT | STGM_SHARE_EXCLUSIVE ), NULL, &(this->pIStream) );
|
||||
//{
|
||||
// res = this->pIStorage->CreateStream( _stream, ( STGM_READWRITE | STGM_DIRECT | STGM_SHARE_EXCLUSIVE ), NULL, NULL, &(this->pIStream) );
|
||||
//}
|
||||
}
|
||||
|
||||
if ( SUCCEEDED( res ) )
|
||||
{
|
||||
this->ownStream = true;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
virtual ~BinaryStorage()
|
||||
{
|
||||
if ( ( pIStream != NULL ) && ( ownStream ) )
|
||||
{
|
||||
delete pIStream;
|
||||
pIStream = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned long PushData( const unsigned char* _data, unsigned int _size )
|
||||
{
|
||||
this->data.push_back( BinaryStorageData( _data, _size ) );
|
||||
|
||||
unsigned long dataOffset = this->offset;
|
||||
|
||||
this->offset += _size;
|
||||
|
||||
return dataOffset;
|
||||
}
|
||||
|
||||
unsigned long ClearData()
|
||||
{
|
||||
this->data.clear();
|
||||
|
||||
this->offset = this->startOffset;
|
||||
|
||||
return this->offset;
|
||||
}
|
||||
|
||||
long WriteData()
|
||||
{
|
||||
long res = S_OK;
|
||||
ULONG writtenSize;
|
||||
|
||||
POLE::uint64 pos = startOffset;
|
||||
|
||||
if ( pIStream != NULL )
|
||||
{
|
||||
for ( list<BinaryStorageData>::const_iterator iter = data.begin(); iter != data.end(); iter++ )
|
||||
{
|
||||
pIStream->seek( pos);
|
||||
writtenSize = pIStream->write( iter->data, iter->size );
|
||||
pos += iter->size;
|
||||
}
|
||||
pIStream->flush();
|
||||
}
|
||||
else
|
||||
{
|
||||
res = S_FALSE;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
};
|
||||
|
||||
class BinaryStorageSingleton: public Singleton<BinaryStorageSingleton>, public BinaryStorage
|
||||
{
|
||||
protected:
|
||||
BinaryStorageSingleton(): BinaryStorage() {};
|
||||
virtual ~BinaryStorageSingleton() {};
|
||||
friend class Singleton<BinaryStorageSingleton>;
|
||||
};
|
||||
}
|
||||
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IParagraphItem.h"
|
||||
|
||||
namespace ASCDocFileFormat
|
||||
{
|
||||
class BookmarkEnd: public IParagraphItem
|
||||
{
|
||||
|
||||
public:
|
||||
BookmarkEnd()
|
||||
{
|
||||
}
|
||||
|
||||
explicit BookmarkEnd (std::wstring& _id) : id (_id)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
virtual ~BookmarkEnd()
|
||||
{
|
||||
}
|
||||
|
||||
virtual unsigned long GetTextSize() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual std::wstring GetAllText() const
|
||||
{
|
||||
return std::wstring();
|
||||
}
|
||||
|
||||
virtual vector<Chpx> GetRunProperties (vector<unsigned int>* runOffsets) const
|
||||
{
|
||||
return vector<Chpx>();
|
||||
}
|
||||
|
||||
virtual unsigned int PrlSize() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual vector<IParagraphItemPtr> GetAllRunsCopy( vector<unsigned int>* runOffsets ) const
|
||||
{
|
||||
vector<IParagraphItemPtr> paragraphItems;
|
||||
|
||||
if ( runOffsets != NULL )
|
||||
{
|
||||
paragraphItems.push_back( IParagraphItemPtr( static_cast<IParagraphItem*>(this->Clone()) ) );
|
||||
runOffsets->push_back( 0 );
|
||||
}
|
||||
|
||||
return paragraphItems;
|
||||
}
|
||||
|
||||
virtual IVirtualConstructor* New() const
|
||||
{
|
||||
return new BookmarkEnd();
|
||||
}
|
||||
|
||||
virtual IVirtualConstructor* Clone() const
|
||||
{
|
||||
return new BookmarkEnd(*this);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
inline std::wstring GetID() const
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
std::wstring id;
|
||||
};
|
||||
}
|
||||
@ -1,112 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IParagraphItem.h"
|
||||
|
||||
namespace ASCDocFileFormat
|
||||
{
|
||||
class BookmarkStart : public IParagraphItem
|
||||
{
|
||||
public:
|
||||
BookmarkStart()
|
||||
{
|
||||
}
|
||||
|
||||
explicit BookmarkStart (std::wstring& _id, std::wstring& _name) : id(_id), name(_name)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~BookmarkStart()
|
||||
{
|
||||
}
|
||||
|
||||
virtual unsigned long GetTextSize() const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual std::wstring GetAllText() const
|
||||
{
|
||||
return std::wstring();
|
||||
}
|
||||
|
||||
virtual vector<Chpx> GetRunProperties( vector<unsigned int>* runOffsets ) const
|
||||
{
|
||||
return vector<Chpx>();
|
||||
}
|
||||
|
||||
virtual unsigned int PrlSize () const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual vector<IParagraphItemPtr> GetAllRunsCopy( vector<unsigned int>* runOffsets ) const
|
||||
{
|
||||
vector<IParagraphItemPtr> paragraphItems;
|
||||
|
||||
if ( runOffsets != NULL )
|
||||
{
|
||||
paragraphItems.push_back( IParagraphItemPtr( static_cast<IParagraphItem*>(this->Clone()) ) );
|
||||
runOffsets->push_back( 0 );
|
||||
}
|
||||
|
||||
return paragraphItems;
|
||||
}
|
||||
|
||||
virtual IVirtualConstructor* New() const
|
||||
{
|
||||
return new BookmarkStart();
|
||||
}
|
||||
|
||||
virtual IVirtualConstructor* Clone() const
|
||||
{
|
||||
return new BookmarkStart(*this);
|
||||
}
|
||||
//
|
||||
inline std::wstring GetID() const
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
inline std::wstring GetName() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
|
||||
std::wstring id;
|
||||
std::wstring name;
|
||||
};
|
||||
}
|
||||
@ -1,196 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "COLORREF.h"
|
||||
|
||||
namespace ASCDocFileFormat
|
||||
{
|
||||
class Brc: public IOperand
|
||||
{
|
||||
private:
|
||||
static const unsigned char SIZE_IN_BYTES = 8;
|
||||
|
||||
unsigned char bytes[SIZE_IN_BYTES];
|
||||
|
||||
public:
|
||||
Brc()
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
}
|
||||
|
||||
explicit Brc( const COLORREF& _cv, unsigned char _dptLineWidth, unsigned char _brcType, unsigned char _dptSpace, bool fShadow, bool fFrame )
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
|
||||
unsigned char cvSize = _cv.Size();
|
||||
|
||||
memcpy( this->bytes, (unsigned char*)_cv, cvSize );
|
||||
|
||||
unsigned char dptLineWidth = 2;
|
||||
|
||||
if ( _dptLineWidth > 2 )
|
||||
{
|
||||
dptLineWidth = _dptLineWidth;
|
||||
}
|
||||
|
||||
this->bytes[cvSize] = dptLineWidth;
|
||||
this->bytes[cvSize + sizeof(dptLineWidth)] = _brcType;
|
||||
|
||||
unsigned short dptSpaceAndFlags = 0;
|
||||
dptSpaceAndFlags |= _dptSpace; //Set dptSpace
|
||||
|
||||
if ( fShadow )
|
||||
{
|
||||
dptSpaceAndFlags |= 0x20; //Set fShadow
|
||||
}
|
||||
|
||||
if ( fFrame )
|
||||
{
|
||||
dptSpaceAndFlags |= 0x40; //Set fFrame
|
||||
}
|
||||
|
||||
FormatUtils::SetBytes( ( this->bytes + cvSize + sizeof(dptLineWidth) + sizeof(_brcType) ), dptSpaceAndFlags );
|
||||
}
|
||||
|
||||
explicit Brc( const unsigned char* _bytes )
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
|
||||
if ( _bytes != NULL )
|
||||
{
|
||||
memcpy( this->bytes, _bytes, SIZE_IN_BYTES );
|
||||
}
|
||||
}
|
||||
|
||||
Brc( const Brc& _brc )
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
|
||||
memcpy( this->bytes, _brc.bytes, SIZE_IN_BYTES );
|
||||
}
|
||||
|
||||
Brc& operator = ( const Brc& _brc )
|
||||
{
|
||||
if ( this != &_brc )
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
|
||||
memcpy( this->bytes, _brc.bytes, SIZE_IN_BYTES );
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
virtual ~Brc()
|
||||
{
|
||||
}
|
||||
|
||||
virtual operator unsigned char*() const
|
||||
{
|
||||
return (unsigned char*)this->bytes;
|
||||
}
|
||||
|
||||
virtual operator const unsigned char*() const
|
||||
{
|
||||
return (const unsigned char*)this->bytes;
|
||||
}
|
||||
|
||||
virtual unsigned int Size() const
|
||||
{
|
||||
return sizeof(this->bytes);
|
||||
}
|
||||
};
|
||||
|
||||
class BrcOperand: public IOperand
|
||||
{
|
||||
private:
|
||||
static const unsigned char SIZE_IN_BYTES = 9;
|
||||
|
||||
unsigned char bytes[SIZE_IN_BYTES];
|
||||
|
||||
public:
|
||||
BrcOperand()
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
|
||||
this->bytes[0] = ( SIZE_IN_BYTES - 1 );
|
||||
}
|
||||
|
||||
explicit BrcOperand( const Brc& _brc )
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
|
||||
this->bytes[0] = ( SIZE_IN_BYTES - 1 );
|
||||
|
||||
memcpy( ( this->bytes + sizeof(unsigned char) ), (unsigned char*)_brc, _brc.Size() );
|
||||
}
|
||||
|
||||
BrcOperand( const BrcOperand& _brcOperand )
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
|
||||
memcpy( this->bytes, _brcOperand.bytes, SIZE_IN_BYTES );
|
||||
}
|
||||
|
||||
BrcOperand& operator = ( const BrcOperand& _brcOperand )
|
||||
{
|
||||
if ( this != &_brcOperand )
|
||||
{
|
||||
memset( this->bytes, 0, SIZE_IN_BYTES );
|
||||
|
||||
memcpy( this->bytes, _brcOperand.bytes, SIZE_IN_BYTES );
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
virtual ~BrcOperand()
|
||||
{
|
||||
}
|
||||
|
||||
virtual operator unsigned char*() const
|
||||
{
|
||||
return (unsigned char*)this->bytes;
|
||||
}
|
||||
|
||||
virtual operator const unsigned char*() const
|
||||
{
|
||||
return (const unsigned char*)this->bytes;
|
||||
}
|
||||
|
||||
virtual unsigned int Size() const
|
||||
{
|
||||
return sizeof(this->bytes);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,133 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
namespace ASCDocFileFormat
|
||||
{
|
||||
union Brc80
|
||||
{
|
||||
private:
|
||||
struct
|
||||
{
|
||||
unsigned int dptLineWidth:8;
|
||||
unsigned int brcType:8;
|
||||
unsigned int ico:8;
|
||||
unsigned int dptSpace:5;
|
||||
unsigned int fShadow:1;
|
||||
unsigned int fFrame:1;
|
||||
unsigned int reserved:1;
|
||||
} Brc80Struct;
|
||||
unsigned int Brc80Int;
|
||||
|
||||
public:
|
||||
Brc80() : Brc80Int(0xFFFFFFFF)
|
||||
{
|
||||
}
|
||||
|
||||
explicit Brc80( unsigned int _brc80 ) : Brc80Int(_brc80)
|
||||
{
|
||||
}
|
||||
|
||||
explicit Brc80( unsigned char _dptLineWidth, unsigned char _brcType, unsigned char _ico, unsigned char _dptSpace, bool fShadow, bool fFrame )
|
||||
{
|
||||
if ( _dptLineWidth < 2 )
|
||||
{
|
||||
this->Brc80Struct.dptLineWidth = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
this->Brc80Struct.dptLineWidth = _dptLineWidth;
|
||||
}
|
||||
|
||||
if ( _brcType == 0x1A )
|
||||
{
|
||||
this->Brc80Struct.brcType = 0x18;
|
||||
}
|
||||
else if ( _brcType == 0x1B )
|
||||
{
|
||||
this->Brc80Struct.brcType = 0x19;
|
||||
}
|
||||
else
|
||||
{
|
||||
this->Brc80Struct.brcType = _brcType;
|
||||
}
|
||||
|
||||
if ( _ico >= 0x11 )
|
||||
{
|
||||
this->Brc80Struct.ico = 0x10;
|
||||
}
|
||||
else
|
||||
{
|
||||
this->Brc80Struct.ico = _ico;
|
||||
}
|
||||
|
||||
this->Brc80Struct.dptSpace = _dptSpace;
|
||||
|
||||
( fShadow ) ? ( this->Brc80Struct.fShadow = 1 ) : ( this->Brc80Struct.fShadow = 0 );
|
||||
( fFrame ) ? ( this->Brc80Struct.fFrame = 1 ) : ( this->Brc80Struct.fFrame = 0 );
|
||||
|
||||
this->Brc80Struct.reserved = 0;
|
||||
}
|
||||
|
||||
operator unsigned int() const
|
||||
{
|
||||
return Brc80Int;
|
||||
}
|
||||
};
|
||||
|
||||
class Brc80MayBeNil
|
||||
{
|
||||
private:
|
||||
Brc80 brc80;
|
||||
|
||||
public:
|
||||
Brc80MayBeNil():
|
||||
brc80()
|
||||
{
|
||||
}
|
||||
|
||||
explicit Brc80MayBeNil( unsigned int _brc80MayBeNil ):
|
||||
brc80(_brc80MayBeNil)
|
||||
{
|
||||
}
|
||||
|
||||
Brc80MayBeNil( unsigned char _dptLineWidth, unsigned char _brcType, unsigned char _ico, unsigned char _dptSpace, bool fShadow, bool fFrame ): brc80( _dptLineWidth, _brcType, _ico, _dptSpace, fShadow, fFrame )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
operator unsigned int() const
|
||||
{
|
||||
return this->brc80;
|
||||
}
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user