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
}
}