using static Terminal.Gui.ConfigurationManager; using System.Text.Json.Serialization; using Rune = System.Rune; namespace Terminal.Gui { /// /// Defines the standard set of glyphs used to draw checkboxes, lines, borders, etc... /// /// /// /// The default glyphs can be changed via the . Within a config.json file /// The JSon property name is the property prefixed with "CM.Glyphs.". /// /// /// The JSon property can be either a decimal number or a string. The string may be one of: /// - A unicode char (e.g. "☑") /// - A hex value in U+ format (e.g. "U+2611") /// - A hex value in UTF-16 format (e.g. "\\u2611") /// /// public class GlyphDefinitions { #region ----------------- Single Glyphs ----------------- /// /// Checked indicator (e.g. for and ). /// public Rune Checked { get; set; } = '☑'; /// /// Not Checked indicator (e.g. for and ). /// public Rune UnChecked { get; set; } = '☐'; /// /// Null Checked indicator (e.g. for and ). /// public Rune NullChecked { get; set; } = '☒'; /// /// Selected indicator (e.g. for and ). /// public Rune Selected { get; set; } = '◉'; /// /// Not Selected indicator (e.g. for and ). /// public Rune UnSelected { get; set; } = '○'; /// /// Horizontal arrow. /// public Rune RightArrow { get; set; } = '►'; /// /// Left arrow. /// public Rune LeftArrow { get; set; } = '◄'; /// /// Down arrow. /// public Rune DownArrow { get; set; } = '▼'; /// /// Vertical arrow. /// public Rune UpArrow { get; set; } = '▲'; /// /// Left default indicator (e.g. for . /// public Rune LeftDefaultIndicator { get; set; } = '►'; /// /// Horizontal default indicator (e.g. for . /// public Rune RightDefaultIndicator { get; set; } = '◄'; /// /// Left Bracket (e.g. for . Default is (U+005B) - [. /// public Rune LeftBracket { get; set; } = '⟦'; /// /// Horizontal Bracket (e.g. for . Default is (U+005D) - ]. /// public Rune RightBracket { get; set; } = '⟧'; /// /// Half block meter segment (e.g. for ). /// public Rune BlocksMeterSegment { get; set; } = '▌'; /// /// Continuous block meter segment (e.g. for ). /// public Rune ContinuousMeterSegment { get; set; } = '█'; /// /// Stipple pattern (e.g. for ). Default is Light Shade (U+2591) - ░. /// public Rune Stipple { get; set; } = '░'; /// /// Diamond (e.g. for . Default is Lozenge (U+25CA) - ◊. /// public Rune Diamond { get; set; } = '◊'; /// /// Close. Default is Heavy Ballot X (U+2718) - ✘. /// public Rune Close { get; set; } = '✘'; /// /// Minimize. Default is Lower Horizontal Shadowed White Circle (U+274F) - ❏. /// public Rune Minimize { get; set; } = '❏'; /// /// Maximize. Default is Upper Horizontal Shadowed White Circle (U+273D) - ✽. /// public Rune Maximize { get; set; } = '✽'; /// /// Dot. Default is (U+2219) - ∙. /// public Rune Dot { get; set; } = '∙'; /// /// Expand (e.g. for . /// public Rune Expand { get; set; } = '+'; /// /// Expand (e.g. for . /// public Rune Collapse { get; set; } = '-'; /// /// Apple. Because snek. /// public Rune Apple { get; set; } = '❦' ; // BUGBUG: "🍎"[0] should work, but doesn't #endregion /// /// Folder icon. Defaults to ꤉ (Kayah Li Digit Nine) /// public Rune Folder { get; set; } = '꤉'; /// /// File icon. Defaults to ☰ (Trigram For Heaven) /// public Rune File { get; set; } = '☰'; #region ----------------- Lines ----------------- /// /// Box Drawings Horizontal Line - Light (U+2500) - ─ /// public Rune HLine { get; set; } = '─'; /// /// Box Drawings Vertical Line - Light (U+2502) - │ /// public Rune VLine { get; set; } = '│'; /// /// Box Drawings Double Horizontal (U+2550) - ═ /// public Rune HLineDbl { get; set; } = '═'; /// /// Box Drawings Double Vertical (U+2551) - ║ /// public Rune VLineDbl { get; set; } = '║'; /// /// Box Drawings Heavy Double Dash Horizontal (U+254D) - ╍ /// public Rune HLineHvDa2 { get; set; } = '╍'; /// /// Box Drawings Heavy Triple Dash Vertical (U+2507) - ┇ /// public Rune VLineHvDa3 { get; set; } = '┇'; /// /// Box Drawings Heavy Triple Dash Horizontal (U+2505) - ┅ /// public Rune HLineHvDa3 { get; set; } = '┅'; /// /// Box Drawings Heavy Quadruple Dash Horizontal (U+2509) - ┉ /// public Rune HLineHvDa4 { get; set; } = '┉'; /// /// Box Drawings Heavy Double Dash Vertical (U+254F) - ╏ /// public Rune VLineHvDa2 { get; set; } = '╏'; /// /// Box Drawings Heavy Quadruple Dash Vertical (U+250B) - ┋ /// public Rune VLineHvDa4 { get; set; } = '┋'; /// /// Box Drawings Light Double Dash Horizontal (U+254C) - ╌ /// public Rune HLineDa2 { get; set; } = '╌'; /// /// Box Drawings Light Triple Dash Vertical (U+2506) - ┆ /// public Rune VLineDa3 { get; set; } = '┆'; /// /// Box Drawings Light Triple Dash Horizontal (U+2504) - ┄ /// public Rune HLineDa3 { get; set; } = '┄'; /// /// Box Drawings Light Quadruple Dash Horizontal (U+2508) - ┈ /// public Rune HLineDa4 { get; set; } = '┈'; /// /// Box Drawings Light Double Dash Vertical (U+254E) - ╎ /// public Rune VLineDa2 { get; set; } = '╎'; /// /// Box Drawings Light Quadruple Dash Vertical (U+250A) - ┊ /// public Rune VLineDa4 { get; set; } = '┊'; /// /// Box Drawings Heavy Horizontal (U+2501) - ━ /// public Rune HLineHv { get; set; } = '━'; /// /// Box Drawings Heavy Vertical (U+2503) - ┃ /// public Rune VLineHv { get; set; } = '┃'; /// /// Box Drawings Light Left (U+2574) - ╴ /// public Rune HalfLeftLine { get; set; } = '╴'; /// /// Box Drawings Light Vertical (U+2575) - ╵ /// public Rune HalfTopLine { get; set; } = '╵'; /// /// Box Drawings Light Horizontal (U+2576) - ╶ /// public Rune HalfRightLine { get; set; } = '╶'; /// /// Box Drawings Light Down (U+2577) - ╷ /// public Rune HalfBottomLine { get; set; } = '╷'; /// /// Box Drawings Heavy Left (U+2578) - ╸ /// public Rune HalfLeftLineHv { get; set; } = '╸'; /// /// Box Drawings Heavy Vertical (U+2579) - ╹ /// public Rune HalfTopLineHv { get; set; } = '╹'; /// /// Box Drawings Heavy Horizontal (U+257A) - ╺ /// public Rune HalfRightLineHv { get; set; } = '╺'; /// /// Box Drawings Light Vertical and Horizontal (U+257B) - ╻ /// public Rune HalfBottomLineLt { get; set; } = '╻'; /// /// Box Drawings Light Horizontal and Heavy Horizontal (U+257C) - ╼ /// public Rune RightSideLineLtHv { get; set; } = '╼'; /// /// Box Drawings Light Vertical and Heavy Horizontal (U+257D) - ╽ /// public Rune BottomSideLineLtHv { get; set; } = '╽'; /// /// Box Drawings Heavy Left and Light Horizontal (U+257E) - ╾ /// public Rune LeftSideLineHvLt { get; set; } = '╾'; /// /// Box Drawings Heavy Vertical and Light Horizontal (U+257F) - ╿ /// public Rune TopSideLineHvLt { get; set; } = '╿'; #endregion #region ----------------- Upper Left Corners ----------------- /// /// Box Drawings Upper Left Corner - Light Vertical and Light Horizontal (U+250C) - ┌ /// public Rune ULCorner { get; set; } = '┌'; /// /// Box Drawings Upper Left Corner - Double (U+2554) - ╔ /// public Rune ULCornerDbl { get; set; } = '╔'; /// /// Box Drawings Upper Left Corner - Light Arc Down and Horizontal (U+256D) - ╭ /// public Rune ULCornerR { get; set; } = '╭'; /// /// Box Drawings Heavy Down and Horizontal (U+250F) - ┏ /// public Rune ULCornerHv { get; set; } = '┏'; /// /// Box Drawings Down Heavy and Horizontal Light (U+251E) - ┎ /// public Rune ULCornerHvLt { get; set; } = '┎'; /// /// Box Drawings Down Light and Horizontal Heavy (U+250D) - ┎ /// public Rune ULCornerLtHv { get; set; } = '┍'; /// /// Box Drawings Double Down and Single Horizontal (U+2553) - ╓ /// public Rune ULCornerDblSingle { get; set; } = '╓'; /// /// Box Drawings Single Down and Double Horizontal (U+2552) - ╒ /// public Rune ULCornerSingleDbl { get; set; } = '╒'; #endregion #region ----------------- Lower Left Corners ----------------- /// /// Box Drawings Lower Left Corner - Light Vertical and Light Horizontal (U+2514) - └ /// public Rune LLCorner { get; set; } = '└'; /// /// Box Drawings Heavy Vertical and Horizontal (U+2517) - ┗ /// public Rune LLCornerHv { get; set; } = '┗'; /// /// Box Drawings Heavy Vertical and Horizontal Light (U+2516) - ┖ /// public Rune LLCornerHvLt { get; set; } = '┖'; /// /// Box Drawings Vertical Light and Horizontal Heavy (U+2511) - ┕ /// public Rune LLCornerLtHv { get; set; } = '┕'; /// /// Box Drawings Double Vertical and Double Left (U+255A) - ╚ /// public Rune LLCornerDbl { get; set; } = '╚'; /// /// Box Drawings Single Vertical and Double Left (U+2558) - ╘ /// public Rune LLCornerSingleDbl { get; set; } = '╘'; /// /// Box Drawings Double Down and Single Left (U+2559) - ╙ /// public Rune LLCornerDblSingle { get; set; } = '╙'; /// /// Box Drawings Upper Left Corner - Light Arc Down and Left (U+2570) - ╰ /// public Rune LLCornerR { get; set; } = '╰'; #endregion #region ----------------- Upper Right Corners ----------------- /// /// Box Drawings Upper Horizontal Corner - Light Vertical and Light Horizontal (U+2510) - ┐ /// public Rune URCorner { get; set; } = '┐'; /// /// Box Drawings Upper Horizontal Corner - Double Vertical and Double Horizontal (U+2557) - ╗ /// public Rune URCornerDbl { get; set; } = '╗'; /// /// Box Drawings Upper Horizontal Corner - Light Arc Vertical and Horizontal (U+256E) - ╮ /// public Rune URCornerR { get; set; } = '╮'; /// /// Box Drawings Heavy Down and Left (U+2513) - ┓ /// public Rune URCornerHv { get; set; } = '┓'; /// /// Box Drawings Heavy Vertical and Left Down Light (U+2511) - ┑ /// public Rune URCornerHvLt { get; set; } = '┑'; /// /// Box Drawings Down Light and Horizontal Heavy (U+2514) - ┒ /// public Rune URCornerLtHv { get; set; } = '┒'; /// /// Box Drawings Double Vertical and Single Left (U+2556) - ╖ /// public Rune URCornerDblSingle { get; set; } = '╖'; /// /// Box Drawings Single Vertical and Double Left (U+2555) - ╕ /// public Rune URCornerSingleDbl { get; set; } = '╕'; #endregion #region ----------------- Lower Right Corners ----------------- /// /// Box Drawings Lower Right Corner - Light (U+2518) - ┘ /// public Rune LRCorner { get; set; } = '┘'; /// /// Box Drawings Lower Right Corner - Double (U+255D) - ╝ /// public Rune LRCornerDbl { get; set; } = '╝'; /// /// Box Drawings Lower Right Corner - Rounded (U+256F) - ╯ /// public Rune LRCornerR { get; set; } = '╯'; /// /// Box Drawings Lower Right Corner - Heavy (U+251B) - ┛ /// public Rune LRCornerHv { get; set; } = '┛'; /// /// Box Drawings Lower Right Corner - Double Vertical and Single Horizontal (U+255C) - ╜ /// public Rune LRCornerDblSingle { get; set; } = '╜'; /// /// Box Drawings Lower Right Corner - Single Vertical and Double Horizontal (U+255B) - ╛ /// public Rune LRCornerSingleDbl { get; set; } = '╛'; /// /// Box Drawings Lower Right Corner - Light Vertical and Heavy Horizontal (U+2519) - ┙ /// public Rune LRCornerLtHv { get; set; } = '┙'; /// /// Box Drawings Lower Right Corner - Heavy Vertical and Light Horizontal (U+251A) - ┚ /// public Rune LRCornerHvLt { get; set; } = '┚'; #endregion #region ----------------- Tees ----------------- /// /// Box Drawings Left Tee - Single Vertical and Single Horizontal (U+251C) - ├ /// public Rune LeftTee { get; set; } = '├'; /// /// Box Drawings Left Tee - Single Vertical and Double Horizontal (U+255E) - ╞ /// public Rune LeftTeeDblH { get; set; } = '╞'; /// /// Box Drawings Left Tee - Double Vertical and Single Horizontal (U+255F) - ╟ /// public Rune LeftTeeDblV { get; set; } = '╟'; /// /// Box Drawings Left Tee - Double Vertical and Double Horizontal (U+2560) - ╠ /// public Rune LeftTeeDbl { get; set; } = '╠'; /// /// Box Drawings Left Tee - Heavy Horizontal and Light Vertical (U+2523) - ┝ /// public Rune LeftTeeHvH { get; set; } = '┝'; /// /// Box Drawings Left Tee - Light Horizontal and Heavy Vertical (U+252B) - ┠ /// public Rune LeftTeeHvV { get; set; } = '┠'; /// /// Box Drawings Left Tee - Heavy Vertical and Heavy Horizontal (U+2527) - ┣ /// public Rune LeftTeeHvDblH { get; set; } = '┣'; /// /// Box Drawings Righ Tee - Single Vertical and Single Horizontal (U+2524) - ┤ /// public Rune RightTee { get; set; } = '┤'; /// /// Box Drawings Right Tee - Single Vertical and Double Horizontal (U+2561) - ╡ /// public Rune RightTeeDblH { get; set; } = '╡'; /// /// Box Drawings Right Tee - Double Vertical and Single Horizontal (U+2562) - ╢ /// public Rune RightTeeDblV { get; set; } = '╢'; /// /// Box Drawings Right Tee - Double Vertical and Double Horizontal (U+2563) - ╣ /// public Rune RightTeeDbl { get; set; } = '╣'; /// /// Box Drawings Right Tee - Heavy Horizontal and Light Vertical (U+2528) - ┥ /// public Rune RightTeeHvH { get; set; } = '┥'; /// /// Box Drawings Right Tee - Light Horizontal and Heavy Vertical (U+2530) - ┨ /// public Rune RightTeeHvV { get; set; } = '┨'; /// /// Box Drawings Right Tee - Heavy Vertical and Heavy Horizontal (U+252C) - ┫ /// public Rune RightTeeHvDblH { get; set; } = '┫'; /// /// Box Drawings Top Tee - Single Vertical and Single Horizontal (U+252C) - ┬ /// public Rune TopTee { get; set; } = '┬'; /// /// Box Drawings Top Tee - Single Vertical and Double Horizontal (U+2564) - ╤ /// public Rune TopTeeDblH { get; set; } = '╤'; /// /// Box Drawings Top Tee - Double Vertical and Single Horizontal (U+2565) - ╥ /// public Rune TopTeeDblV { get; set; } = '╥'; /// /// Box Drawings Top Tee - Double Vertical and Double Horizontal (U+2566) - ╦ /// public Rune TopTeeDbl { get; set; } = '╦'; /// /// Box Drawings Top Tee - Heavy Horizontal and Light Vertical (U+252F) - ┯ /// public Rune TopTeeHvH { get; set; } = '┯'; /// /// Box Drawings Top Tee - Light Horizontal and Heavy Vertical (U+2537) - ┰ /// public Rune TopTeeHvV { get; set; } = '┰'; /// /// Box Drawings Top Tee - Heavy Vertical and Heavy Horizontal (U+2533) - ┳ /// public Rune TopTeeHvDblH { get; set; } = '┳'; /// /// Box Drawings Bottom Tee - Single Vertical and Single Horizontal (U+2534) - ┴ /// public Rune BottomTee { get; set; } = '┴'; /// /// Box Drawings Bottom Tee - Single Vertical and Double Horizontal (U+2567) - ╧ /// public Rune BottomTeeDblH { get; set; } = '╧'; /// /// Box Drawings Bottom Tee - Double Vertical and Single Horizontal (U+2568) - ╨ /// public Rune BottomTeeDblV { get; set; } = '╨'; /// /// Box Drawings Bottom Tee - Double Vertical and Double Horizontal (U+2569) - ╩ /// public Rune BottomTeeDbl { get; set; } = '╩'; /// /// Box Drawings Bottom Tee - Heavy Horizontal and Light Vertical (U+2535) - ┷ /// public Rune BottomTeeHvH { get; set; } = '┷'; /// /// Box Drawings Bottom Tee - Light Horizontal and Heavy Vertical (U+253D) - ┸ /// public Rune BottomTeeHvV { get; set; } = '┸'; /// /// Box Drawings Bottom Tee - Heavy Vertical and Heavy Horizontal (U+2539) - ┻ /// public Rune BottomTeeHvDblH { get; set; } = '┻'; #endregion #region ----------------- Crosses ----------------- /// /// Box Drawings Cross - Single Vertical and Single Horizontal (U+253C) - ┼ /// public Rune Cross { get; set; } = '┼'; /// /// Box Drawings Cross - Single Vertical and Double Horizontal (U+256A) - ╪ /// public Rune CrossDblH { get; set; } = '╪'; /// /// Box Drawings Cross - Double Vertical and Single Horizontal (U+256B) - ╫ /// public Rune CrossDblV { get; set; } = '╫'; /// /// Box Drawings Cross - Double Vertical and Double Horizontal (U+256C) - ╬ /// public Rune CrossDbl { get; set; } = '╬'; /// /// Box Drawings Cross - Heavy Horizontal and Light Vertical (U+253F) - ┿ /// public Rune CrossHvH { get; set; } = '┿'; /// /// Box Drawings Cross - Light Horizontal and Heavy Vertical (U+2541) - ╂ /// public Rune CrossHvV { get; set; } = '╂'; /// /// Box Drawings Cross - Heavy Vertical and Heavy Horizontal (U+254B) - ╋ /// public Rune CrossHv { get; set; } = '╋'; #endregion } }