unicode_weurope.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. /*
  2. * License (GPL):
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. * Author: © 2019, 2020 by Jos Boersema
  14. *
  15. */
  16. /* An amount of Unicode #defines
  17. * - western european accented characters
  18. * - various punctuation symbols, different number formats, math symbols, other symbols.
  19. */
  20. // a lower case variants
  21. #define CAL_ACU 0xe1 // 'C' for Costum 'A' for a, 'L' for lower, "ACU" for acute: á
  22. #define CAL_CAR 0xe2 // '' '' '' "CAR" for caret: â
  23. #define CAL_DIA 0xe4 // '' '' '' "DIA" for diaereses: ä
  24. #define CAL_GRA 0xe0 // '' '' '' "GRA" for grave: à
  25. // A upper case variants
  26. #define CAU_ACU 0xc1 // '' '' 'U' for upper, "ACU" for acute: Á
  27. #define CAU_CAR 0xc2 // '' '' '' "CAR" for caret: Â
  28. #define CAU_DIA 0xc4 // '' '' '' "DIA" for diaereses: Ä
  29. #define CAU_GRA 0xc0 // '' '' '' "GRA" for grave: À
  30. // A with ring (Scandinavia)
  31. #define CAL_RNG 0xe5 // '' 'A' for a, 'L' for lower, "RNG" for Ring: å
  32. #define CAU_RNG 0xc5 // '' '' 'U' for upper, '' : Å
  33. // AE (French)
  34. #define CAEL_BI 0xe6 // '' "AE" for ae, 'L' for lower '' : æ
  35. #define CAEU_BI 0xc6 // '' '' 'U' for upper, '' : Æ
  36. // OE (French)
  37. #define COEL_BI 0x153 // '' "AO" for ao, 'L' for lower, "BI" for two-character: œ
  38. #define COEU_BI 0x152 // '' '' 'U' for upper, '' ; Œ
  39. // Mu (French)
  40. #define C_MU_L 0x03BC // '' "MU" for Mu (Greek letter), 'L' for lower:
  41. // C with cedilla
  42. #define CCL_CDL 0xe7 // '' 'C' for c, 'L' for lower, "CDL" for cedilla: ç
  43. #define CCU_CDL 0xc7 // '' '' 'U' for upper, '' : Ç
  44. // e lower case variants
  45. #define CEL_ACU 0xe9 // 'C' for Costum 'E' for e, 'L' for lower, "ACU" for acute: é
  46. #define CEL_CAR 0xea // '' '' '' "CAR" for caret: ê
  47. #define CEL_DIA 0xeb // '' '' '' "DIA" for diaereses: ë
  48. #define CEL_GRA 0xe8 // '' '' '' "GRA" for grave: è
  49. // E upper case variants
  50. #define CEU_ACU 0xc9 // '' '' 'U' for uuper, "ACU" for acute: É
  51. #define CEU_CAR 0xca // '' '' '' "CAR" for caret: Ê
  52. #define CEU_DIA 0xcb // '' '' '' "DIA" for diaereses: Ë
  53. #define CEU_GRA 0xc8 // '' '' '' "GRA" for grave: È
  54. // i lower case variants
  55. #define CIL_ACU 0xed // '' 'I' for i, 'L' for lower, "ACU" for acute: í
  56. #define CIL_CAR 0xee // '' '' '' "CAR" for caret: î
  57. #define CIL_DIA 0xef // '' '' '' "DIA" for diaereses: ï
  58. #define CIL_GRA 0xec // '' '' '' "GRA" for grave: ì
  59. // I upper case variants
  60. #define CIU_ACU 0xcd // '' '' 'U' for upper, "ACU" for acute: Í
  61. #define CIU_CAR 0xce // '' '' '' "CAR" for caret: Î
  62. #define CIU_DIA 0xcf // '' '' '' "DIA" for diaereses: Ï
  63. #define CIU_GRA 0xcc // '' '' '' "GRA" for grave: Ì
  64. // N with tilde
  65. #define CNL_TLD 0xf1 // '' 'N' for n, 'L' for lower, "TLD" for tilde: ñ
  66. #define CNU_TLD 0xd1 // '' '' 'U' for upper, '' : Ñ
  67. //Spanish additional symbols:
  68. #define CEX_INV 0xa1 // '' "EX" for exclamation mark, "INV" for inverted: ¡
  69. #define CQU_INV 0xbf // '' "QU" for question mark, '' : ¿
  70. // o lower case variants
  71. #define COL_ACU 0xf3 // 'C' for Costum 'O' for a, 'L' for lower, "ACU" for acute: ó
  72. #define COL_CAR 0xf4 // '' '' '' "CAR" for caret: ô
  73. #define COL_DIA 0xf6 // '' '' '' "DIA" for diaereses: ö
  74. #define COL_GRA 0xf2 // '' '' '' "GRA" for grave: ò
  75. // O upper case variants
  76. #define COU_ACU 0xd3 // '' '' 'U' for upper, "ACU" for acute: Ó
  77. #define COU_CAR 0xd4 // '' '' '' "CAR" for caret: Ô
  78. #define COU_DIA 0xd6 // '' '' '' "DIA" for diaereses: Ö
  79. #define COU_GRA 0xd2 // '' '' '' "GRA" for grave: Ò
  80. // O with stroke (Scandinavia)
  81. #define COL_STK 0xf8 // '' 'O' for o, 'L' for lower, "STK" for Stroke: ø
  82. #define COU_STK 0xd8 // '' '' 'U' for upper, '' : Ø
  83. // u lower case variants
  84. #define CUL_ACU 0xfa // 'C' for Costum 'U' for u, 'L' for lower, "ACU" for acute: ú
  85. #define CUL_CAR 0xfb // '' '' '' "CAR" for caret: û
  86. #define CUL_DIA 0xfc // '' '' '' "DIA" for diaereses: ü
  87. #define CUL_GRA 0xf9 // '' '' '' "GRA" for grave: ù
  88. // U upper case variants
  89. #define CUU_ACU 0xda // '' 'U' for u, 'U' for upper, "ACU" for acute: Ú
  90. #define CUU_CAR 0xdb // '' '' '' "CAR" for caret: Û
  91. #define CUU_DIA 0xdc // '' '' '' "DIA" for diaereses: Ü
  92. #define CUU_GRA 0xd9 // '' '' '' "GRA" for grave: Ù
  93. // Y with acute
  94. #define CYL_ACU 0xfd // '' 'Y' for y, 'L' for lower, "ACU" for Acute: ý
  95. #define CYU_ACU 0xdd // '' '' 'U' for upper, '' : Ý
  96. // Y with diaereses
  97. #define CYL_DIA 0xff // '' 'Y' for y, 'L' for lower, "DIA" for Diareses: ÿ
  98. #define CYU_DIA 0x178 // '' '' 'U' for upper, '' : Ÿ
  99. // Dutch IJ
  100. #define CIJL_BI 0x133 // '' 'IJ' for ij, 'L' for lower, BI for two-character: ij
  101. #define CIJU_BI 0x132 // '' '' , 'U' for upper '' : IJ
  102. //German:
  103. // sharp s
  104. #define CSL_SHP 0xdf // '' 'S' for s, 'L' for lower, "SHP" for sharp: ß
  105. // Some Unicode symbols that might be handy
  106. // Happy symbols:
  107. #define CS_SMIL 0x1f642 // "C" for costum, "S" for symbol , "SMIL" for <smile> 🙂
  108. #define CS_SMILP 0x1F60A // '' , '' , "SMIL" for smile, "P" for plus: 😊
  109. #define CS_THUP 0x1f44d // '' , '' , "THUP" for <thumb up> 👍
  110. //Sad symbols
  111. #define CS_SAD_ 0x1f641 // '' , '' , "SAD_" for <sad face> 🙁
  112. #define CS_SQUIG 0x2368 // '' , '' , "SQUIG" for squigly face: ⍨
  113. #define CS_THDN 0x1f44e // '' , '' , "THDN" for <thumb down> 👎
  114. // Punctuation
  115. #define CS_ASTL 0x20F0 // '' , '' , "AST" for asterisk, "L" for little: ⃰
  116. #define CS_DASH 0x2014 // '' , '' , "DASH" for dash (a longer hyphen, if rendered correctly): —
  117. #define CS_DQUH 0x201D // '' , '' , "D" for double, "QU" for quote, "H" for high: ”
  118. #define CS_DQUHR 0x201C // '' , '' , '' , ,, , '' , "R" for reverse: “
  119. #define CS_DQUL 0x201E // '' , '' , , "L" for low: „
  120. #define CS_GUILLE 0xAB // '' , '' , "GUIL" for guillemet (French quotation), "LE" for left-pointing: «
  121. #define CS_GUILRI 0xBB // '' , '' , '' , "RI" for right-pointing: »
  122. #define CS_GUILSLE 0x2039 // '' , '' , '' , "S" for simple, "LE" for left-pointing: ‹
  123. #define CS_GUILSRI 0x203A // '' , '' , '' , '' , "RI" for right-pointing: ›
  124. #define CS_HQUOSB 0x201B // '' , '' , "H" for high, "QUO" for quote, "S" for single, "B" for begin: ‛
  125. #define CS_HQUOSE 0x2019 // '' , '' , '' '' '' , "E" for end: ’
  126. // Unusual parenthesis types
  127. #define CS_OCBRA 0x300c // '' , '' , "O" for opening, "C" for corner, "BRA" for bracket:「
  128. #define CS_CCBRA 0x300d // '' , '' , "C" for closing, '' '' : 」
  129. #define CS_ODABRA 0x300a // '' '' , "O" for opening, "D" for double, "A" for angled, "BRA" for bracket:《
  130. #define CS_CDABRA 0x300b // '' , '' , "C" for closing, '' '' '' : 》
  131. // currency
  132. #define CS_LGULDEN UNICODE_CURRENCY // '' , "L" for lower, "GULDEN" for gulden (guilder): ƒ
  133. // ^ special case for easy user configuration
  134. #define CS_CURREN 0xA4 // '' , '' , "CURREN" for currency, 'any currency' symbol: ¤
  135. #define CS_POUND 0xA3 // '' , '' , "POUND" for pound: £
  136. #define CS_CENT 0xA2 // '' , '' , "CENT" for cent: ¢
  137. // legal
  138. #define CS_COPY 0xA9 // '' , '' , "COPY" for copyright:
  139. #define CS_COPYL 0x1F12F // '' , '' , "COPY" for Copyright, "L" for left:
  140. // circle, dots, bullet points
  141. #define CS_BULLET 0x2022 // '' , '' , "BULLET" for bullet: •
  142. #define CS_CIRCLE 0x3007 // '' , '' , "CIRCLE" for circle: 〇
  143. #define CS_DEGREE 0xB0 // '' , '' , "DEGREE" for degree: °
  144. #define CS_ELLIPS 0x2026 // '' , '' , "ELLIPS" for bullet: …
  145. #define CS_FINGER 0x261E // '' , '' , "FINGER" for finger: ☞
  146. #define CS_MIDDOT 0x00B7 // '' , '' , "MIDDOT" for mid dot: ·
  147. #define CS_PARA 0x00A7 // '' , '' , "PARA" for paragraaf: §
  148. // super and sub script numbers
  149. #define CN_0SUB 0x2080 // '' , N for number, "SUB" for sub-script or "SUP" for super-script:₀
  150. #define CN_0SUP 0x2070 // '' , '' , '' :⁰
  151. #define CN_1SUB 0x2081 // '' , '' , '' :₁
  152. #define CN_1SUP 0xB9 // '' , '' , '' :¹
  153. #define CN_2SUB 0x2082 // '' , '' , '' :₂
  154. #define CN_2SUP 0xB2 // '' , '' , '' :²
  155. #define CN_3SUB 0x2083 // '' , '' , '' :₃
  156. #define CN_3SUP 0xB3 // '' , '' , '' :³
  157. #define CN_4SUB 0x2084 // '' , '' , '' :₄
  158. #define CN_4SUP 0x2074 // '' , '' , '' :⁴
  159. #define CN_5SUB 0x2085 // '' , '' , '' :₅
  160. #define CN_5SUP 0x2075 // '' , '' , '' :⁵
  161. #define CN_6SUB 0x2086 // '' , '' , '' :₆
  162. #define CN_6SUP 0x2076 // '' , '' , '' :⁶
  163. #define CN_7SUB 0x2087 // '' , '' , '' :₇
  164. #define CN_7SUP 0x2077 // '' , '' , '' :⁷
  165. #define CN_8SUB 0x2088 // '' , '' , '' :₈
  166. #define CN_8SUP 0x2078 // '' , '' , '' :⁸
  167. #define CN_9SUB 0x2089 // '' , '' , '' :₉
  168. #define CN_9SUP 0x2079 // '' , '' , '' :⁹
  169. // Exponent symbols
  170. #define CS_CPSUB 0x208E // '' , '' , "C" for closing, "P" for paranthesis, "SUB" for subscript: ₎
  171. #define CS_OPSUB 0x208D // '' , '' , "O" for opening, '' , '' : ₍
  172. #define CS_CPSUP 0x207E // '' , '' , "C" for closing, '' , "SUP" for superscript: ⁾
  173. #define CS_OPSUP 0x207D // '' , '' , "O" for opening: '' , '' : ⁽
  174. #define CS_EXPMIN 0x207B // '' , '' , "EXP" for exponent, "MIN" for minus : ⁻
  175. #define CS_EXPPLS 0x207A // '' , '' , '' , "PLS" for plus : ⁺
  176. // Math
  177. #define CS_ABOUT 0x2248 // '' , '' , "ABOUT" for about equal: ≈
  178. #define CS_CUMMU 0x2211 // '' , '' , "CUMMU" for cummulative: ∑
  179. #define CS_DIVI 0xF7 // '' , '' , "DIVI" for division: ÷
  180. #define CS_EGTHAN 0x2265 // '' , '' , "E" for equal, "G" for or-greater, "THAN" for than: ≥
  181. #define CS_ELTHAN 0x2264 // '' , '' , "E" for equal, "L" for or-less, "THAN" for than: ≤
  182. #define CS_INFIN 0x221E // '' , '' , "INFIN" for infinity: ∞
  183. #define CS_MULT 0xD7 // '' , '' , "MULTI" for multiplication: ×
  184. #define CS_NONE 0x2205 // '' , '' , "NONE" for empty-set / no-solution: ∅
  185. #define CS_PLMI 0xB1 // '' , '' , "PLMI" for plus-minus; ±
  186. #define CS_PROM 0x2030 // '' , '' , "PROM" for promille: ‰
  187. #define CS_PROTT 0x2031 // '' , '' , "PRO" for pro-, "TT" for ten-thousandth: ‱
  188. #define CS_SQRT 0x221A // '' , '' , "SQRT" for square root: √
  189. #define CS_UNEQL 0x2260 // '' , '' , "UNEQL" for unequal: ≠
  190. # ifdef POINT_ON_CHECKBOXES
  191. // pointers
  192. # define CS_CHECK_H 0x2B9B // '' , '' , "H" for Down, '' : ⮛
  193. # define CS_CHECK_B 0x2B98 // '' , '' , "L" for Left, "ARROW" for arrow: ⮘
  194. # define CS_CHECK_Y 0x2B9A // '' , '' , "R" for Right, '' : ⮚
  195. # define CS_CHECK_N 0x2B99 // '' , '' , "U" for UP, '' : ⮙
  196. # else
  197. // checkboxes
  198. # define CS_CHECK_H 0x1F5F9 // '' , '' , "CHECK" for check mark, "H" for heavy: 🗹
  199. # define CS_CHECK_B 0x2610 // '' , '' , '' , "B" for blank: ☐
  200. # define CS_CHECK_Y 0x2611 // '' , '' , '' , "Y" for yes: ☑
  201. # define CS_CHECK_N 0x2612 // '' , '' , '' , "N" for no: ☒
  202. # endif
  203. // More arrows
  204. #define CS_ARR_DN 0x2B07 // '' , '' , "ARR" for arrow, "DN" for down: ⬇
  205. #define CS_ARR_LE 0x2B05 // '' , '' , "ARR" for arrow, "LE" for left: ⬅
  206. #define CS_ARR_RI 0x27A1 // '' , '' , "ARR" for arrow, "RI" for right: ➡
  207. #define CS_ARR_UP 0x2B06 // '' , '' , "ARR" for arrow, "UP" for up: ⬆
  208. // More checkmarks
  209. #define CS_BOTCH 0x2717 // '' , '' , "BOTCH" for botched: ✗
  210. #define CS_CHECK 0x2713 // '' , '' , "CHECK" for check mark: ✓
  211. // circled numbers
  212. #define CN_0CIRC 0x24EA // '' , "N" for number, "0" for , "CIRC" for circled: ⓪
  213. #define CN_1CIRC 0x2460 // '' , '' , "1" for 1, "CIRC" for circled: ①
  214. #define CN_2CIRC 0x2461 // '' , '' , "2" for 2, "CIRC" for circled: ②
  215. #define CN_3CIRC 0x2462 // '' , '' , "3" for 3, "CIRC" for circled: ③
  216. #define CN_4CIRC 0x2463 // '' , '' , "4" for 4, "CIRC" for circled: ④
  217. #define CN_5CIRC 0x2464 // '' , '' , "5" for 5, "CIRC" for circled: ⑤
  218. #define CN_6CIRC 0x2465 // '' , '' , "6" for 6, "CIRC" for circled: ⑥
  219. #define CN_7CIRC 0x2466 // '' , '' , "7" for 7, "CIRC" for circled: ⑦
  220. #define CN_8CIRC 0x2467 // '' , '' , "8" for 8, "CIRC" for circled: ⑧
  221. #define CN_9CIRC 0x2468 // '' , '' , "9" for 9, "CIRC" for circled: ⑨
  222. #define CN_10CIRC 0x2469 // '' , '' , "10" for 10, "CIRC" for circled: ⑩
  223. #define CN_11CIRC 0x246A // '' , '' , "11" for 11, "CIRC" for circled: ⑪
  224. #define CN_12CIRC 0x246B // '' , '' , "12" for 12, "CIRC" for circled: ⑫
  225. #define CN_13CIRC 0x246C // '' , '' , "13" for 13, "CIRC" for circled: ⑬
  226. #define CN_14CIRC 0x246D // '' , '' , "14" for 14, "CIRC" for circled: ⑭
  227. #define CN_15CIRC 0x246E // '' , '' , "15" for 15, "CIRC" for circled: ⑮
  228. #define CN_16CIRC 0x246F // '' , '' , "16" for 16, "CIRC" for circled: ⑯
  229. #define CN_17CIRC 0x2470 // '' , '' , "17" for 17, "CIRC" for circled: ⑰
  230. #define CN_18CIRC 0x2471 // '' , '' , "18" for 18, "CIRC" for circled: ⑱
  231. #define CN_19CIRC 0x2472 // '' , '' , "19" for 19, "CIRC" for circled: ⑲
  232. // Box drawings
  233. #define CB_C_LEDN 0x2513 // '' , "B" for box drawing, "C" for corner, "LE" for left, "DN" for down: ┓
  234. #define CB_C_LEUP 0x251B // '' , '' , "C" for corner, "LE" for left, "UP" for up: ┛
  235. #define CB_C_RIDN 0x250F // '' , '' , "C" for corner, "RI" for right, "DN" for down: ┏
  236. #define CB_C_RIUP 0x2517 // '' , '' , "C" for corner, "RI" for right, "UP" for up: ┗
  237. #define CB_VE 0x2503 // '' , '' , "VE" for verticle: ┃
  238. #define CB_VE_BI 0x254B // '' , '' , "VE" for verticle, "BI" for bi (two): ╋
  239. #define CB_VE_DOT 0x2507 // '' , '' , "VE" for verticle, "DOT" for dotted: ┇
  240. #define CB_VE_LE 0x252B // '' , '' , "VE" for verticle, "LE" for left: ┫
  241. #define CB_VE_RI 0x2523 // '' , '' , "VE" for verticle, "RI" for right: ┣
  242. // Horizontal lines, can be used with box drawings
  243. #define CB_HHORI 0x2501 // '' , '' , "H" for heavy, '' : ━
  244. #define CB_HHORID 0x2505 // '' , '' , "H" for heavy, '' , "D" for dashes: ┅
  245. #define CB_LHORI 0x2500 // '' , '' , "L" for light, "HORI" for horizontal: ─
  246. #define CB_LHORID 0x2504 // '' , '' , "L" for light, '' , "D" for dashes: ┄
  247. // Signs, unusual
  248. #define CS_ALERT 0x26A0 // '' , "S" for symbol, "ALERT" for alert/warning: ⚠
  249. #define CS_STARB 0x2605 // '' , '' , "STAR" for star, "B" for big: ★
  250. #define CS_STARL 0x66D // '' , '' , "STAR" for star, "L" for little: ٭
  251. #define CS_FLEUR 0x2766 // '' , '' , "FLEUR" for fleur (flower): ❦
  252. #define CS_HEART 0x2665 // '' , '' , "HEART" for heart: ♥