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