Glyphs.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  1. using static Terminal.Gui.ConfigurationManager;
  2. using System.Text.Json.Serialization;
  3. using System.Text;
  4. namespace Terminal.Gui {
  5. /// <summary>
  6. /// Defines the standard set of glyphs used to draw checkboxes, lines, borders, etc...
  7. /// </summary>
  8. /// <remarks>
  9. /// <para>
  10. /// Access with <see cref="CM.Glyphs"/> (which is a global using alias for <see cref="ConfigurationManager.Glyphs"/>).
  11. /// </para>
  12. /// <para>
  13. /// The default glyphs can be changed via the <see cref="ConfigurationManager"/>. Within a <c>config.json</c> file
  14. /// The Json property name is the property name prefixed with "Glyphs.".
  15. /// </para>
  16. /// <para>
  17. /// The JSon property can be either a decimal number or a string. The string may be one of:
  18. /// - A unicode char (e.g. "☑")
  19. /// - A hex value in U+ format (e.g. "U+2611")
  20. /// - A hex value in UTF-16 format (e.g. "\\u2611")
  21. /// </para>
  22. /// </remarks>
  23. public class GlyphDefinitions {
  24. #region ----------------- Single Glyphs -----------------
  25. /// <summary>
  26. /// Checked indicator (e.g. for <see cref="ListView"/> and <see cref="CheckBox"/>).
  27. /// </summary>
  28. public Rune Checked { get; set; } = (Rune)'☑';
  29. /// <summary>
  30. /// Not Checked indicator (e.g. for <see cref="ListView"/> and <see cref="CheckBox"/>).
  31. /// </summary>
  32. public Rune UnChecked { get; set; } = (Rune)'☐';
  33. /// <summary>
  34. /// Null Checked indicator (e.g. for <see cref="ListView"/> and <see cref="CheckBox"/>).
  35. /// </summary>
  36. public Rune NullChecked { get; set; } = (Rune)'☒';
  37. /// <summary>
  38. /// Selected indicator (e.g. for <see cref="ListView"/> and <see cref="RadioGroup"/>).
  39. /// </summary>
  40. public Rune Selected { get; set; } = (Rune)'◉';
  41. /// <summary>
  42. /// Not Selected indicator (e.g. for <see cref="ListView"/> and <see cref="RadioGroup"/>).
  43. /// </summary>
  44. public Rune UnSelected { get; set; } = (Rune)'○';
  45. /// <summary>
  46. /// Horizontal arrow.
  47. /// </summary>
  48. public Rune RightArrow { get; set; } = (Rune)'►';
  49. /// <summary>
  50. /// Left arrow.
  51. /// </summary>
  52. public Rune LeftArrow { get; set; } = (Rune)'◄';
  53. /// <summary>
  54. /// Down arrow.
  55. /// </summary>
  56. public Rune DownArrow { get; set; } = (Rune)'▼';
  57. /// <summary>
  58. /// Vertical arrow.
  59. /// </summary>
  60. public Rune UpArrow { get; set; } = (Rune)'▲';
  61. /// <summary>
  62. /// Left default indicator (e.g. for <see cref="Button"/>.
  63. /// </summary>
  64. public Rune LeftDefaultIndicator { get; set; } = (Rune)'►';
  65. /// <summary>
  66. /// Horizontal default indicator (e.g. for <see cref="Button"/>.
  67. /// </summary>
  68. public Rune RightDefaultIndicator { get; set; } = (Rune)'◄';
  69. /// <summary>
  70. /// Left Bracket (e.g. for <see cref="Button"/>. Default is (U+005B) - [.
  71. /// </summary>
  72. public Rune LeftBracket { get; set; } = (Rune)'⟦';
  73. /// <summary>
  74. /// Horizontal Bracket (e.g. for <see cref="Button"/>. Default is (U+005D) - ].
  75. /// </summary>
  76. public Rune RightBracket { get; set; } = (Rune)'⟧';
  77. /// <summary>
  78. /// Half block meter segment (e.g. for <see cref="ProgressBar"/>).
  79. /// </summary>
  80. public Rune BlocksMeterSegment { get; set; } = (Rune)'▌';
  81. /// <summary>
  82. /// Continuous block meter segment (e.g. for <see cref="ProgressBar"/>).
  83. /// </summary>
  84. public Rune ContinuousMeterSegment { get; set; } = (Rune)'█';
  85. /// <summary>
  86. /// Stipple pattern (e.g. for <see cref="ScrollBarView"/>). Default is Light Shade (U+2591) - ░.
  87. /// </summary>
  88. public Rune Stipple { get; set; } = (Rune)'░';
  89. /// <summary>
  90. /// Diamond (e.g. for <see cref="ScrollBarView"/>. Default is Lozenge (U+25CA) - ◊.
  91. /// </summary>
  92. public Rune Diamond { get; set; } = (Rune)'◊';
  93. /// <summary>
  94. /// Close. Default is Heavy Ballot X (U+2718) - ✘.
  95. /// </summary>
  96. public Rune Close { get; set; } = (Rune)'✘';
  97. /// <summary>
  98. /// Minimize. Default is Lower Horizontal Shadowed White Circle (U+274F) - ❏.
  99. /// </summary>
  100. public Rune Minimize { get; set; } = (Rune)'❏';
  101. /// <summary>
  102. /// Maximize. Default is Upper Horizontal Shadowed White Circle (U+273D) - ✽.
  103. /// </summary>
  104. public Rune Maximize { get; set; } = (Rune)'✽';
  105. /// <summary>
  106. /// Dot. Default is (U+2219) - ∙.
  107. /// </summary>
  108. public Rune Dot { get; set; } = (Rune)'∙';
  109. /// <summary>
  110. /// Expand (e.g. for <see cref="TreeView"/>.
  111. /// </summary>
  112. public Rune Expand { get; set; } = (Rune)'+';
  113. /// <summary>
  114. /// Expand (e.g. for <see cref="TreeView"/>.
  115. /// </summary>
  116. public Rune Collapse { get; set; } = (Rune)'-';
  117. /// <summary>
  118. /// Identical To (U+226)
  119. /// </summary>
  120. public Rune IdenticalTo { get; set; } = (Rune)'≡';
  121. /// <summary>
  122. /// Apple (non-BMP). Because snek. And because it's an example of a non-BMP surrogate pair. See Issue #2610.
  123. /// </summary>
  124. public Rune Apple { get; set; } = "🍎".ToRunes () [0]; // nonBMP
  125. /// <summary>
  126. /// Apple (BMP). Because snek. See Issue #2610.
  127. /// </summary>
  128. public Rune AppleBMP { get; set; } = (Rune)'❦';
  129. ///// <summary>
  130. ///// A nonprintable (low surrogate) that should fail to ctor.
  131. ///// </summary>
  132. //public Rune InvalidGlyph { get; set; } = (Rune)'\ud83d';
  133. #endregion
  134. /// <summary>
  135. /// Folder icon. Defaults to ꤉ (Kayah Li Digit Nine)
  136. /// </summary>
  137. public Rune Folder { get; set; } = (Rune)'꤉';
  138. /// <summary>
  139. /// File icon. Defaults to ☰ (Trigram For Heaven)
  140. /// </summary>
  141. public Rune File { get; set; } = (Rune)'☰';
  142. /// <summary>
  143. /// Horizontal Ellipsis - … U+2026
  144. /// </summary>
  145. public Rune HorizontalEllipsis { get; set; } = (Rune)'…';
  146. /// <summary>
  147. /// Vertical Four Dots - ⁞ U+205e
  148. /// </summary>
  149. public Rune VerticalFourDots { get; set; } = (Rune)'⁞';
  150. #region ----------------- Lines -----------------
  151. /// <summary>
  152. /// Box Drawings Horizontal Line - Light (U+2500) - ─
  153. /// </summary>
  154. public Rune HLine { get; set; } = (Rune)'─';
  155. /// <summary>
  156. /// Box Drawings Vertical Line - Light (U+2502) - │
  157. /// </summary>
  158. public Rune VLine { get; set; } = (Rune)'│';
  159. /// <summary>
  160. /// Box Drawings Double Horizontal (U+2550) - ═
  161. /// </summary>
  162. public Rune HLineDbl { get; set; } = (Rune)'═';
  163. /// <summary>
  164. /// Box Drawings Double Vertical (U+2551) - ║
  165. /// </summary>
  166. public Rune VLineDbl { get; set; } = (Rune)'║';
  167. /// <summary>
  168. /// Box Drawings Heavy Double Dash Horizontal (U+254D) - ╍
  169. /// </summary>
  170. public Rune HLineHvDa2 { get; set; } = (Rune)'╍';
  171. /// <summary>
  172. /// Box Drawings Heavy Triple Dash Vertical (U+2507) - ┇
  173. /// </summary>
  174. public Rune VLineHvDa3 { get; set; } = (Rune)'┇';
  175. /// <summary>
  176. /// Box Drawings Heavy Triple Dash Horizontal (U+2505) - ┅
  177. /// </summary>
  178. public Rune HLineHvDa3 { get; set; } = (Rune)'┅';
  179. /// <summary>
  180. /// Box Drawings Heavy Quadruple Dash Horizontal (U+2509) - ┉
  181. /// </summary>
  182. public Rune HLineHvDa4 { get; set; } = (Rune)'┉';
  183. /// <summary>
  184. /// Box Drawings Heavy Double Dash Vertical (U+254F) - ╏
  185. /// </summary>
  186. public Rune VLineHvDa2 { get; set; } = (Rune)'╏';
  187. /// <summary>
  188. /// Box Drawings Heavy Quadruple Dash Vertical (U+250B) - ┋
  189. /// </summary>
  190. public Rune VLineHvDa4 { get; set; } = (Rune)'┋';
  191. /// <summary>
  192. /// Box Drawings Light Double Dash Horizontal (U+254C) - ╌
  193. /// </summary>
  194. public Rune HLineDa2 { get; set; } = (Rune)'╌';
  195. /// <summary>
  196. /// Box Drawings Light Triple Dash Vertical (U+2506) - ┆
  197. /// </summary>
  198. public Rune VLineDa3 { get; set; } = (Rune)'┆';
  199. /// <summary>
  200. /// Box Drawings Light Triple Dash Horizontal (U+2504) - ┄
  201. /// </summary>
  202. public Rune HLineDa3 { get; set; } = (Rune)'┄';
  203. /// <summary>
  204. /// Box Drawings Light Quadruple Dash Horizontal (U+2508) - ┈
  205. /// </summary>
  206. public Rune HLineDa4 { get; set; } = (Rune)'┈';
  207. /// <summary>
  208. /// Box Drawings Light Double Dash Vertical (U+254E) - ╎
  209. /// </summary>
  210. public Rune VLineDa2 { get; set; } = (Rune)'╎';
  211. /// <summary>
  212. /// Box Drawings Light Quadruple Dash Vertical (U+250A) - ┊
  213. /// </summary>
  214. public Rune VLineDa4 { get; set; } = (Rune)'┊';
  215. /// <summary>
  216. /// Box Drawings Heavy Horizontal (U+2501) - ━
  217. /// </summary>
  218. public Rune HLineHv { get; set; } = (Rune)'━';
  219. /// <summary>
  220. /// Box Drawings Heavy Vertical (U+2503) - ┃
  221. /// </summary>
  222. public Rune VLineHv { get; set; } = (Rune)'┃';
  223. /// <summary>
  224. /// Box Drawings Light Left (U+2574) - ╴
  225. /// </summary>
  226. public Rune HalfLeftLine { get; set; } = (Rune)'╴';
  227. /// <summary>
  228. /// Box Drawings Light Vertical (U+2575) - ╵
  229. /// </summary>
  230. public Rune HalfTopLine { get; set; } = (Rune)'╵';
  231. /// <summary>
  232. /// Box Drawings Light Horizontal (U+2576) - ╶
  233. /// </summary>
  234. public Rune HalfRightLine { get; set; } = (Rune)'╶';
  235. /// <summary>
  236. /// Box Drawings Light Down (U+2577) - ╷
  237. /// </summary>
  238. public Rune HalfBottomLine { get; set; } = (Rune)'╷';
  239. /// <summary>
  240. /// Box Drawings Heavy Left (U+2578) - ╸
  241. /// </summary>
  242. public Rune HalfLeftLineHv { get; set; } = (Rune)'╸';
  243. /// <summary>
  244. /// Box Drawings Heavy Vertical (U+2579) - ╹
  245. /// </summary>
  246. public Rune HalfTopLineHv { get; set; } = (Rune)'╹';
  247. /// <summary>
  248. /// Box Drawings Heavy Horizontal (U+257A) - ╺
  249. /// </summary>
  250. public Rune HalfRightLineHv { get; set; } = (Rune)'╺';
  251. /// <summary>
  252. /// Box Drawings Light Vertical and Horizontal (U+257B) - ╻
  253. /// </summary>
  254. public Rune HalfBottomLineLt { get; set; } = (Rune)'╻';
  255. /// <summary>
  256. /// Box Drawings Light Horizontal and Heavy Horizontal (U+257C) - ╼
  257. /// </summary>
  258. public Rune RightSideLineLtHv { get; set; } = (Rune)'╼';
  259. /// <summary>
  260. /// Box Drawings Light Vertical and Heavy Horizontal (U+257D) - ╽
  261. /// </summary>
  262. public Rune BottomSideLineLtHv { get; set; } = (Rune)'╽';
  263. /// <summary>
  264. /// Box Drawings Heavy Left and Light Horizontal (U+257E) - ╾
  265. /// </summary>
  266. public Rune LeftSideLineHvLt { get; set; } = (Rune)'╾';
  267. /// <summary>
  268. /// Box Drawings Heavy Vertical and Light Horizontal (U+257F) - ╿
  269. /// </summary>
  270. public Rune TopSideLineHvLt { get; set; } = (Rune)'╿';
  271. #endregion
  272. #region ----------------- Upper Left Corners -----------------
  273. /// <summary>
  274. /// Box Drawings Upper Left Corner - Light Vertical and Light Horizontal (U+250C) - ┌
  275. /// </summary>
  276. public Rune ULCorner { get; set; } = (Rune)'┌';
  277. /// <summary>
  278. /// Box Drawings Upper Left Corner - Double (U+2554) - ╔
  279. /// </summary>
  280. public Rune ULCornerDbl { get; set; } = (Rune)'╔';
  281. /// <summary>
  282. /// Box Drawings Upper Left Corner - Light Arc Down and Horizontal (U+256D) - ╭
  283. /// </summary>
  284. public Rune ULCornerR { get; set; } = (Rune)'╭';
  285. /// <summary>
  286. /// Box Drawings Heavy Down and Horizontal (U+250F) - ┏
  287. /// </summary>
  288. public Rune ULCornerHv { get; set; } = (Rune)'┏';
  289. /// <summary>
  290. /// Box Drawings Down Heavy and Horizontal Light (U+251E) - ┎
  291. /// </summary>
  292. public Rune ULCornerHvLt { get; set; } = (Rune)'┎';
  293. /// <summary>
  294. /// Box Drawings Down Light and Horizontal Heavy (U+250D) - ┎
  295. /// </summary>
  296. public Rune ULCornerLtHv { get; set; } = (Rune)'┍';
  297. /// <summary>
  298. /// Box Drawings Double Down and Single Horizontal (U+2553) - ╓
  299. /// </summary>
  300. public Rune ULCornerDblSingle { get; set; } = (Rune)'╓';
  301. /// <summary>
  302. /// Box Drawings Single Down and Double Horizontal (U+2552) - ╒
  303. /// </summary>
  304. public Rune ULCornerSingleDbl { get; set; } = (Rune)'╒';
  305. #endregion
  306. #region ----------------- Lower Left Corners -----------------
  307. /// <summary>
  308. /// Box Drawings Lower Left Corner - Light Vertical and Light Horizontal (U+2514) - └
  309. /// </summary>
  310. public Rune LLCorner { get; set; } = (Rune)'└';
  311. /// <summary>
  312. /// Box Drawings Heavy Vertical and Horizontal (U+2517) - ┗
  313. /// </summary>
  314. public Rune LLCornerHv { get; set; } = (Rune)'┗';
  315. /// <summary>
  316. /// Box Drawings Heavy Vertical and Horizontal Light (U+2516) - ┖
  317. /// </summary>
  318. public Rune LLCornerHvLt { get; set; } = (Rune)'┖';
  319. /// <summary>
  320. /// Box Drawings Vertical Light and Horizontal Heavy (U+2511) - ┕
  321. /// </summary>
  322. public Rune LLCornerLtHv { get; set; } = (Rune)'┕';
  323. /// <summary>
  324. /// Box Drawings Double Vertical and Double Left (U+255A) - ╚
  325. /// </summary>
  326. public Rune LLCornerDbl { get; set; } = (Rune)'╚';
  327. /// <summary>
  328. /// Box Drawings Single Vertical and Double Left (U+2558) - ╘
  329. /// </summary>
  330. public Rune LLCornerSingleDbl { get; set; } = (Rune)'╘';
  331. /// <summary>
  332. /// Box Drawings Double Down and Single Left (U+2559) - ╙
  333. /// </summary>
  334. public Rune LLCornerDblSingle { get; set; } = (Rune)'╙';
  335. /// <summary>
  336. /// Box Drawings Upper Left Corner - Light Arc Down and Left (U+2570) - ╰
  337. /// </summary>
  338. public Rune LLCornerR { get; set; } = (Rune)'╰';
  339. #endregion
  340. #region ----------------- Upper Right Corners -----------------
  341. /// <summary>
  342. /// Box Drawings Upper Horizontal Corner - Light Vertical and Light Horizontal (U+2510) - ┐
  343. /// </summary>
  344. public Rune URCorner { get; set; } = (Rune)'┐';
  345. /// <summary>
  346. /// Box Drawings Upper Horizontal Corner - Double Vertical and Double Horizontal (U+2557) - ╗
  347. /// </summary>
  348. public Rune URCornerDbl { get; set; } = (Rune)'╗';
  349. /// <summary>
  350. /// Box Drawings Upper Horizontal Corner - Light Arc Vertical and Horizontal (U+256E) - ╮
  351. /// </summary>
  352. public Rune URCornerR { get; set; } = (Rune)'╮';
  353. /// <summary>
  354. /// Box Drawings Heavy Down and Left (U+2513) - ┓
  355. /// </summary>
  356. public Rune URCornerHv { get; set; } = (Rune)'┓';
  357. /// <summary>
  358. /// Box Drawings Heavy Vertical and Left Down Light (U+2511) - ┑
  359. /// </summary>
  360. public Rune URCornerHvLt { get; set; } = (Rune)'┑';
  361. /// <summary>
  362. /// Box Drawings Down Light and Horizontal Heavy (U+2514) - ┒
  363. /// </summary>
  364. public Rune URCornerLtHv { get; set; } = (Rune)'┒';
  365. /// <summary>
  366. /// Box Drawings Double Vertical and Single Left (U+2556) - ╖
  367. /// </summary>
  368. public Rune URCornerDblSingle { get; set; } = (Rune)'╖';
  369. /// <summary>
  370. /// Box Drawings Single Vertical and Double Left (U+2555) - ╕
  371. /// </summary>
  372. public Rune URCornerSingleDbl { get; set; } = (Rune)'╕';
  373. #endregion
  374. #region ----------------- Lower Right Corners -----------------
  375. /// <summary>
  376. /// Box Drawings Lower Right Corner - Light (U+2518) - ┘
  377. /// </summary>
  378. public Rune LRCorner { get; set; } = (Rune)'┘';
  379. /// <summary>
  380. /// Box Drawings Lower Right Corner - Double (U+255D) - ╝
  381. /// </summary>
  382. public Rune LRCornerDbl { get; set; } = (Rune)'╝';
  383. /// <summary>
  384. /// Box Drawings Lower Right Corner - Rounded (U+256F) - ╯
  385. /// </summary>
  386. public Rune LRCornerR { get; set; } = (Rune)'╯';
  387. /// <summary>
  388. /// Box Drawings Lower Right Corner - Heavy (U+251B) - ┛
  389. /// </summary>
  390. public Rune LRCornerHv { get; set; } = (Rune)'┛';
  391. /// <summary>
  392. /// Box Drawings Lower Right Corner - Double Vertical and Single Horizontal (U+255C) - ╜
  393. /// </summary>
  394. public Rune LRCornerDblSingle { get; set; } = (Rune)'╜';
  395. /// <summary>
  396. /// Box Drawings Lower Right Corner - Single Vertical and Double Horizontal (U+255B) - ╛
  397. /// </summary>
  398. public Rune LRCornerSingleDbl { get; set; } = (Rune)'╛';
  399. /// <summary>
  400. /// Box Drawings Lower Right Corner - Light Vertical and Heavy Horizontal (U+2519) - ┙
  401. /// </summary>
  402. public Rune LRCornerLtHv { get; set; } = (Rune)'┙';
  403. /// <summary>
  404. /// Box Drawings Lower Right Corner - Heavy Vertical and Light Horizontal (U+251A) - ┚
  405. /// </summary>
  406. public Rune LRCornerHvLt { get; set; } = (Rune)'┚';
  407. #endregion
  408. #region ----------------- Tees -----------------
  409. /// <summary>
  410. /// Box Drawings Left Tee - Single Vertical and Single Horizontal (U+251C) - ├
  411. /// </summary>
  412. public Rune LeftTee { get; set; } = (Rune)'├';
  413. /// <summary>
  414. /// Box Drawings Left Tee - Single Vertical and Double Horizontal (U+255E) - ╞
  415. /// </summary>
  416. public Rune LeftTeeDblH { get; set; } = (Rune)'╞';
  417. /// <summary>
  418. /// Box Drawings Left Tee - Double Vertical and Single Horizontal (U+255F) - ╟
  419. /// </summary>
  420. public Rune LeftTeeDblV { get; set; } = (Rune)'╟';
  421. /// <summary>
  422. /// Box Drawings Left Tee - Double Vertical and Double Horizontal (U+2560) - ╠
  423. /// </summary>
  424. public Rune LeftTeeDbl { get; set; } = (Rune)'╠';
  425. /// <summary>
  426. /// Box Drawings Left Tee - Heavy Horizontal and Light Vertical (U+2523) - ┝
  427. /// </summary>
  428. public Rune LeftTeeHvH { get; set; } = (Rune)'┝';
  429. /// <summary>
  430. /// Box Drawings Left Tee - Light Horizontal and Heavy Vertical (U+252B) - ┠
  431. /// </summary>
  432. public Rune LeftTeeHvV { get; set; } = (Rune)'┠';
  433. /// <summary>
  434. /// Box Drawings Left Tee - Heavy Vertical and Heavy Horizontal (U+2527) - ┣
  435. /// </summary>
  436. public Rune LeftTeeHvDblH { get; set; } = (Rune)'┣';
  437. /// <summary>
  438. /// Box Drawings Righ Tee - Single Vertical and Single Horizontal (U+2524) - ┤
  439. /// </summary>
  440. public Rune RightTee { get; set; } = (Rune)'┤';
  441. /// <summary>
  442. /// Box Drawings Right Tee - Single Vertical and Double Horizontal (U+2561) - ╡
  443. /// </summary>
  444. public Rune RightTeeDblH { get; set; } = (Rune)'╡';
  445. /// <summary>
  446. /// Box Drawings Right Tee - Double Vertical and Single Horizontal (U+2562) - ╢
  447. /// </summary>
  448. public Rune RightTeeDblV { get; set; } = (Rune)'╢';
  449. /// <summary>
  450. /// Box Drawings Right Tee - Double Vertical and Double Horizontal (U+2563) - ╣
  451. /// </summary>
  452. public Rune RightTeeDbl { get; set; } = (Rune)'╣';
  453. /// <summary>
  454. /// Box Drawings Right Tee - Heavy Horizontal and Light Vertical (U+2528) - ┥
  455. /// </summary>
  456. public Rune RightTeeHvH { get; set; } = (Rune)'┥';
  457. /// <summary>
  458. /// Box Drawings Right Tee - Light Horizontal and Heavy Vertical (U+2530) - ┨
  459. /// </summary>
  460. public Rune RightTeeHvV { get; set; } = (Rune)'┨';
  461. /// <summary>
  462. /// Box Drawings Right Tee - Heavy Vertical and Heavy Horizontal (U+252C) - ┫
  463. /// </summary>
  464. public Rune RightTeeHvDblH { get; set; } = (Rune)'┫';
  465. /// <summary>
  466. /// Box Drawings Top Tee - Single Vertical and Single Horizontal (U+252C) - ┬
  467. /// </summary>
  468. public Rune TopTee { get; set; } = (Rune)'┬';
  469. /// <summary>
  470. /// Box Drawings Top Tee - Single Vertical and Double Horizontal (U+2564) - ╤
  471. /// </summary>
  472. public Rune TopTeeDblH { get; set; } = (Rune)'╤';
  473. /// <summary>
  474. /// Box Drawings Top Tee - Double Vertical and Single Horizontal (U+2565) - ╥
  475. /// </summary>
  476. public Rune TopTeeDblV { get; set; } = (Rune)'╥';
  477. /// <summary>
  478. /// Box Drawings Top Tee - Double Vertical and Double Horizontal (U+2566) - ╦
  479. /// </summary>
  480. public Rune TopTeeDbl { get; set; } = (Rune)'╦';
  481. /// <summary>
  482. /// Box Drawings Top Tee - Heavy Horizontal and Light Vertical (U+252F) - ┯
  483. /// </summary>
  484. public Rune TopTeeHvH { get; set; } = (Rune)'┯';
  485. /// <summary>
  486. /// Box Drawings Top Tee - Light Horizontal and Heavy Vertical (U+2537) - ┰
  487. /// </summary>
  488. public Rune TopTeeHvV { get; set; } = (Rune)'┰';
  489. /// <summary>
  490. /// Box Drawings Top Tee - Heavy Vertical and Heavy Horizontal (U+2533) - ┳
  491. /// </summary>
  492. public Rune TopTeeHvDblH { get; set; } = (Rune)'┳';
  493. /// <summary>
  494. /// Box Drawings Bottom Tee - Single Vertical and Single Horizontal (U+2534) - ┴
  495. /// </summary>
  496. public Rune BottomTee { get; set; } = (Rune)'┴';
  497. /// <summary>
  498. /// Box Drawings Bottom Tee - Single Vertical and Double Horizontal (U+2567) - ╧
  499. /// </summary>
  500. public Rune BottomTeeDblH { get; set; } = (Rune)'╧';
  501. /// <summary>
  502. /// Box Drawings Bottom Tee - Double Vertical and Single Horizontal (U+2568) - ╨
  503. /// </summary>
  504. public Rune BottomTeeDblV { get; set; } = (Rune)'╨';
  505. /// <summary>
  506. /// Box Drawings Bottom Tee - Double Vertical and Double Horizontal (U+2569) - ╩
  507. /// </summary>
  508. public Rune BottomTeeDbl { get; set; } = (Rune)'╩';
  509. /// <summary>
  510. /// Box Drawings Bottom Tee - Heavy Horizontal and Light Vertical (U+2535) - ┷
  511. /// </summary>
  512. public Rune BottomTeeHvH { get; set; } = (Rune)'┷';
  513. /// <summary>
  514. /// Box Drawings Bottom Tee - Light Horizontal and Heavy Vertical (U+253D) - ┸
  515. /// </summary>
  516. public Rune BottomTeeHvV { get; set; } = (Rune)'┸';
  517. /// <summary>
  518. /// Box Drawings Bottom Tee - Heavy Vertical and Heavy Horizontal (U+2539) - ┻
  519. /// </summary>
  520. public Rune BottomTeeHvDblH { get; set; } = (Rune)'┻';
  521. #endregion
  522. #region ----------------- Crosses -----------------
  523. /// <summary>
  524. /// Box Drawings Cross - Single Vertical and Single Horizontal (U+253C) - ┼
  525. /// </summary>
  526. public Rune Cross { get; set; } = (Rune)'┼';
  527. /// <summary>
  528. /// Box Drawings Cross - Single Vertical and Double Horizontal (U+256A) - ╪
  529. /// </summary>
  530. public Rune CrossDblH { get; set; } = (Rune)'╪';
  531. /// <summary>
  532. /// Box Drawings Cross - Double Vertical and Single Horizontal (U+256B) - ╫
  533. /// </summary>
  534. public Rune CrossDblV { get; set; } = (Rune)'╫';
  535. /// <summary>
  536. /// Box Drawings Cross - Double Vertical and Double Horizontal (U+256C) - ╬
  537. /// </summary>
  538. public Rune CrossDbl { get; set; } = (Rune)'╬';
  539. /// <summary>
  540. /// Box Drawings Cross - Heavy Horizontal and Light Vertical (U+253F) - ┿
  541. /// </summary>
  542. public Rune CrossHvH { get; set; } = (Rune)'┿';
  543. /// <summary>
  544. /// Box Drawings Cross - Light Horizontal and Heavy Vertical (U+2541) - ╂
  545. /// </summary>
  546. public Rune CrossHvV { get; set; } = (Rune)'╂';
  547. /// <summary>
  548. /// Box Drawings Cross - Heavy Vertical and Heavy Horizontal (U+254B) - ╋
  549. /// </summary>
  550. public Rune CrossHv { get; set; } = (Rune)'╋';
  551. #endregion
  552. }
  553. }