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