💿🐜 Antkeeper source code https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1006 lines
20 KiB

  1. /*
  2. * Copyright (C) 2021 Christopher J. Howard
  3. *
  4. * This file is part of Antkeeper source code.
  5. *
  6. * Antkeeper source code is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * Antkeeper source code is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #ifndef ANTKEEPER_FONT_UNICODE_BLOCK_HPP
  20. #define ANTKEEPER_FONT_UNICODE_BLOCK_HPP
  21. namespace font {
  22. /// Unicode-related functions and data
  23. namespace unicode {
  24. /**
  25. * Contiguous range of Unicode characters.
  26. *
  27. * @see https://en.wikipedia.org/wiki/Unicode_block
  28. * @see http://jrgraphix.net/research/unicode.php
  29. */
  30. struct block
  31. {
  32. /// First character in the block.
  33. char32_t first;
  34. /// Last character in the block.
  35. char32_t last;
  36. /// Basic Latin[g]
  37. static const block basic_latin;
  38. /// Latin-1 Supplement[h]
  39. static const block latin_1_supplement;
  40. /// Latin Extended-A
  41. static const block latin_extended_a;
  42. /// Latin Extended-B
  43. static const block latin_extended_b;
  44. /// IPA Extensions
  45. static const block ipa_extensions;
  46. /// Spacing Modifier Letters
  47. static const block spacing_modifier_letters;
  48. /// Combining Diacritical Marks
  49. static const block combining_diacritical_marks;
  50. /// Greek and Coptic
  51. static const block greek_and_coptic;
  52. /// Cyrillic
  53. static const block cyrillic;
  54. /// Cyrillic Supplement
  55. static const block cyrillic_supplement;
  56. /// Armenian
  57. static const block armenian;
  58. /// Hebrew
  59. static const block hebrew;
  60. /// Arabic
  61. static const block arabic;
  62. /// Syriac
  63. static const block syriac;
  64. /// Arabic Supplement
  65. static const block arabic_supplement;
  66. /// Thaana
  67. static const block thaana;
  68. /// NKo
  69. static const block nko;
  70. /// Samaritan
  71. static const block samaritan;
  72. /// Mandaic
  73. static const block mandaic;
  74. /// Syriac Supplement
  75. static const block syriac_supplement;
  76. /// Arabic Extended-B
  77. static const block arabic_extended_b;
  78. /// Arabic Extended-A
  79. static const block arabic_extended_a;
  80. /// Devanagari
  81. static const block devanagari;
  82. /// Bengali
  83. static const block bengali;
  84. /// Gurmukhi
  85. static const block gurmukhi;
  86. /// Gujarati
  87. static const block gujarati;
  88. /// Oriya
  89. static const block oriya;
  90. /// Tamil
  91. static const block tamil;
  92. /// Telugu
  93. static const block telugu;
  94. /// Kannada
  95. static const block kannada;
  96. /// Malayalam
  97. static const block malayalam;
  98. /// Sinhala
  99. static const block sinhala;
  100. /// Thai
  101. static const block thai;
  102. /// Lao
  103. static const block lao;
  104. /// Tibetan
  105. static const block tibetan;
  106. /// Myanmar
  107. static const block myanmar;
  108. /// Georgian
  109. static const block georgian;
  110. /// Hangul Jamo
  111. static const block hangul_jamo;
  112. /// Ethiopic
  113. static const block ethiopic;
  114. /// Ethiopic Supplement
  115. static const block ethiopic_supplement;
  116. /// Cherokee
  117. static const block cherokee;
  118. /// Unified Canadian Aboriginal Syllabics
  119. static const block unified_canadian_aboriginal_syllabics;
  120. /// Ogham
  121. static const block ogham;
  122. /// Runic
  123. static const block runic;
  124. /// Tagalog
  125. static const block tagalog;
  126. /// Hanunoo
  127. static const block hanunoo;
  128. /// Buhid
  129. static const block buhid;
  130. /// Tagbanwa
  131. static const block tagbanwa;
  132. /// Khmer
  133. static const block khmer;
  134. /// Mongolian
  135. static const block mongolian;
  136. /// Unified Canadian Aboriginal Syllabics Extended
  137. static const block unified_canadian_aboriginal_syllabics_extended;
  138. /// Limbu
  139. static const block limbu;
  140. /// Tai Le
  141. static const block tai_le;
  142. /// New Tai Lue
  143. static const block new_tai_lue;
  144. /// Khmer Symbols
  145. static const block khmer_symbols;
  146. /// Buginese
  147. static const block buginese;
  148. /// Tai Tham
  149. static const block tai_tham;
  150. /// Combining Diacritical Marks Extended
  151. static const block combining_diacritical_marks_extended;
  152. /// Balinese
  153. static const block balinese;
  154. /// Sundanese
  155. static const block sundanese;
  156. /// Batak
  157. static const block batak;
  158. /// Lepcha
  159. static const block lepcha;
  160. /// Ol Chiki
  161. static const block ol_chiki;
  162. /// Cyrillic Extended-C
  163. static const block cyrillic_extended_c;
  164. /// Georgian Extended
  165. static const block georgian_extended;
  166. /// Sundanese Supplement
  167. static const block sundanese_supplement;
  168. /// Vedic Extensions
  169. static const block vedic_extensions;
  170. /// Phonetic Extensions
  171. static const block phonetic_extensions;
  172. /// Phonetic Extensions Supplement
  173. static const block phonetic_extensions_supplement;
  174. /// Combining Diacritical Marks Supplement
  175. static const block combining_diacritical_marks_supplement;
  176. /// Latin Extended Additional
  177. static const block latin_extended_additional;
  178. /// Greek Extended
  179. static const block greek_extended;
  180. /// General Punctuation
  181. static const block general_punctuation;
  182. /// Superscripts and Subscripts
  183. static const block superscripts_and_subscripts;
  184. /// Currency Symbols
  185. static const block currency_symbols;
  186. /// Combining Diacritical Marks for Symbols
  187. static const block combining_diacritical_marks_for_symbols;
  188. /// Letterlike Symbols
  189. static const block letterlike_symbols;
  190. /// Number Forms
  191. static const block number_forms;
  192. /// Arrows
  193. static const block arrows;
  194. /// Mathematical Operators
  195. static const block mathematical_operators;
  196. /// Miscellaneous Technical
  197. static const block miscellaneous_technical;
  198. /// Control Pictures
  199. static const block control_pictures;
  200. /// Optical Character Recognition
  201. static const block optical_character_recognition;
  202. /// Enclosed Alphanumerics
  203. static const block enclosed_alphanumerics;
  204. /// Box Drawing
  205. static const block box_drawing;
  206. /// Block Elements
  207. static const block block_elements;
  208. /// Geometric Shapes
  209. static const block geometric_shapes;
  210. /// Miscellaneous Symbols
  211. static const block miscellaneous_symbols;
  212. /// Dingbats
  213. static const block dingbats;
  214. /// Miscellaneous Mathematical Symbols-A
  215. static const block miscellaneous_mathematical_symbols_a;
  216. /// Supplemental Arrows-A
  217. static const block supplemental_arrows_a;
  218. /// Braille Patterns
  219. static const block braille_patterns;
  220. /// Supplemental Arrows-B
  221. static const block supplemental_arrows_b;
  222. /// Miscellaneous Mathematical Symbols-B
  223. static const block miscellaneous_mathematical_symbols_b;
  224. /// Supplemental Mathematical Operators
  225. static const block supplemental_mathematical_operators;
  226. /// Miscellaneous Symbols and Arrows
  227. static const block miscellaneous_symbols_and_arrows;
  228. /// Glagolitic
  229. static const block glagolitic;
  230. /// Latin Extended-C
  231. static const block latin_extended_c;
  232. /// Coptic
  233. static const block coptic;
  234. /// Georgian Supplement
  235. static const block georgian_supplement;
  236. /// Tifinagh
  237. static const block tifinagh;
  238. /// Ethiopic Extended
  239. static const block ethiopic_extended;
  240. /// Cyrillic Extended-A
  241. static const block cyrillic_extended_a;
  242. /// Supplemental Punctuation
  243. static const block supplemental_punctuation;
  244. /// CJK Radicals Supplement
  245. static const block cjk_radicals_supplement;
  246. /// Kangxi Radicals
  247. static const block kangxi_radicals;
  248. /// Ideographic Description Characters
  249. static const block ideographic_description_characters;
  250. /// CJK Symbols and Punctuation
  251. static const block cjk_symbols_and_punctuation;
  252. /// Hiragana
  253. static const block hiragana;
  254. /// Katakana
  255. static const block katakana;
  256. /// Bopomofo
  257. static const block bopomofo;
  258. /// Hangul Compatibility Jamo
  259. static const block hangul_compatibility_jamo;
  260. /// Kanbun
  261. static const block kanbun;
  262. /// Bopomofo Extended
  263. static const block bopomofo_extended;
  264. /// CJK Strokes
  265. static const block cjk_strokes;
  266. /// Katakana Phonetic Extensions
  267. static const block katakana_phonetic_extensions;
  268. /// Enclosed CJK Letters and Months
  269. static const block enclosed_cjk_letters_and_months;
  270. /// CJK Compatibility
  271. static const block cjk_compatibility;
  272. /// CJK Unified Ideographs Extension A
  273. static const block cjk_unified_ideographs_extension_a;
  274. /// Yijing Hexagram Symbols
  275. static const block yijing_hexagram_symbols;
  276. /// CJK Unified Ideographs
  277. static const block cjk_unified_ideographs;
  278. /// Yi Syllables
  279. static const block yi_syllables;
  280. /// Yi Radicals
  281. static const block yi_radicals;
  282. /// Lisu
  283. static const block lisu;
  284. /// Vai
  285. static const block vai;
  286. /// Cyrillic Extended-B
  287. static const block cyrillic_extended_b;
  288. /// Bamum
  289. static const block bamum;
  290. /// Modifier Tone Letters
  291. static const block modifier_tone_letters;
  292. /// Latin Extended-D
  293. static const block latin_extended_d;
  294. /// Syloti Nagri
  295. static const block syloti_nagri;
  296. /// Common Indic Number Forms
  297. static const block common_indic_number_forms;
  298. /// Phags-pa
  299. static const block phags_pa;
  300. /// Saurashtra
  301. static const block saurashtra;
  302. /// Devanagari Extended
  303. static const block devanagari_extended;
  304. /// Kayah Li
  305. static const block kayah_li;
  306. /// Rejang
  307. static const block rejang;
  308. /// Hangul Jamo Extended-A
  309. static const block hangul_jamo_extended_a;
  310. /// Javanese
  311. static const block javanese;
  312. /// Myanmar Extended-B
  313. static const block myanmar_extended_b;
  314. /// Cham
  315. static const block cham;
  316. /// Myanmar Extended-A
  317. static const block myanmar_extended_a;
  318. /// Tai Viet
  319. static const block tai_viet;
  320. /// Meetei Mayek Extensions
  321. static const block meetei_mayek_extensions;
  322. /// Ethiopic Extended-A
  323. static const block ethiopic_extended_a;
  324. /// Latin Extended-E
  325. static const block latin_extended_e;
  326. /// Cherokee Supplement
  327. static const block cherokee_supplement;
  328. /// Meetei Mayek
  329. static const block meetei_mayek;
  330. /// Hangul Syllables
  331. static const block hangul_syllables;
  332. /// Hangul Jamo Extended-B
  333. static const block hangul_jamo_extended_b;
  334. /// High Surrogates
  335. static const block high_surrogates;
  336. /// High Private Use Surrogates
  337. static const block high_private_use_surrogates;
  338. /// Low Surrogates
  339. static const block low_surrogates;
  340. /// Private Use Area
  341. static const block private_use_area;
  342. /// CJK Compatibility Ideographs
  343. static const block cjk_compatibility_ideographs;
  344. /// Alphabetic Presentation Forms
  345. static const block alphabetic_presentation_forms;
  346. /// Arabic Presentation Forms-A
  347. static const block arabic_presentation_forms_a;
  348. /// Variation Selectors
  349. static const block variation_selectors;
  350. /// Vertical Forms
  351. static const block vertical_forms;
  352. /// Combining Half Marks
  353. static const block combining_half_marks;
  354. /// CJK Compatibility Forms
  355. static const block cjk_compatibility_forms;
  356. /// Small Form Variants
  357. static const block small_form_variants;
  358. /// Arabic Presentation Forms-B
  359. static const block arabic_presentation_forms_b;
  360. /// Halfwidth and Fullwidth Forms
  361. static const block halfwidth_and_fullwidth_forms;
  362. /// Specials
  363. static const block specials;
  364. /// Linear B Syllabary
  365. static const block linear_b_syllabary;
  366. /// Linear B Ideograms
  367. static const block linear_b_ideograms;
  368. /// Aegean Numbers
  369. static const block aegean_numbers;
  370. /// Ancient Greek Numbers
  371. static const block ancient_greek_numbers;
  372. /// Ancient Symbols
  373. static const block ancient_symbols;
  374. /// Phaistos Disc
  375. static const block phaistos_disc;
  376. /// Lycian
  377. static const block lycian;
  378. /// Carian
  379. static const block carian;
  380. /// Coptic Epact Numbers
  381. static const block coptic_epact_numbers;
  382. /// Old Italic
  383. static const block old_italic;
  384. /// Gothic
  385. static const block gothic;
  386. /// Old Permic
  387. static const block old_permic;
  388. /// Ugaritic
  389. static const block ugaritic;
  390. /// Old Persian
  391. static const block old_persian;
  392. /// Deseret
  393. static const block deseret;
  394. /// Shavian
  395. static const block shavian;
  396. /// Osmanya
  397. static const block osmanya;
  398. /// Osage
  399. static const block osage;
  400. /// Elbasan
  401. static const block elbasan;
  402. /// Caucasian Albanian
  403. static const block caucasian_albanian;
  404. /// Vithkuqi
  405. static const block vithkuqi;
  406. /// Linear A
  407. static const block linear_a;
  408. /// Latin Extended-F
  409. static const block latin_extended_f;
  410. /// Cypriot Syllabary
  411. static const block cypriot_syllabary;
  412. /// Imperial Aramaic
  413. static const block imperial_aramaic;
  414. /// Palmyrene
  415. static const block palmyrene;
  416. /// Nabataean
  417. static const block nabataean;
  418. /// Hatran
  419. static const block hatran;
  420. /// Phoenician
  421. static const block phoenician;
  422. /// Lydian
  423. static const block lydian;
  424. /// Meroitic Hieroglyphs
  425. static const block meroitic_hieroglyphs;
  426. /// Meroitic Cursive
  427. static const block meroitic_cursive;
  428. /// Kharoshthi
  429. static const block kharoshthi;
  430. /// Old South Arabian
  431. static const block old_south_arabian;
  432. /// Old North Arabian
  433. static const block old_north_arabian;
  434. /// Manichaean
  435. static const block manichaean;
  436. /// Avestan
  437. static const block avestan;
  438. /// Inscriptional Parthian
  439. static const block inscriptional_parthian;
  440. /// Inscriptional Pahlavi
  441. static const block inscriptional_pahlavi;
  442. /// Psalter Pahlavi
  443. static const block psalter_pahlavi;
  444. /// Old Turkic
  445. static const block old_turkic;
  446. /// Old Hungarian
  447. static const block old_hungarian;
  448. /// Hanifi Rohingya
  449. static const block hanifi_rohingya;
  450. /// Rumi Numeral Symbols
  451. static const block rumi_numeral_symbols;
  452. /// Yezidi
  453. static const block yezidi;
  454. /// Old Sogdian
  455. static const block old_sogdian;
  456. /// Sogdian
  457. static const block sogdian;
  458. /// Old Uyghur
  459. static const block old_uyghur;
  460. /// Chorasmian
  461. static const block chorasmian;
  462. /// Elymaic
  463. static const block elymaic;
  464. /// Brahmi
  465. static const block brahmi;
  466. /// Kaithi
  467. static const block kaithi;
  468. /// Sora Sompeng
  469. static const block sora_sompeng;
  470. /// Chakma
  471. static const block chakma;
  472. /// Mahajani
  473. static const block mahajani;
  474. /// Sharada
  475. static const block sharada;
  476. /// Sinhala Archaic Numbers
  477. static const block sinhala_archaic_numbers;
  478. /// Khojki
  479. static const block khojki;
  480. /// Multani
  481. static const block multani;
  482. /// Khudawadi
  483. static const block khudawadi;
  484. /// Grantha
  485. static const block grantha;
  486. /// Newa
  487. static const block newa;
  488. /// Tirhuta
  489. static const block tirhuta;
  490. /// Siddham
  491. static const block siddham;
  492. /// Modi
  493. static const block modi;
  494. /// Mongolian Supplement
  495. static const block mongolian_supplement;
  496. /// Takri
  497. static const block takri;
  498. /// Ahom
  499. static const block ahom;
  500. /// Dogra
  501. static const block dogra;
  502. /// Warang Citi
  503. static const block warang_citi;
  504. /// Dives Akuru
  505. static const block dives_akuru;
  506. /// Nandinagari
  507. static const block nandinagari;
  508. /// Zanabazar Square
  509. static const block zanabazar_square;
  510. /// Soyombo
  511. static const block soyombo;
  512. /// Unified Canadian Aboriginal Syllabics Extended-A
  513. static const block unified_canadian_aboriginal_syllabics_extended_a;
  514. /// Pau Cin Hau
  515. static const block pau_cin_hau;
  516. /// Bhaiksuki
  517. static const block bhaiksuki;
  518. /// Marchen
  519. static const block marchen;
  520. /// Masaram Gondi
  521. static const block masaram_gondi;
  522. /// Gunjala Gondi
  523. static const block gunjala_gondi;
  524. /// Makasar
  525. static const block makasar;
  526. /// Lisu Supplement
  527. static const block lisu_supplement;
  528. /// Tamil Supplement
  529. static const block tamil_supplement;
  530. /// Cuneiform
  531. static const block cuneiform;
  532. /// Cuneiform Numbers and Punctuation
  533. static const block cuneiform_numbers_and_punctuation;
  534. /// Early Dynastic Cuneiform
  535. static const block early_dynastic_cuneiform;
  536. /// Cypro-Minoan
  537. static const block cypro_minoan;
  538. /// Egyptian Hieroglyphs
  539. static const block egyptian_hieroglyphs;
  540. /// Egyptian Hieroglyph Format Controls
  541. static const block egyptian_hieroglyph_format_controls;
  542. /// Anatolian Hieroglyphs
  543. static const block anatolian_hieroglyphs;
  544. /// Bamum Supplement
  545. static const block bamum_supplement;
  546. /// Mro
  547. static const block mro;
  548. /// Tangsa
  549. static const block tangsa;
  550. /// Bassa Vah
  551. static const block bassa_vah;
  552. /// Pahawh Hmong
  553. static const block pahawh_hmong;
  554. /// Medefaidrin
  555. static const block medefaidrin;
  556. /// Miao
  557. static const block miao;
  558. /// Ideographic Symbols and Punctuation
  559. static const block ideographic_symbols_and_punctuation;
  560. /// Tangut
  561. static const block tangut;
  562. /// Tangut Components
  563. static const block tangut_components;
  564. /// Khitan Small Script
  565. static const block khitan_small_script;
  566. /// Tangut Supplement
  567. static const block tangut_supplement;
  568. /// Kana Extended-B
  569. static const block kana_extended_b;
  570. /// Kana Supplement
  571. static const block kana_supplement;
  572. /// Kana Extended-A
  573. static const block kana_extended_a;
  574. /// Small Kana Extension
  575. static const block small_kana_extension;
  576. /// Nushu
  577. static const block nushu;
  578. /// Duployan
  579. static const block duployan;
  580. /// Shorthand Format Controls
  581. static const block shorthand_format_controls;
  582. /// Znamenny Musical Notation
  583. static const block znamenny_musical_notation;
  584. /// Byzantine Musical Symbols
  585. static const block byzantine_musical_symbols;
  586. /// Musical Symbols
  587. static const block musical_symbols;
  588. /// Ancient Greek Musical Notation
  589. static const block ancient_greek_musical_notation;
  590. /// Mayan Numerals
  591. static const block mayan_numerals;
  592. /// Tai Xuan Jing Symbols
  593. static const block tai_xuan_jing_symbols;
  594. /// Counting Rod Numerals
  595. static const block counting_rod_numerals;
  596. /// Mathematical Alphanumeric Symbols
  597. static const block mathematical_alphanumeric_symbols;
  598. /// Sutton SignWriting
  599. static const block sutton_signwriting;
  600. /// Latin Extended-G
  601. static const block latin_extended_g;
  602. /// Glagolitic Supplement
  603. static const block glagolitic_supplement;
  604. /// Nyiakeng Puachue Hmong
  605. static const block nyiakeng_puachue_hmong;
  606. /// Toto
  607. static const block toto;
  608. /// Wancho
  609. static const block wancho;
  610. /// Ethiopic Extended-B
  611. static const block ethiopic_extended_b;
  612. /// Mende Kikakui
  613. static const block mende_kikakui;
  614. /// Adlam
  615. static const block adlam;
  616. /// Indic Siyaq Numbers
  617. static const block indic_siyaq_numbers;
  618. /// Ottoman Siyaq Numbers
  619. static const block ottoman_siyaq_numbers;
  620. /// Arabic Mathematical Alphabetic Symbols
  621. static const block arabic_mathematical_alphabetic_symbols;
  622. /// Mahjong Tiles
  623. static const block mahjong_tiles;
  624. /// Domino Tiles
  625. static const block domino_tiles;
  626. /// Playing Cards
  627. static const block playing_cards;
  628. /// Enclosed Alphanumeric Supplement
  629. static const block enclosed_alphanumeric_supplement;
  630. /// Enclosed Ideographic Supplement
  631. static const block enclosed_ideographic_supplement;
  632. /// Miscellaneous Symbols and Pictographs
  633. static const block miscellaneous_symbols_and_pictographs;
  634. /// Emoticons
  635. static const block emoticons;
  636. /// Ornamental Dingbats
  637. static const block ornamental_dingbats;
  638. /// Transport and Map Symbols
  639. static const block transport_and_map_symbols;
  640. /// Alchemical Symbols
  641. static const block alchemical_symbols;
  642. /// Geometric Shapes Extended
  643. static const block geometric_shapes_extended;
  644. /// Supplemental Arrows-C
  645. static const block supplemental_arrows_c;
  646. /// Supplemental Symbols and Pictographs
  647. static const block supplemental_symbols_and_pictographs;
  648. /// Chess Symbols
  649. static const block chess_symbols;
  650. /// Symbols and Pictographs Extended-A
  651. static const block symbols_and_pictographs_extended_a;
  652. /// Symbols for Legacy Computing
  653. static const block symbols_for_legacy_computing;
  654. /// CJK Unified Ideographs Extension B
  655. static const block cjk_unified_ideographs_extension_b;
  656. /// CJK Unified Ideographs Extension C
  657. static const block cjk_unified_ideographs_extension_c;
  658. /// CJK Unified Ideographs Extension D
  659. static const block cjk_unified_ideographs_extension_d;
  660. /// CJK Unified Ideographs Extension E
  661. static const block cjk_unified_ideographs_extension_e;
  662. /// CJK Unified Ideographs Extension F
  663. static const block cjk_unified_ideographs_extension_f;
  664. /// CJK Compatibility Ideographs Supplement
  665. static const block cjk_compatibility_ideographs_supplement;
  666. /// CJK Unified Ideographs Extension G
  667. static const block cjk_unified_ideographs_extension_g;
  668. /// Tags
  669. static const block tags;
  670. /// Variation Selectors Supplement
  671. static const block variation_selectors_supplement;
  672. /// Supplementary Private Use Area-A
  673. static const block supplementary_private_use_area_a;
  674. /// Supplementary Private Use Area-B
  675. static const block supplementary_private_use_area_b;
  676. };
  677. } // namespace unicode
  678. } // namespace font
  679. #endif // ANTKEEPER_FONT_UNICODE_BLOCK_HPP