diff --git a/Terminal.Gui/Configuration/ConfigPropertyHostTypes.cs b/Terminal.Gui/Configuration/ConfigPropertyHostTypes.cs
index 6fd66cd061..698cf8c37b 100644
--- a/Terminal.Gui/Configuration/ConfigPropertyHostTypes.cs
+++ b/Terminal.Gui/Configuration/ConfigPropertyHostTypes.cs
@@ -40,31 +40,15 @@ internal static class ConfigPropertyHostTypes
typeof (SchemeManager),
typeof (ThemeManager),
typeof (Color),
- typeof (Glyphs),
typeof (Driver),
typeof (Key),
- typeof (NerdFonts),
typeof (Trace),
typeof (View),
typeof (BorderView),
- typeof (Button),
- typeof (CharMap),
- typeof (CheckBox),
- typeof (Dialog),
typeof (FileDialog),
typeof (FileDialogStyle),
- typeof (FrameView),
- typeof (HexView),
- typeof (LinearRangeDefaults),
- typeof (Menu),
typeof (MenuBar),
- typeof (MessageBox),
typeof (PopoverMenu),
- typeof (SelectorBase),
- typeof (StatusBar),
- typeof (TextField),
- typeof (TextView),
- typeof (Window)
];
[DynamicDependency (PRESERVED_MEMBERS, typeof (Application))]
@@ -72,30 +56,14 @@ internal static class ConfigPropertyHostTypes
[DynamicDependency (PRESERVED_MEMBERS, typeof (SchemeManager))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (ThemeManager))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (Color))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (Glyphs))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (Driver))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (Key))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (NerdFonts))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (Trace))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (View))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (BorderView))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (Button))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (CharMap))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (CheckBox))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (Dialog))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (FileDialog))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (FileDialogStyle))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (FrameView))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (HexView))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (LinearRangeDefaults))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (Menu))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (MenuBar))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (MessageBox))]
[DynamicDependency (PRESERVED_MEMBERS, typeof (PopoverMenu))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (SelectorBase))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (StatusBar))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (TextField))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (TextView))]
- [DynamicDependency (PRESERVED_MEMBERS, typeof (Window))]
internal static Type [] GetTypes () => _types;
}
diff --git a/Terminal.Gui/Configuration/Settings/ButtonSettings.cs b/Terminal.Gui/Configuration/Settings/ButtonSettings.cs
index 2ec80020f8..6e67c7eb1a 100644
--- a/Terminal.Gui/Configuration/Settings/ButtonSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/ButtonSettings.cs
@@ -1,19 +1,33 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for visual defaults (ThemeScope).
+/// Immutable settings record for visual defaults (ThemeScope).
///
-public class ButtonSettings
+///
+///
+/// is the compile-time-known fallback (constructor defaults).
+/// holds the currently effective values and is updated atomically by
+/// via Volatile.Write at startup and on theme switch. Mid-render
+/// consumers always observe either the previous or the next reference — never a partially populated one.
+///
+///
+public sealed record ButtonSettings
{
- /// Gets or sets the default shadow style for buttons.
- public ShadowStyles DefaultShadow { get; set; } = ShadowStyles.Opaque;
+ /// Gets the default shadow style for buttons.
+ public ShadowStyles DefaultShadow { get; init; } = ShadowStyles.Opaque;
- /// Gets or sets the default mouse highlight states for buttons.
- public MouseState DefaultMouseHighlightStates { get; set; } = MouseState.In | MouseState.Pressed | MouseState.PressedOutside;
+ /// Gets the default mouse highlight states for buttons.
+ public MouseState DefaultMouseHighlightStates { get; init; } = MouseState.In | MouseState.Pressed | MouseState.PressedOutside;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static ButtonSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static ButtonSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static ButtonSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static ButtonSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/CharMapSettings.cs b/Terminal.Gui/Configuration/Settings/CharMapSettings.cs
index e476205c9e..437b626eae 100644
--- a/Terminal.Gui/Configuration/Settings/CharMapSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/CharMapSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class CharMapSettings
+public sealed record CharMapSettings
{
- /// Gets or sets the default cursor style for character map views.
- public CursorStyle DefaultCursorStyle { get; set; } = CursorStyle.BlinkingBlock;
+ /// Gets the default cursor style for character map views.
+ public CursorStyle DefaultCursorStyle { get; init; } = CursorStyle.BlinkingBlock;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static CharMapSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static CharMapSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static CharMapSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static CharMapSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/CheckBoxSettings.cs b/Terminal.Gui/Configuration/Settings/CheckBoxSettings.cs
index 408d20ed43..e75b562b94 100644
--- a/Terminal.Gui/Configuration/Settings/CheckBoxSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/CheckBoxSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for visual defaults (ThemeScope).
+/// Immutable settings record for visual defaults (ThemeScope).
///
-public class CheckBoxSettings
+public sealed record CheckBoxSettings
{
- /// Gets or sets the default mouse highlight states for checkboxes.
- public MouseState DefaultMouseHighlightStates { get; set; } = MouseState.PressedOutside | MouseState.Pressed | MouseState.In;
+ /// Gets the default mouse highlight states for checkboxes.
+ public MouseState DefaultMouseHighlightStates { get; init; } = MouseState.PressedOutside | MouseState.Pressed | MouseState.In;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static CheckBoxSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static CheckBoxSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static CheckBoxSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static CheckBoxSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/DialogSettings.cs b/Terminal.Gui/Configuration/Settings/DialogSettings.cs
index 60c01d6aef..82f7d34ac8 100644
--- a/Terminal.Gui/Configuration/Settings/DialogSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/DialogSettings.cs
@@ -1,25 +1,31 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for visual defaults (ThemeScope).
+/// Immutable settings record for visual defaults (ThemeScope).
///
-public class DialogSettings
+public sealed record DialogSettings
{
- /// Gets or sets the default shadow style for dialogs.
- public ShadowStyles DefaultShadow { get; set; } = ShadowStyles.Transparent;
+ /// Gets the default shadow style for dialogs.
+ public ShadowStyles DefaultShadow { get; init; } = ShadowStyles.Transparent;
- /// Gets or sets the default border style for dialogs.
- public LineStyle DefaultBorderStyle { get; set; } = LineStyle.Heavy;
+ /// Gets the default border style for dialogs.
+ public LineStyle DefaultBorderStyle { get; init; } = LineStyle.Heavy;
- /// Gets or sets the default button alignment for dialogs.
- public Alignment DefaultButtonAlignment { get; set; } = Alignment.End;
+ /// Gets the default button alignment for dialogs.
+ public Alignment DefaultButtonAlignment { get; init; } = Alignment.End;
- /// Gets or sets the default button alignment modes for dialogs.
- public AlignmentModes DefaultButtonAlignmentModes { get; set; } = AlignmentModes.StartToEnd | AlignmentModes.AddSpaceBetweenItems;
+ /// Gets the default button alignment modes for dialogs.
+ public AlignmentModes DefaultButtonAlignmentModes { get; init; } = AlignmentModes.StartToEnd | AlignmentModes.AddSpaceBetweenItems;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static DialogSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static DialogSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static DialogSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static DialogSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/FrameViewSettings.cs b/Terminal.Gui/Configuration/Settings/FrameViewSettings.cs
index 89748a8fe2..f65bfac8f2 100644
--- a/Terminal.Gui/Configuration/Settings/FrameViewSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/FrameViewSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class FrameViewSettings
+public sealed record FrameViewSettings
{
- /// Gets or sets the default border style for frame views.
- public LineStyle DefaultBorderStyle { get; set; } = LineStyle.Rounded;
+ /// Gets the default border style for frame views.
+ public LineStyle DefaultBorderStyle { get; init; } = LineStyle.Rounded;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static FrameViewSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static FrameViewSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static FrameViewSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static FrameViewSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/GlyphSettings.cs b/Terminal.Gui/Configuration/Settings/GlyphSettings.cs
index b604e95ea2..6f8b658c6c 100644
--- a/Terminal.Gui/Configuration/Settings/GlyphSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/GlyphSettings.cs
@@ -3,443 +3,449 @@ namespace Terminal.Gui.Configuration;
///
/// Settings POCO for defaults (ThemeScope).
///
-public class GlyphSettings
+public sealed record GlyphSettings
{
/// Unicode replacement character; used when a wide glyph can't be output because it would be clipped.
- public Rune WideGlyphReplacement { get; set; } = (Rune)' ';
+ public Rune WideGlyphReplacement { get; init; } = (Rune)' ';
/// File icon.
- public Rune File { get; set; } = (Rune)'☰';
+ public Rune File { get; init; } = (Rune)'☰';
/// Folder icon.
- public Rune Folder { get; set; } = (Rune)'꤉';
+ public Rune Folder { get; init; } = (Rune)'꤉';
/// Horizontal Ellipsis.
- public Rune HorizontalEllipsis { get; set; } = (Rune)'…';
+ public Rune HorizontalEllipsis { get; init; } = (Rune)'…';
/// Vertical Four Dots.
- public Rune VerticalFourDots { get; set; } = (Rune)'⁞';
+ public Rune VerticalFourDots { get; init; } = (Rune)'⁞';
/// Null symbol.
- public Rune Null { get; set; } = (Rune)'␀';
+ public Rune Null { get; init; } = (Rune)'␀';
/// Checked indicator.
- public Rune CheckStateChecked { get; set; } = (Rune)'☑';
+ public Rune CheckStateChecked { get; init; } = (Rune)'☒';
/// Not Checked indicator.
- public Rune CheckStateUnChecked { get; set; } = (Rune)'☐';
+ public Rune CheckStateUnChecked { get; init; } = (Rune)'☐';
/// Null Checked indicator.
- public Rune CheckStateNone { get; set; } = (Rune)'⬛';
+ public Rune CheckStateNone { get; init; } = (Rune)'□';
/// Selected indicator.
- public Rune Selected { get; set; } = (Rune)'◉';
+ public Rune Selected { get; init; } = (Rune)'◉';
/// Not Selected indicator.
- public Rune UnSelected { get; set; } = (Rune)'○';
+ public Rune UnSelected { get; init; } = (Rune)'○';
/// Right arrow.
- public Rune RightArrow { get; set; } = (Rune)'►';
+ public Rune RightArrow { get; init; } = (Rune)'►';
/// Left arrow.
- public Rune LeftArrow { get; set; } = (Rune)'◄';
+ public Rune LeftArrow { get; init; } = (Rune)'◄';
/// Down arrow.
- public Rune DownArrow { get; set; } = (Rune)'▼';
+ public Rune DownArrow { get; init; } = (Rune)'▼';
/// Up arrow.
- public Rune UpArrow { get; set; } = (Rune)'▲';
+ public Rune UpArrow { get; init; } = (Rune)'▲';
/// Left default indicator.
- public Rune LeftDefaultIndicator { get; set; } = (Rune)'►';
+ public Rune LeftDefaultIndicator { get; init; } = (Rune)'►';
/// Right default indicator.
- public Rune RightDefaultIndicator { get; set; } = (Rune)'◄';
+ public Rune RightDefaultIndicator { get; init; } = (Rune)'◄';
/// Left Bracket.
- public Rune LeftBracket { get; set; } = (Rune)'⟦';
+ public Rune LeftBracket { get; init; } = (Rune)'⟦';
/// Right Bracket.
- public Rune RightBracket { get; set; } = (Rune)'⟧';
+ public Rune RightBracket { get; init; } = (Rune)'⟧';
/// Half block meter segment.
- public Rune BlocksMeterSegment { get; set; } = (Rune)'▌';
+ public Rune BlocksMeterSegment { get; init; } = (Rune)'▌';
/// Continuous block meter segment.
- public Rune ContinuousMeterSegment { get; set; } = (Rune)'█';
+ public Rune ContinuousMeterSegment { get; init; } = (Rune)'█';
/// Stipple pattern.
- public Rune Stipple { get; set; } = (Rune)'░';
+ public Rune Stipple { get; init; } = (Rune)'░';
/// Diamond.
- public Rune Diamond { get; set; } = (Rune)'◊';
+ public Rune Diamond { get; init; } = (Rune)'◊';
/// Close.
- public Rune Close { get; set; } = (Rune)'✘';
+ public Rune Close { get; init; } = (Rune)'✘';
/// Minimize.
- public Rune Minimize { get; set; } = (Rune)'❏';
+ public Rune Minimize { get; init; } = (Rune)'❏';
/// Maximize.
- public Rune Maximize { get; set; } = (Rune)'✽';
+ public Rune Maximize { get; init; } = (Rune)'✽';
/// Dot.
- public Rune Dot { get; set; } = (Rune)'∙';
+ public Rune Dot { get; init; } = (Rune)'∙';
/// Dotted Square.
- public Rune DottedSquare { get; set; } = (Rune)'⬚';
+ public Rune DottedSquare { get; init; } = (Rune)'⬚';
/// Black Circle.
- public Rune BlackCircle { get; set; } = (Rune)'●';
+ public Rune BlackCircle { get; init; } = (Rune)'●';
/// Expand.
- public Rune Expand { get; set; } = (Rune)'+';
+ public Rune Expand { get; init; } = (Rune)'+';
/// Collapse.
- public Rune Collapse { get; set; } = (Rune)'-';
+ public Rune Collapse { get; init; } = (Rune)'-';
/// Identical To.
- public Rune IdenticalTo { get; set; } = (Rune)'≡';
+ public Rune IdenticalTo { get; init; } = (Rune)'≡';
/// Move indicator.
- public Rune Move { get; set; } = (Rune)'◊';
+ public Rune Move { get; init; } = (Rune)'◊';
/// Size Horizontally indicator.
- public Rune SizeHorizontal { get; set; } = (Rune)'↔';
+ public Rune SizeHorizontal { get; init; } = (Rune)'↔';
/// Size Vertical indicator.
- public Rune SizeVertical { get; set; } = (Rune)'↕';
+ public Rune SizeVertical { get; init; } = (Rune)'↕';
/// Size Top Left indicator.
- public Rune SizeTopLeft { get; set; } = (Rune)'↖';
+ public Rune SizeTopLeft { get; init; } = (Rune)'↖';
/// Size Top Right indicator.
- public Rune SizeTopRight { get; set; } = (Rune)'↗';
+ public Rune SizeTopRight { get; init; } = (Rune)'↗';
/// Size Bottom Right indicator.
- public Rune SizeBottomRight { get; set; } = (Rune)'↘';
+ public Rune SizeBottomRight { get; init; } = (Rune)'↘';
/// Size Bottom Left indicator.
- public Rune SizeBottomLeft { get; set; } = (Rune)'↙';
+ public Rune SizeBottomLeft { get; init; } = (Rune)'↙';
/// Apple (non-BMP).
- public Rune Apple { get; set; } = "🍎".ToRunes () [0];
+ public Rune Apple { get; init; } = "🍎".ToRunes () [0];
/// Apple (BMP).
- public Rune AppleBMP { get; set; } = (Rune)'❦';
+ public Rune AppleBMP { get; init; } = (Rune)'❦';
/// Copy indicator.
- public Rune Copy { get; set; } = (Rune)'⧉';
+ public Rune Copy { get; init; } = (Rune)'⧉';
/// Box Drawings Horizontal Line - Light.
- public Rune HLine { get; set; } = (Rune)'─';
+ public Rune HLine { get; init; } = (Rune)'─';
/// Box Drawings Vertical Line - Light.
- public Rune VLine { get; set; } = (Rune)'│';
+ public Rune VLine { get; init; } = (Rune)'│';
/// Box Drawings Double Horizontal.
- public Rune HLineDbl { get; set; } = (Rune)'═';
+ public Rune HLineDbl { get; init; } = (Rune)'═';
/// Box Drawings Double Vertical.
- public Rune VLineDbl { get; set; } = (Rune)'║';
+ public Rune VLineDbl { get; init; } = (Rune)'║';
/// Box Drawings Heavy Double Dash Horizontal.
- public Rune HLineHvDa2 { get; set; } = (Rune)'╍';
+ public Rune HLineHvDa2 { get; init; } = (Rune)'╍';
/// Box Drawings Heavy Triple Dash Vertical.
- public Rune VLineHvDa3 { get; set; } = (Rune)'┇';
+ public Rune VLineHvDa3 { get; init; } = (Rune)'┇';
/// Box Drawings Heavy Triple Dash Horizontal.
- public Rune HLineHvDa3 { get; set; } = (Rune)'┅';
+ public Rune HLineHvDa3 { get; init; } = (Rune)'┅';
/// Box Drawings Heavy Quadruple Dash Horizontal.
- public Rune HLineHvDa4 { get; set; } = (Rune)'┉';
+ public Rune HLineHvDa4 { get; init; } = (Rune)'┉';
/// Box Drawings Heavy Double Dash Vertical.
- public Rune VLineHvDa2 { get; set; } = (Rune)'╏';
+ public Rune VLineHvDa2 { get; init; } = (Rune)'╏';
/// Box Drawings Heavy Quadruple Dash Vertical.
- public Rune VLineHvDa4 { get; set; } = (Rune)'┋';
+ public Rune VLineHvDa4 { get; init; } = (Rune)'┋';
/// Box Drawings Light Double Dash Horizontal.
- public Rune HLineDa2 { get; set; } = (Rune)'╌';
+ public Rune HLineDa2 { get; init; } = (Rune)'╌';
/// Box Drawings Light Triple Dash Vertical.
- public Rune VLineDa3 { get; set; } = (Rune)'┆';
+ public Rune VLineDa3 { get; init; } = (Rune)'┆';
/// Box Drawings Light Triple Dash Horizontal.
- public Rune HLineDa3 { get; set; } = (Rune)'┄';
+ public Rune HLineDa3 { get; init; } = (Rune)'┄';
/// Box Drawings Light Quadruple Dash Horizontal.
- public Rune HLineDa4 { get; set; } = (Rune)'┈';
+ public Rune HLineDa4 { get; init; } = (Rune)'┈';
/// Box Drawings Light Double Dash Vertical.
- public Rune VLineDa2 { get; set; } = (Rune)'╎';
+ public Rune VLineDa2 { get; init; } = (Rune)'╎';
/// Box Drawings Light Quadruple Dash Vertical.
- public Rune VLineDa4 { get; set; } = (Rune)'┊';
+ public Rune VLineDa4 { get; init; } = (Rune)'┊';
/// Box Drawings Heavy Horizontal.
- public Rune HLineHv { get; set; } = (Rune)'━';
+ public Rune HLineHv { get; init; } = (Rune)'━';
/// Box Drawings Heavy Vertical.
- public Rune VLineHv { get; set; } = (Rune)'┃';
+ public Rune VLineHv { get; init; } = (Rune)'┃';
/// Box Drawings Light Left.
- public Rune HalfLeftLine { get; set; } = (Rune)'╴';
+ public Rune HalfLeftLine { get; init; } = (Rune)'╴';
/// Box Drawings Light Up.
- public Rune HalfTopLine { get; set; } = (Rune)'╵';
+ public Rune HalfTopLine { get; init; } = (Rune)'╵';
/// Box Drawings Light Right.
- public Rune HalfRightLine { get; set; } = (Rune)'╶';
+ public Rune HalfRightLine { get; init; } = (Rune)'╶';
/// Box Drawings Light Down.
- public Rune HalfBottomLine { get; set; } = (Rune)'╷';
+ public Rune HalfBottomLine { get; init; } = (Rune)'╷';
/// Box Drawings Heavy Left.
- public Rune HalfLeftLineHv { get; set; } = (Rune)'╸';
+ public Rune HalfLeftLineHv { get; init; } = (Rune)'╸';
/// Box Drawings Heavy Up.
- public Rune HalfTopLineHv { get; set; } = (Rune)'╹';
+ public Rune HalfTopLineHv { get; init; } = (Rune)'╹';
/// Box Drawings Heavy Right.
- public Rune HalfRightLineHv { get; set; } = (Rune)'╺';
+ public Rune HalfRightLineHv { get; init; } = (Rune)'╺';
/// Box Drawings Light Down Heavy.
- public Rune HalfBottomLineLt { get; set; } = (Rune)'╻';
+ public Rune HalfBottomLineLt { get; init; } = (Rune)'╻';
/// Box Drawings Light Horizontal and Heavy Horizontal.
- public Rune RightSideLineLtHv { get; set; } = (Rune)'╼';
+ public Rune RightSideLineLtHv { get; init; } = (Rune)'╼';
/// Box Drawings Light Vertical and Heavy Horizontal.
- public Rune BottomSideLineLtHv { get; set; } = (Rune)'╽';
+ public Rune BottomSideLineLtHv { get; init; } = (Rune)'╽';
/// Box Drawings Heavy Left and Light Horizontal.
- public Rune LeftSideLineHvLt { get; set; } = (Rune)'╾';
+ public Rune LeftSideLineHvLt { get; init; } = (Rune)'╾';
/// Box Drawings Heavy Vertical and Light Horizontal.
- public Rune TopSideLineHvLt { get; set; } = (Rune)'╿';
+ public Rune TopSideLineHvLt { get; init; } = (Rune)'╿';
/// Box Drawings Upper Left Corner - Light.
- public Rune ULCorner { get; set; } = (Rune)'┌';
+ public Rune ULCorner { get; init; } = (Rune)'┌';
/// Box Drawings Upper Left Corner - Double.
- public Rune ULCornerDbl { get; set; } = (Rune)'╔';
+ public Rune ULCornerDbl { get; init; } = (Rune)'╔';
/// Box Drawings Upper Left Corner - Rounded.
- public Rune ULCornerR { get; set; } = (Rune)'╭';
+ public Rune ULCornerR { get; init; } = (Rune)'╭';
/// Box Drawings Upper Left Corner - Heavy.
- public Rune ULCornerHv { get; set; } = (Rune)'┏';
+ public Rune ULCornerHv { get; init; } = (Rune)'┏';
/// Box Drawings Upper Left Corner - Heavy Vertical Light Horizontal.
- public Rune ULCornerHvLt { get; set; } = (Rune)'┎';
+ public Rune ULCornerHvLt { get; init; } = (Rune)'┎';
/// Box Drawings Upper Left Corner - Light Vertical Heavy Horizontal.
- public Rune ULCornerLtHv { get; set; } = (Rune)'┍';
+ public Rune ULCornerLtHv { get; init; } = (Rune)'┍';
/// Box Drawings Upper Left Corner - Double Down Single Horizontal.
- public Rune ULCornerDblSingle { get; set; } = (Rune)'╓';
+ public Rune ULCornerDblSingle { get; init; } = (Rune)'╓';
/// Box Drawings Upper Left Corner - Single Down Double Horizontal.
- public Rune ULCornerSingleDbl { get; set; } = (Rune)'╒';
+ public Rune ULCornerSingleDbl { get; init; } = (Rune)'╒';
/// Box Drawings Lower Left Corner - Light.
- public Rune LLCorner { get; set; } = (Rune)'└';
+ public Rune LLCorner { get; init; } = (Rune)'└';
/// Box Drawings Lower Left Corner - Heavy.
- public Rune LLCornerHv { get; set; } = (Rune)'┗';
+ public Rune LLCornerHv { get; init; } = (Rune)'┗';
/// Box Drawings Lower Left Corner - Heavy Vertical Light Horizontal.
- public Rune LLCornerHvLt { get; set; } = (Rune)'┖';
+ public Rune LLCornerHvLt { get; init; } = (Rune)'┖';
/// Box Drawings Lower Left Corner - Light Vertical Heavy Horizontal.
- public Rune LLCornerLtHv { get; set; } = (Rune)'┕';
+ public Rune LLCornerLtHv { get; init; } = (Rune)'┕';
/// Box Drawings Lower Left Corner - Double.
- public Rune LLCornerDbl { get; set; } = (Rune)'╚';
+ public Rune LLCornerDbl { get; init; } = (Rune)'╚';
/// Box Drawings Lower Left Corner - Single Vertical Double Horizontal.
- public Rune LLCornerSingleDbl { get; set; } = (Rune)'╘';
+ public Rune LLCornerSingleDbl { get; init; } = (Rune)'╘';
/// Box Drawings Lower Left Corner - Double Vertical Single Horizontal.
- public Rune LLCornerDblSingle { get; set; } = (Rune)'╙';
+ public Rune LLCornerDblSingle { get; init; } = (Rune)'╙';
/// Box Drawings Lower Left Corner - Rounded.
- public Rune LLCornerR { get; set; } = (Rune)'╰';
+ public Rune LLCornerR { get; init; } = (Rune)'╰';
/// Box Drawings Upper Right Corner - Light.
- public Rune URCorner { get; set; } = (Rune)'┐';
+ public Rune URCorner { get; init; } = (Rune)'┐';
/// Box Drawings Upper Right Corner - Double.
- public Rune URCornerDbl { get; set; } = (Rune)'╗';
+ public Rune URCornerDbl { get; init; } = (Rune)'╗';
/// Box Drawings Upper Right Corner - Rounded.
- public Rune URCornerR { get; set; } = (Rune)'╮';
+ public Rune URCornerR { get; init; } = (Rune)'╮';
/// Box Drawings Upper Right Corner - Heavy.
- public Rune URCornerHv { get; set; } = (Rune)'┓';
+ public Rune URCornerHv { get; init; } = (Rune)'┓';
/// Box Drawings Upper Right Corner - Heavy Vertical Light Horizontal.
- public Rune URCornerHvLt { get; set; } = (Rune)'┑';
+ public Rune URCornerHvLt { get; init; } = (Rune)'┑';
/// Box Drawings Upper Right Corner - Light Vertical Heavy Horizontal.
- public Rune URCornerLtHv { get; set; } = (Rune)'┒';
+ public Rune URCornerLtHv { get; init; } = (Rune)'┒';
/// Box Drawings Upper Right Corner - Double Vertical Single Horizontal.
- public Rune URCornerDblSingle { get; set; } = (Rune)'╖';
+ public Rune URCornerDblSingle { get; init; } = (Rune)'╖';
/// Box Drawings Upper Right Corner - Single Vertical Double Horizontal.
- public Rune URCornerSingleDbl { get; set; } = (Rune)'╕';
+ public Rune URCornerSingleDbl { get; init; } = (Rune)'╕';
/// Box Drawings Lower Right Corner - Light.
- public Rune LRCorner { get; set; } = (Rune)'┘';
+ public Rune LRCorner { get; init; } = (Rune)'┘';
/// Box Drawings Lower Right Corner - Double.
- public Rune LRCornerDbl { get; set; } = (Rune)'╝';
+ public Rune LRCornerDbl { get; init; } = (Rune)'╝';
/// Box Drawings Lower Right Corner - Rounded.
- public Rune LRCornerR { get; set; } = (Rune)'╯';
+ public Rune LRCornerR { get; init; } = (Rune)'╯';
/// Box Drawings Lower Right Corner - Heavy.
- public Rune LRCornerHv { get; set; } = (Rune)'┛';
+ public Rune LRCornerHv { get; init; } = (Rune)'┛';
/// Box Drawings Lower Right Corner - Double Vertical Single Horizontal.
- public Rune LRCornerDblSingle { get; set; } = (Rune)'╜';
+ public Rune LRCornerDblSingle { get; init; } = (Rune)'╜';
/// Box Drawings Lower Right Corner - Single Vertical Double Horizontal.
- public Rune LRCornerSingleDbl { get; set; } = (Rune)'╛';
+ public Rune LRCornerSingleDbl { get; init; } = (Rune)'╛';
/// Box Drawings Lower Right Corner - Light Vertical Heavy Horizontal.
- public Rune LRCornerLtHv { get; set; } = (Rune)'┙';
+ public Rune LRCornerLtHv { get; init; } = (Rune)'┙';
/// Box Drawings Lower Right Corner - Heavy Vertical Light Horizontal.
- public Rune LRCornerHvLt { get; set; } = (Rune)'┚';
+ public Rune LRCornerHvLt { get; init; } = (Rune)'┚';
/// Box Drawings Left Tee - Light.
- public Rune LeftTee { get; set; } = (Rune)'├';
+ public Rune LeftTee { get; init; } = (Rune)'├';
/// Box Drawings Left Tee - Single Vertical Double Horizontal.
- public Rune LeftTeeDblH { get; set; } = (Rune)'╞';
+ public Rune LeftTeeDblH { get; init; } = (Rune)'╞';
/// Box Drawings Left Tee - Double Vertical Single Horizontal.
- public Rune LeftTeeDblV { get; set; } = (Rune)'╟';
+ public Rune LeftTeeDblV { get; init; } = (Rune)'╟';
/// Box Drawings Left Tee - Double.
- public Rune LeftTeeDbl { get; set; } = (Rune)'╠';
+ public Rune LeftTeeDbl { get; init; } = (Rune)'╠';
/// Box Drawings Left Tee - Heavy Horizontal Light Vertical.
- public Rune LeftTeeHvH { get; set; } = (Rune)'┝';
+ public Rune LeftTeeHvH { get; init; } = (Rune)'┝';
/// Box Drawings Left Tee - Light Horizontal Heavy Vertical.
- public Rune LeftTeeHvV { get; set; } = (Rune)'┠';
+ public Rune LeftTeeHvV { get; init; } = (Rune)'┠';
/// Box Drawings Left Tee - Heavy.
- public Rune LeftTeeHvDblH { get; set; } = (Rune)'┣';
+ public Rune LeftTeeHvDblH { get; init; } = (Rune)'┣';
/// Box Drawings Right Tee - Light.
- public Rune RightTee { get; set; } = (Rune)'┤';
+ public Rune RightTee { get; init; } = (Rune)'┤';
/// Box Drawings Right Tee - Single Vertical Double Horizontal.
- public Rune RightTeeDblH { get; set; } = (Rune)'╡';
+ public Rune RightTeeDblH { get; init; } = (Rune)'╡';
/// Box Drawings Right Tee - Double Vertical Single Horizontal.
- public Rune RightTeeDblV { get; set; } = (Rune)'╢';
+ public Rune RightTeeDblV { get; init; } = (Rune)'╢';
/// Box Drawings Right Tee - Double.
- public Rune RightTeeDbl { get; set; } = (Rune)'╣';
+ public Rune RightTeeDbl { get; init; } = (Rune)'╣';
/// Box Drawings Right Tee - Heavy Horizontal Light Vertical.
- public Rune RightTeeHvH { get; set; } = (Rune)'┥';
+ public Rune RightTeeHvH { get; init; } = (Rune)'┥';
/// Box Drawings Right Tee - Light Horizontal Heavy Vertical.
- public Rune RightTeeHvV { get; set; } = (Rune)'┨';
+ public Rune RightTeeHvV { get; init; } = (Rune)'┨';
/// Box Drawings Right Tee - Heavy.
- public Rune RightTeeHvDblH { get; set; } = (Rune)'┫';
+ public Rune RightTeeHvDblH { get; init; } = (Rune)'┫';
/// Box Drawings Top Tee - Light.
- public Rune TopTee { get; set; } = (Rune)'┬';
+ public Rune TopTee { get; init; } = (Rune)'┬';
/// Box Drawings Top Tee - Single Vertical Double Horizontal.
- public Rune TopTeeDblH { get; set; } = (Rune)'╤';
+ public Rune TopTeeDblH { get; init; } = (Rune)'╤';
/// Box Drawings Top Tee - Double Vertical Single Horizontal.
- public Rune TopTeeDblV { get; set; } = (Rune)'╥';
+ public Rune TopTeeDblV { get; init; } = (Rune)'╥';
/// Box Drawings Top Tee - Double.
- public Rune TopTeeDbl { get; set; } = (Rune)'╦';
+ public Rune TopTeeDbl { get; init; } = (Rune)'╦';
/// Box Drawings Top Tee - Heavy Horizontal Light Vertical.
- public Rune TopTeeHvH { get; set; } = (Rune)'┯';
+ public Rune TopTeeHvH { get; init; } = (Rune)'┯';
/// Box Drawings Top Tee - Light Horizontal Heavy Vertical.
- public Rune TopTeeHvV { get; set; } = (Rune)'┰';
+ public Rune TopTeeHvV { get; init; } = (Rune)'┰';
/// Box Drawings Top Tee - Heavy.
- public Rune TopTeeHvDblH { get; set; } = (Rune)'┳';
+ public Rune TopTeeHvDblH { get; init; } = (Rune)'┳';
/// Box Drawings Bottom Tee - Light.
- public Rune BottomTee { get; set; } = (Rune)'┴';
+ public Rune BottomTee { get; init; } = (Rune)'┴';
/// Box Drawings Bottom Tee - Single Vertical Double Horizontal.
- public Rune BottomTeeDblH { get; set; } = (Rune)'╧';
+ public Rune BottomTeeDblH { get; init; } = (Rune)'╧';
/// Box Drawings Bottom Tee - Double Vertical Single Horizontal.
- public Rune BottomTeeDblV { get; set; } = (Rune)'╨';
+ public Rune BottomTeeDblV { get; init; } = (Rune)'╨';
/// Box Drawings Bottom Tee - Double.
- public Rune BottomTeeDbl { get; set; } = (Rune)'╩';
+ public Rune BottomTeeDbl { get; init; } = (Rune)'╩';
/// Box Drawings Bottom Tee - Heavy Horizontal Light Vertical.
- public Rune BottomTeeHvH { get; set; } = (Rune)'┷';
+ public Rune BottomTeeHvH { get; init; } = (Rune)'┷';
/// Box Drawings Bottom Tee - Light Horizontal Heavy Vertical.
- public Rune BottomTeeHvV { get; set; } = (Rune)'┸';
+ public Rune BottomTeeHvV { get; init; } = (Rune)'┸';
/// Box Drawings Bottom Tee - Heavy.
- public Rune BottomTeeHvDblH { get; set; } = (Rune)'┻';
+ public Rune BottomTeeHvDblH { get; init; } = (Rune)'┻';
/// Box Drawings Cross - Light.
- public Rune Cross { get; set; } = (Rune)'┼';
+ public Rune Cross { get; init; } = (Rune)'┼';
/// Box Drawings Cross - Single Vertical Double Horizontal.
- public Rune CrossDblH { get; set; } = (Rune)'╪';
+ public Rune CrossDblH { get; init; } = (Rune)'╪';
/// Box Drawings Cross - Double Vertical Single Horizontal.
- public Rune CrossDblV { get; set; } = (Rune)'╫';
+ public Rune CrossDblV { get; init; } = (Rune)'╫';
/// Box Drawings Cross - Double.
- public Rune CrossDbl { get; set; } = (Rune)'╬';
+ public Rune CrossDbl { get; init; } = (Rune)'╬';
/// Box Drawings Cross - Heavy Horizontal Light Vertical.
- public Rune CrossHvH { get; set; } = (Rune)'┿';
+ public Rune CrossHvH { get; init; } = (Rune)'┿';
/// Box Drawings Cross - Light Horizontal Heavy Vertical.
- public Rune CrossHvV { get; set; } = (Rune)'╂';
+ public Rune CrossHvV { get; init; } = (Rune)'╂';
/// Box Drawings Cross - Heavy.
- public Rune CrossHv { get; set; } = (Rune)'╋';
+ public Rune CrossHv { get; init; } = (Rune)'╋';
/// Shadow - Vertical Start.
- public Rune ShadowVerticalStart { get; set; } = (Rune)'▖';
+ public Rune ShadowVerticalStart { get; init; } = (Rune)'▖';
/// Shadow - Vertical.
- public Rune ShadowVertical { get; set; } = (Rune)'▌';
+ public Rune ShadowVertical { get; init; } = (Rune)'▌';
/// Shadow - Horizontal Start.
- public Rune ShadowHorizontalStart { get; set; } = (Rune)'▝';
+ public Rune ShadowHorizontalStart { get; init; } = (Rune)'▝';
/// Shadow - Horizontal.
- public Rune ShadowHorizontal { get; set; } = (Rune)'▀';
+ public Rune ShadowHorizontal { get; init; } = (Rune)'▀';
/// Shadow - Horizontal End.
- public Rune ShadowHorizontalEnd { get; set; } = (Rune)'▘';
+ public Rune ShadowHorizontalEnd { get; init; } = (Rune)'▘';
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static GlyphSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static GlyphSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static GlyphSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static GlyphSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/HexViewSettings.cs b/Terminal.Gui/Configuration/Settings/HexViewSettings.cs
index 10c7721a3e..de11f4a0bf 100644
--- a/Terminal.Gui/Configuration/Settings/HexViewSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/HexViewSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class HexViewSettings
+public sealed record HexViewSettings
{
- /// Gets or sets the default cursor style for hex views.
- public CursorStyle DefaultCursorStyle { get; set; } = CursorStyle.BlinkingBlock;
+ /// Gets the default cursor style for hex views.
+ public CursorStyle DefaultCursorStyle { get; init; } = CursorStyle.BlinkingBlock;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static HexViewSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static HexViewSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static HexViewSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static HexViewSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/LinearRangeSettings.cs b/Terminal.Gui/Configuration/Settings/LinearRangeSettings.cs
index 5c155dc3f9..a0233914d7 100644
--- a/Terminal.Gui/Configuration/Settings/LinearRangeSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/LinearRangeSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class LinearRangeSettings
+public sealed record LinearRangeSettings
{
- /// Gets or sets the default cursor style for linear range views.
- public CursorStyle DefaultCursorStyle { get; set; } = CursorStyle.BlinkingBlock;
+ /// Gets the default cursor style for linear range views.
+ public CursorStyle DefaultCursorStyle { get; init; } = CursorStyle.BlinkingBlock;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static LinearRangeSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static LinearRangeSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static LinearRangeSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static LinearRangeSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/MenuBarSettings.cs b/Terminal.Gui/Configuration/Settings/MenuBarSettings.cs
index 342497936a..143778d81c 100644
--- a/Terminal.Gui/Configuration/Settings/MenuBarSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/MenuBarSettings.cs
@@ -1,19 +1,25 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults.
+/// Immutable settings record for defaults.
///
-public class MenuBarSettings
+public sealed record MenuBarSettings
{
- /// Gets or sets the default border style for menu bars.
- public LineStyle DefaultBorderStyle { get; set; } = LineStyle.None;
+ /// Gets the default border style for menu bars.
+ public LineStyle DefaultBorderStyle { get; init; } = LineStyle.None;
- /// Gets or sets the default activation key for menu bars.
- public Key DefaultKey { get; set; } = Key.F10;
+ /// Gets the default activation key for menu bars.
+ public Key DefaultKey { get; init; } = Key.F10;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static MenuBarSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static MenuBarSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static MenuBarSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static MenuBarSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/MenuSettings.cs b/Terminal.Gui/Configuration/Settings/MenuSettings.cs
index 65fdc8f7ec..334961e3c5 100644
--- a/Terminal.Gui/Configuration/Settings/MenuSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/MenuSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class MenuSettings
+public sealed record MenuSettings
{
- /// Gets or sets the default border style for menus.
- public LineStyle DefaultBorderStyle { get; set; } = LineStyle.None;
+ /// Gets the default border style for menus.
+ public LineStyle DefaultBorderStyle { get; init; } = LineStyle.None;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static MenuSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static MenuSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static MenuSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static MenuSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/MessageBoxSettings.cs b/Terminal.Gui/Configuration/Settings/MessageBoxSettings.cs
index 4e5ff7af13..2f7f0f67c4 100644
--- a/Terminal.Gui/Configuration/Settings/MessageBoxSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/MessageBoxSettings.cs
@@ -1,19 +1,25 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for visual defaults (ThemeScope).
+/// Immutable settings record for visual defaults (ThemeScope).
///
-public class MessageBoxSettings
+public sealed record MessageBoxSettings
{
- /// Gets or sets the default border style for message boxes.
- public LineStyle DefaultBorderStyle { get; set; } = LineStyle.Heavy;
+ /// Gets the default border style for message boxes.
+ public LineStyle DefaultBorderStyle { get; init; } = LineStyle.Heavy;
- /// Gets or sets the default button alignment for message boxes.
- public Alignment DefaultButtonAlignment { get; set; } = Alignment.Center;
+ /// Gets the default button alignment for message boxes.
+ public Alignment DefaultButtonAlignment { get; init; } = Alignment.Center;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static MessageBoxSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static MessageBoxSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static MessageBoxSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static MessageBoxSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/NerdFontsSettings.cs b/Terminal.Gui/Configuration/Settings/NerdFontsSettings.cs
index b5a4a287c3..776f1759e7 100644
--- a/Terminal.Gui/Configuration/Settings/NerdFontsSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/NerdFontsSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class NerdFontsSettings
+public sealed record NerdFontsSettings
{
- /// Gets or sets whether Nerd Fonts glyphs are enabled.
- public bool Enable { get; set; } = false;
+ /// Gets whether Nerd Fonts glyphs are enabled.
+ public bool Enable { get; init; } = false;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static NerdFontsSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static NerdFontsSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static NerdFontsSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static NerdFontsSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/PopoverMenuSettings.cs b/Terminal.Gui/Configuration/Settings/PopoverMenuSettings.cs
index 6cb41b741d..69ff95fba0 100644
--- a/Terminal.Gui/Configuration/Settings/PopoverMenuSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/PopoverMenuSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (SettingsScope).
+/// Immutable settings record for defaults (SettingsScope).
///
-public class PopoverMenuSettings
+public sealed record PopoverMenuSettings
{
- /// Gets or sets the default activation key for popover menus.
- public Key DefaultKey { get; set; } = Key.F10.WithShift;
+ /// Gets the default activation key for popover menus.
+ public Key DefaultKey { get; init; } = Key.F10.WithShift;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static PopoverMenuSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static PopoverMenuSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static PopoverMenuSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static PopoverMenuSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/SelectorBaseSettings.cs b/Terminal.Gui/Configuration/Settings/SelectorBaseSettings.cs
index 9c00011337..18fade844e 100644
--- a/Terminal.Gui/Configuration/Settings/SelectorBaseSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/SelectorBaseSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class SelectorBaseSettings
+public sealed record SelectorBaseSettings
{
- /// Gets or sets the default mouse highlight states for selectors.
- public MouseState DefaultMouseHighlightStates { get; set; } = MouseState.In;
+ /// Gets the default mouse highlight states for selectors.
+ public MouseState DefaultMouseHighlightStates { get; init; } = MouseState.In;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static SelectorBaseSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static SelectorBaseSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static SelectorBaseSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static SelectorBaseSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/StatusBarSettings.cs b/Terminal.Gui/Configuration/Settings/StatusBarSettings.cs
index 51932645ce..609f55b3bd 100644
--- a/Terminal.Gui/Configuration/Settings/StatusBarSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/StatusBarSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class StatusBarSettings
+public sealed record StatusBarSettings
{
- /// Gets or sets the default separator line style for status bars.
- public LineStyle DefaultSeparatorLineStyle { get; set; } = LineStyle.Single;
+ /// Gets the default separator line style for status bars.
+ public LineStyle DefaultSeparatorLineStyle { get; init; } = LineStyle.Single;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static StatusBarSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static StatusBarSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static StatusBarSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static StatusBarSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/TextFieldSettings.cs b/Terminal.Gui/Configuration/Settings/TextFieldSettings.cs
index c0caf63bf7..b16955d7a7 100644
--- a/Terminal.Gui/Configuration/Settings/TextFieldSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/TextFieldSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class TextFieldSettings
+public sealed record TextFieldSettings
{
- /// Gets or sets the default cursor style for text fields.
- public CursorStyle DefaultCursorStyle { get; set; } = CursorStyle.BlinkingBar;
+ /// Gets the default cursor style for text fields.
+ public CursorStyle DefaultCursorStyle { get; init; } = CursorStyle.BlinkingBar;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static TextFieldSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static TextFieldSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static TextFieldSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static TextFieldSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/TextViewSettings.cs b/Terminal.Gui/Configuration/Settings/TextViewSettings.cs
index 5505dedb2b..5b19d26845 100644
--- a/Terminal.Gui/Configuration/Settings/TextViewSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/TextViewSettings.cs
@@ -1,16 +1,22 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for defaults (ThemeScope).
+/// Immutable settings record for defaults (ThemeScope).
///
-public class TextViewSettings
+public sealed record TextViewSettings
{
- /// Gets or sets the default cursor style for text views.
- public CursorStyle DefaultCursorStyle { get; set; } = CursorStyle.BlinkingBar;
+ /// Gets the default cursor style for text views.
+ public CursorStyle DefaultCursorStyle { get; init; } = CursorStyle.BlinkingBar;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static TextViewSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static TextViewSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static TextViewSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static TextViewSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/Settings/ThemeDefinition.cs b/Terminal.Gui/Configuration/Settings/ThemeDefinition.cs
new file mode 100644
index 0000000000..8530b11b90
--- /dev/null
+++ b/Terminal.Gui/Configuration/Settings/ThemeDefinition.cs
@@ -0,0 +1,100 @@
+using Terminal.Gui.Drawing;
+
+namespace Terminal.Gui.Configuration;
+
+///
+/// POCO that represents a single named theme in the MEC-bound configuration tree.
+///
+///
+///
+/// A contains an optional dictionary of s plus an optional
+/// per-component override for each of the 18 ThemeScope-flavored settings POCOs bound by
+/// .
+///
+///
+/// Null = no theme-level override. Each override property is nullable. When a property is ,
+/// the theme does not contribute a value for that component and the root-level *Settings section continues to
+/// supply the effective default. When a property is non-, the theme contributes a
+/// fully-populated replacement POCO; how the consumer combines it with the root defaults
+/// (wholesale-replace vs. property-level merge) is a manager-rewire concern and is not encoded here.
+///
+///
+/// Why nullable subsections (not "missing dictionary entry" or "explicit empty object"): using nullability on
+/// strongly-typed properties keeps the binder honest — MEC populates a property iff the JSON section is present, and
+/// a consumer can ask theme.Button is null without reflecting over a generic bag. A "missing entry in
+/// dictionary" alternative would force a stringly-typed lookup; an "explicit empty object" alternative would make
+/// "I appear in JSON but override nothing" indistinguishable from "I appear in JSON to override defaults to their
+/// own values" — both ambiguities are avoided by nullability.
+///
+///
+/// This type is the bind target for the Themes section of config.json after the Phase D rewrite. No
+/// production code consumes it yet; the consumer (a rewired MecThemeManager reading via
+/// IOptionsMonitor<ThemeSettings>) lands in a subsequent commit. This type ships with binding tests
+/// only; reviewers can object to specific subsections without reading manager code that does not yet exist.
+///
+///
+public class ThemeDefinition
+{
+ ///
+ /// Gets or sets the dictionary of named s contributed by this theme.
+ /// means the theme contributes no schemes.
+ ///
+ public Dictionary? Schemes { get; set; }
+
+ /// Per-theme override for . = no override.
+ public ButtonSettings? Button { get; set; }
+
+ /// Per-theme override for . = no override.
+ public CheckBoxSettings? CheckBox { get; set; }
+
+ /// Per-theme override for . = no override.
+ public CharMapSettings? CharMap { get; set; }
+
+ /// Per-theme override for . = no override.
+ public DialogSettings? Dialog { get; set; }
+
+ /// Per-theme override for . = no override.
+ public FrameViewSettings? FrameView { get; set; }
+
+ /// Per-theme override for . = no override.
+ public HexViewSettings? HexView { get; set; }
+
+ /// Per-theme override for . = no override.
+ public LinearRangeSettings? LinearRange { get; set; }
+
+ /// Per-theme override for . = no override.
+ public MenuBarSettings? MenuBar { get; set; }
+
+ /// Per-theme override for . = no override.
+ public MenuSettings? Menu { get; set; }
+
+ /// Per-theme override for . = no override.
+ public MessageBoxSettings? MessageBox { get; set; }
+
+ /// Per-theme override for . = no override.
+ public NerdFontsSettings? NerdFonts { get; set; }
+
+ /// Per-theme override for . = no override.
+ public PopoverMenuSettings? PopoverMenu { get; set; }
+
+ /// Per-theme override for . = no override.
+ public SelectorBaseSettings? SelectorBase { get; set; }
+
+ /// Per-theme override for . = no override.
+ public StatusBarSettings? StatusBar { get; set; }
+
+ /// Per-theme override for . = no override.
+ public TextFieldSettings? TextField { get; set; }
+
+ /// Per-theme override for . = no override.
+ public TextViewSettings? TextView { get; set; }
+
+ /// Per-theme override for . = no override.
+ public WindowSettings? Window { get; set; }
+
+ ///
+ /// Per-theme override for . = no override.
+ /// Section name in JSON is Glyphs (matching ).
+ ///
+ public GlyphSettings? Glyphs { get; set; }
+}
diff --git a/Terminal.Gui/Configuration/Settings/TuiConfigurationBuilder.cs b/Terminal.Gui/Configuration/Settings/TuiConfigurationBuilder.cs
index 831b5e3d9d..6e1c1a7297 100644
--- a/Terminal.Gui/Configuration/Settings/TuiConfigurationBuilder.cs
+++ b/Terminal.Gui/Configuration/Settings/TuiConfigurationBuilder.cs
@@ -123,25 +123,27 @@ public void ApplyToStaticFacades ()
BindSection (config, "Key", s => KeySettings.Defaults = s);
BindSection (config, "Trace", s => TraceSettings.Defaults = s);
- // ThemeScope POCOs
- BindSection (config, "Button", s => ButtonSettings.Defaults = s);
- BindSection (config, "CheckBox", s => CheckBoxSettings.Defaults = s);
- BindSection (config, "CharMap", s => CharMapSettings.Defaults = s);
- BindSection (config, "Dialog", s => DialogSettings.Defaults = s);
- BindSection (config, "FrameView", s => FrameViewSettings.Defaults = s);
- BindSection (config, "HexView", s => HexViewSettings.Defaults = s);
- BindSection (config, "LinearRange", s => LinearRangeSettings.Defaults = s);
- BindSection (config, "MenuBar", s => MenuBarSettings.Defaults = s);
- BindSection (config, "Menu", s => MenuSettings.Defaults = s);
- BindSection (config, "MessageBox", s => MessageBoxSettings.Defaults = s);
- BindSection (config, "NerdFonts", s => NerdFontsSettings.Defaults = s);
- BindSection (config, "PopoverMenu", s => PopoverMenuSettings.Defaults = s);
- BindSection (config, "SelectorBase", s => SelectorBaseSettings.Defaults = s);
- BindSection (config, "StatusBar", s => StatusBarSettings.Defaults = s);
- BindSection (config, "TextField", s => TextFieldSettings.Defaults = s);
- BindSection (config, "TextView", s => TextViewSettings.Defaults = s);
- BindSection (config, "Window", s => WindowSettings.Defaults = s);
- BindSection (config, "Glyphs", s => GlyphSettings.Defaults = s);
+ // ThemeScope POCOs: two-pass overlay (root section + Themes::) writes Current.
+ // TODO(A2): when ThemeSettings converts to record + Current, this becomes an immutable snapshot.
+ string activeTheme = ThemeSettings.Defaults.Theme;
+ BindThemeScope (config, "Button", activeTheme, s => ButtonSettings.Current = s);
+ BindThemeScope (config, "CheckBox", activeTheme, s => CheckBoxSettings.Current = s);
+ BindThemeScope (config, "CharMap", activeTheme, s => CharMapSettings.Current = s);
+ BindThemeScope (config, "Dialog", activeTheme, s => DialogSettings.Current = s);
+ BindThemeScope (config, "FrameView", activeTheme, s => FrameViewSettings.Current = s);
+ BindThemeScope (config, "HexView", activeTheme, s => HexViewSettings.Current = s);
+ BindThemeScope (config, "LinearRange", activeTheme, s => LinearRangeSettings.Current = s);
+ BindThemeScope (config, "MenuBar", activeTheme, s => MenuBarSettings.Current = s);
+ BindThemeScope (config, "Menu", activeTheme, s => MenuSettings.Current = s);
+ BindThemeScope (config, "MessageBox", activeTheme, s => MessageBoxSettings.Current = s);
+ BindThemeScope (config, "NerdFonts", activeTheme, s => NerdFontsSettings.Current = s);
+ BindThemeScope (config, "PopoverMenu", activeTheme, s => PopoverMenuSettings.Current = s);
+ BindThemeScope (config, "SelectorBase", activeTheme, s => SelectorBaseSettings.Current = s);
+ BindThemeScope (config, "StatusBar", activeTheme, s => StatusBarSettings.Current = s);
+ BindThemeScope (config, "TextField", activeTheme, s => TextFieldSettings.Current = s);
+ BindThemeScope (config, "TextView", activeTheme, s => TextViewSettings.Current = s);
+ BindThemeScope (config, "Window", activeTheme, s => WindowSettings.Current = s);
+ BindThemeScope (config, "Glyphs", activeTheme, s => GlyphSettings.Current = s);
}
///
@@ -171,4 +173,19 @@ public void ApplyToStaticFacades ()
config.GetSection (sectionName).Bind (settings);
apply (settings);
}
+
+ ///
+ /// Two-pass overlay bind for ThemeScope POCOs. Binds the root section, then overlays
+ /// Themes::. Properties not present in the
+ /// overlay JSON retain the root value (property-level merge — matches legacy CM Scope.Apply semantics).
+ ///
+ [UnconditionalSuppressMessage ("Trimming", "IL2026", Justification = "Settings POCOs are simple types preserved by DynamicDependency in ConfigPropertyHostTypes.")]
+ [UnconditionalSuppressMessage ("AOT", "IL3050", Justification = "Settings POCOs are simple types; no generic instantiation needed at runtime.")]
+ private static void BindThemeScope (IConfiguration config, string sectionName, string activeTheme, Action apply) where T : new ()
+ {
+ T settings = new ();
+ config.GetSection (sectionName).Bind (settings);
+ config.GetSection ($"Themes:{activeTheme}:{sectionName}").Bind (settings);
+ apply (settings);
+ }
}
diff --git a/Terminal.Gui/Configuration/Settings/WindowSettings.cs b/Terminal.Gui/Configuration/Settings/WindowSettings.cs
index 13ace188ff..4a424290f7 100644
--- a/Terminal.Gui/Configuration/Settings/WindowSettings.cs
+++ b/Terminal.Gui/Configuration/Settings/WindowSettings.cs
@@ -1,19 +1,25 @@
namespace Terminal.Gui.Configuration;
///
-/// Settings POCO for visual defaults (ThemeScope).
+/// Immutable settings record for visual defaults (ThemeScope).
///
-public class WindowSettings
+public sealed record WindowSettings
{
- /// Gets or sets the default shadow style for windows.
- public ShadowStyles DefaultShadow { get; set; } = ShadowStyles.None;
+ /// Gets the default shadow style for windows.
+ public ShadowStyles DefaultShadow { get; init; } = ShadowStyles.None;
- /// Gets or sets the default border style for windows.
- public LineStyle DefaultBorderStyle { get; set; } = LineStyle.Single;
+ /// Gets the default border style for windows.
+ public LineStyle DefaultBorderStyle { get; init; } = LineStyle.Single;
- ///
- /// The static facade instance. Always contains the current effective values.
- /// Updated by the MEC binding at initialization.
- ///
- public static WindowSettings Defaults { get; set; } = new ();
+ /// The compile-time-known defaults.
+ public static WindowSettings Default { get; } = new ();
+
+ /// The currently effective values, updated atomically by .
+ public static WindowSettings Current
+ {
+ get => Volatile.Read (ref _current);
+ internal set => Volatile.Write (ref _current, value);
+ }
+
+ private static WindowSettings _current = Default;
}
diff --git a/Terminal.Gui/Configuration/SourceGenerationContext.cs b/Terminal.Gui/Configuration/SourceGenerationContext.cs
index 800dc4dad7..d7e734b420 100644
--- a/Terminal.Gui/Configuration/SourceGenerationContext.cs
+++ b/Terminal.Gui/Configuration/SourceGenerationContext.cs
@@ -23,7 +23,6 @@ namespace Terminal.Gui.Configuration;
[JsonSerializable (typeof (Color))]
[JsonSerializable (typeof (Key))]
[JsonSerializable (typeof (Key []))]
-[JsonSerializable (typeof (Glyphs))]
[JsonSerializable (typeof (Alignment))]
[JsonSerializable (typeof (AlignmentModes))]
[JsonSerializable (typeof (LineStyle))]
@@ -48,6 +47,8 @@ namespace Terminal.Gui.Configuration;
[JsonSerializable (typeof (ConcurrentDictionary))]
[JsonSerializable (typeof (Scheme))]
[JsonSerializable (typeof (Dictionary))]
+[JsonSerializable (typeof (ThemeDefinition))]
+[JsonSerializable (typeof (Dictionary))]
[JsonSerializable (typeof (TraceCategory))]
[JsonSerializable (typeof (SizeDetectionMode))]
diff --git a/Terminal.Gui/Drawing/Glyphs.cs b/Terminal.Gui/Drawing/Glyphs.cs
index d39e7fde09..4f39bf7178 100644
--- a/Terminal.Gui/Drawing/Glyphs.cs
+++ b/Terminal.Gui/Drawing/Glyphs.cs
@@ -21,723 +21,259 @@ namespace Terminal.Gui.Drawing;
///
public class Glyphs
{
- // IMPORTANT: If you change these, make sure to update the ./Resources/config.json file as
- // IMPORTANT: it is the source of truth for the default glyphs at runtime.
- // IMPORTANT: Configuration Manager test SaveDefaults uses this class to generate the default config file
- // IMPORTANT: in ./UnitTests/bin/Debug/netX.0/config.json
+ // The default glyph values live on the GlyphSettings record's `init` defaults.
+ // Resources/config.json is the source of truth for the runtime glyphs; the embedded
+ // config is loaded and applied via TuiConfigurationBuilder.ApplyToStaticFacades, with
+ // theme overlays composed under "Themes::Glyphs".
/// Unicode replacement character; used by Drivers when rendering in cases where a wide glyph can't
/// be output because it would be clipped. Defaults to ' ' (Space).
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune WideGlyphReplacement
- {
- get => GlyphSettings.Defaults.WideGlyphReplacement;
- set => GlyphSettings.Defaults.WideGlyphReplacement = value;
- }
+ public static Rune WideGlyphReplacement => GlyphSettings.Current.WideGlyphReplacement;
/// File icon. Defaults to ☰ (Trigram For Heaven)
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune File
- {
- get => GlyphSettings.Defaults.File;
- set => GlyphSettings.Defaults.File = value;
- }
+ public static Rune File => GlyphSettings.Current.File;
/// Folder icon. Defaults to ꤉ (Kayah Li Digit Nine)
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Folder
- {
- get => GlyphSettings.Defaults.Folder;
- set => GlyphSettings.Defaults.Folder = value;
- }
+ public static Rune Folder => GlyphSettings.Current.Folder;
/// Horizontal Ellipsis - … U+2026
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HorizontalEllipsis
- {
- get => GlyphSettings.Defaults.HorizontalEllipsis;
- set => GlyphSettings.Defaults.HorizontalEllipsis = value;
- }
+ public static Rune HorizontalEllipsis => GlyphSettings.Current.HorizontalEllipsis;
/// Vertical Four Dots - âž U+205e
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VerticalFourDots
- {
- get => GlyphSettings.Defaults.VerticalFourDots;
- set => GlyphSettings.Defaults.VerticalFourDots = value;
- }
+ public static Rune VerticalFourDots => GlyphSettings.Current.VerticalFourDots;
#region ----------------- Single Glyphs -----------------
/// Null symbol ('â€')
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Null
- {
- get => GlyphSettings.Defaults.Null;
- set => GlyphSettings.Defaults.Null = value;
- }
+ public static Rune Null => GlyphSettings.Current.Null;
/// Checked indicator (e.g. for and ).
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CheckStateChecked
- {
- get => GlyphSettings.Defaults.CheckStateChecked;
- set => GlyphSettings.Defaults.CheckStateChecked = value;
- }
+ public static Rune CheckStateChecked => GlyphSettings.Current.CheckStateChecked;
/// Not Checked indicator (e.g. for and ).
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CheckStateUnChecked
- {
- get => GlyphSettings.Defaults.CheckStateUnChecked;
- set => GlyphSettings.Defaults.CheckStateUnChecked = value;
- }
+ public static Rune CheckStateUnChecked => GlyphSettings.Current.CheckStateUnChecked;
/// Null Checked indicator (e.g. for and ).
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CheckStateNone
- {
- get => GlyphSettings.Defaults.CheckStateNone;
- set => GlyphSettings.Defaults.CheckStateNone = value;
- }
+ public static Rune CheckStateNone => GlyphSettings.Current.CheckStateNone;
/// Selected indicator (e.g. for and ).
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Selected
- {
- get => GlyphSettings.Defaults.Selected;
- set => GlyphSettings.Defaults.Selected = value;
- }
+ public static Rune Selected => GlyphSettings.Current.Selected;
/// Not Selected indicator (e.g. for and ).
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune UnSelected
- {
- get => GlyphSettings.Defaults.UnSelected;
- set => GlyphSettings.Defaults.UnSelected = value;
- }
+ public static Rune UnSelected => GlyphSettings.Current.UnSelected;
/// Horizontal arrow.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightArrow
- {
- get => GlyphSettings.Defaults.RightArrow;
- set => GlyphSettings.Defaults.RightArrow = value;
- }
+ public static Rune RightArrow => GlyphSettings.Current.RightArrow;
/// Left arrow.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftArrow
- {
- get => GlyphSettings.Defaults.LeftArrow;
- set => GlyphSettings.Defaults.LeftArrow = value;
- }
+ public static Rune LeftArrow => GlyphSettings.Current.LeftArrow;
/// Down arrow.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune DownArrow
- {
- get => GlyphSettings.Defaults.DownArrow;
- set => GlyphSettings.Defaults.DownArrow = value;
- }
+ public static Rune DownArrow => GlyphSettings.Current.DownArrow;
/// Vertical arrow.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune UpArrow
- {
- get => GlyphSettings.Defaults.UpArrow;
- set => GlyphSettings.Defaults.UpArrow = value;
- }
+ public static Rune UpArrow => GlyphSettings.Current.UpArrow;
/// Left default indicator (e.g. for .
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftDefaultIndicator
- {
- get => GlyphSettings.Defaults.LeftDefaultIndicator;
- set => GlyphSettings.Defaults.LeftDefaultIndicator = value;
- }
+ public static Rune LeftDefaultIndicator => GlyphSettings.Current.LeftDefaultIndicator;
/// Horizontal default indicator (e.g. for .
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightDefaultIndicator
- {
- get => GlyphSettings.Defaults.RightDefaultIndicator;
- set => GlyphSettings.Defaults.RightDefaultIndicator = value;
- }
+ public static Rune RightDefaultIndicator => GlyphSettings.Current.RightDefaultIndicator;
/// Left Bracket (e.g. for . Default is (U+005B) - [.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftBracket
- {
- get => GlyphSettings.Defaults.LeftBracket;
- set => GlyphSettings.Defaults.LeftBracket = value;
- }
+ public static Rune LeftBracket => GlyphSettings.Current.LeftBracket;
/// Horizontal Bracket (e.g. for . Default is (U+005D) - ].
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightBracket
- {
- get => GlyphSettings.Defaults.RightBracket;
- set => GlyphSettings.Defaults.RightBracket = value;
- }
+ public static Rune RightBracket => GlyphSettings.Current.RightBracket;
/// Half block meter segment (e.g. for ).
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BlocksMeterSegment
- {
- get => GlyphSettings.Defaults.BlocksMeterSegment;
- set => GlyphSettings.Defaults.BlocksMeterSegment = value;
- }
+ public static Rune BlocksMeterSegment => GlyphSettings.Current.BlocksMeterSegment;
/// Continuous block meter segment (e.g. for ).
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ContinuousMeterSegment
- {
- get => GlyphSettings.Defaults.ContinuousMeterSegment;
- set => GlyphSettings.Defaults.ContinuousMeterSegment = value;
- }
+ public static Rune ContinuousMeterSegment => GlyphSettings.Current.ContinuousMeterSegment;
/// Stipple pattern (e.g. for ). Default is Light Shade (U+2591) - â–‘.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Stipple
- {
- get => GlyphSettings.Defaults.Stipple;
- set => GlyphSettings.Defaults.Stipple = value;
- }
+ public static Rune Stipple => GlyphSettings.Current.Stipple;
/// Diamond. Default is Lozenge (U+25CA) - â—Š.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Diamond
- {
- get => GlyphSettings.Defaults.Diamond;
- set => GlyphSettings.Defaults.Diamond = value;
- }
+ public static Rune Diamond => GlyphSettings.Current.Diamond;
/// Close. Default is Heavy Ballot X (U+2718) - ✘.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Close
- {
- get => GlyphSettings.Defaults.Close;
- set => GlyphSettings.Defaults.Close = value;
- }
+ public static Rune Close => GlyphSettings.Current.Close;
/// Minimize. Default is Lower Horizontal Shadowed White Circle (U+274F) - â.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Minimize
- {
- get => GlyphSettings.Defaults.Minimize;
- set => GlyphSettings.Defaults.Minimize = value;
- }
+ public static Rune Minimize => GlyphSettings.Current.Minimize;
/// Maximize. Default is Upper Horizontal Shadowed White Circle (U+273D) - ✽.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Maximize
- {
- get => GlyphSettings.Defaults.Maximize;
- set => GlyphSettings.Defaults.Maximize = value;
- }
+ public static Rune Maximize => GlyphSettings.Current.Maximize;
/// Dot. Default is (U+2219) - ∙.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Dot
- {
- get => GlyphSettings.Defaults.Dot;
- set => GlyphSettings.Defaults.Dot = value;
- }
+ public static Rune Dot => GlyphSettings.Current.Dot;
/// Dotted Square - ⬚ U+02b1aâ”
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune DottedSquare
- {
- get => GlyphSettings.Defaults.DottedSquare;
- set => GlyphSettings.Defaults.DottedSquare = value;
- }
+ public static Rune DottedSquare => GlyphSettings.Current.DottedSquare;
/// Black Circle . Default is (U+025cf) - â—.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BlackCircle // Black Circle - â— U+025cf
- {
- get => GlyphSettings.Defaults.BlackCircle;
- set => GlyphSettings.Defaults.BlackCircle = value;
- }
+ public static Rune BlackCircle => GlyphSettings.Current.BlackCircle;
/// Expand (e.g. for .
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Expand
- {
- get => GlyphSettings.Defaults.Expand;
- set => GlyphSettings.Defaults.Expand = value;
- }
+ public static Rune Expand => GlyphSettings.Current.Expand;
/// Expand (e.g. for .
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Collapse
- {
- get => GlyphSettings.Defaults.Collapse;
- set => GlyphSettings.Defaults.Collapse = value;
- }
+ public static Rune Collapse => GlyphSettings.Current.Collapse;
/// Identical To (U+226)
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune IdenticalTo
- {
- get => GlyphSettings.Defaults.IdenticalTo;
- set => GlyphSettings.Defaults.IdenticalTo = value;
- }
+ public static Rune IdenticalTo => GlyphSettings.Current.IdenticalTo;
/// Move indicator. Default is Lozenge (U+25CA) - â—Š.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Move
- {
- get => GlyphSettings.Defaults.Move;
- set => GlyphSettings.Defaults.Move = value;
- }
+ public static Rune Move => GlyphSettings.Current.Move;
/// Size Horizontally indicator. Default is ┥Left Right Arrow - ↔ U+02194
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune SizeHorizontal
- {
- get => GlyphSettings.Defaults.SizeHorizontal;
- set => GlyphSettings.Defaults.SizeHorizontal = value;
- }
+ public static Rune SizeHorizontal => GlyphSettings.Current.SizeHorizontal;
/// Size Vertical indicator. Default Up Down Arrow - ↕ U+02195
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune SizeVertical
- {
- get => GlyphSettings.Defaults.SizeVertical;
- set => GlyphSettings.Defaults.SizeVertical = value;
- }
+ public static Rune SizeVertical => GlyphSettings.Current.SizeVertical;
/// Size Top Left indicator. North West Arrow - ↖ U+02196
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune SizeTopLeft
- {
- get => GlyphSettings.Defaults.SizeTopLeft;
- set => GlyphSettings.Defaults.SizeTopLeft = value;
- }
+ public static Rune SizeTopLeft => GlyphSettings.Current.SizeTopLeft;
/// Size Top Right indicator. North East Arrow - ↗ U+02197
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune SizeTopRight
- {
- get => GlyphSettings.Defaults.SizeTopRight;
- set => GlyphSettings.Defaults.SizeTopRight = value;
- }
+ public static Rune SizeTopRight => GlyphSettings.Current.SizeTopRight;
/// Size Bottom Right indicator. South East Arrow - ↘ U+02198
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune SizeBottomRight
- {
- get => GlyphSettings.Defaults.SizeBottomRight;
- set => GlyphSettings.Defaults.SizeBottomRight = value;
- }
+ public static Rune SizeBottomRight => GlyphSettings.Current.SizeBottomRight;
/// Size Bottom Left indicator. South West Arrow - ↙ U+02199
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune SizeBottomLeft
- {
- get => GlyphSettings.Defaults.SizeBottomLeft;
- set => GlyphSettings.Defaults.SizeBottomLeft = value;
- }
+ public static Rune SizeBottomLeft => GlyphSettings.Current.SizeBottomLeft;
/// Apple (non-BMP). Because snek. And because it's an example of a non-BMP surrogate pair. See Issue #2610.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Apple // nonBMP
- {
- get => GlyphSettings.Defaults.Apple;
- set => GlyphSettings.Defaults.Apple = value;
- }
+ public static Rune Apple => GlyphSettings.Current.Apple;
/// Apple (BMP). Because snek. See Issue #2610.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune AppleBMP
- {
- get => GlyphSettings.Defaults.AppleBMP;
- set => GlyphSettings.Defaults.AppleBMP = value;
- }
+ public static Rune AppleBMP => GlyphSettings.Current.AppleBMP;
/// Copy indicator. Two Joined Squares - ⧉ U+29C9. Used for code block copy buttons.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Copy
- {
- get => GlyphSettings.Defaults.Copy;
- set => GlyphSettings.Defaults.Copy = value;
- }
+ public static Rune Copy => GlyphSettings.Current.Copy;
#endregion
#region ----------------- Lines -----------------
/// Box Drawings Horizontal Line - Light (U+2500) - ─
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLine
- {
- get => GlyphSettings.Defaults.HLine;
- set => GlyphSettings.Defaults.HLine = value;
- }
+ public static Rune HLine => GlyphSettings.Current.HLine;
/// Box Drawings Vertical Line - Light (U+2502) - │
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLine
- {
- get => GlyphSettings.Defaults.VLine;
- set => GlyphSettings.Defaults.VLine = value;
- }
+ public static Rune VLine => GlyphSettings.Current.VLine;
/// Box Drawings Double Horizontal (U+2550) - â•
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLineDbl
- {
- get => GlyphSettings.Defaults.HLineDbl;
- set => GlyphSettings.Defaults.HLineDbl = value;
- }
+ public static Rune HLineDbl => GlyphSettings.Current.HLineDbl;
/// Box Drawings Double Vertical (U+2551) - â•‘
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLineDbl
-
- {
-
- get => GlyphSettings.Defaults.VLineDbl;
-
- set => GlyphSettings.Defaults.VLineDbl = value;
-
- }
+ public static Rune VLineDbl => GlyphSettings.Current.VLineDbl;
/// Box Drawings Heavy Double Dash Horizontal (U+254D) - â•
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLineHvDa2
-
- {
-
- get => GlyphSettings.Defaults.HLineHvDa2;
-
- set => GlyphSettings.Defaults.HLineHvDa2 = value;
-
- }
+ public static Rune HLineHvDa2 => GlyphSettings.Current.HLineHvDa2;
/// Box Drawings Heavy Triple Dash Vertical (U+2507) - ┇
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLineHvDa3
- {
- get => GlyphSettings.Defaults.VLineHvDa3;
- set => GlyphSettings.Defaults.VLineHvDa3 = value;
- }
+ public static Rune VLineHvDa3 => GlyphSettings.Current.VLineHvDa3;
/// Box Drawings Heavy Triple Dash Horizontal (U+2505) - â”…
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLineHvDa3
-
- {
-
- get => GlyphSettings.Defaults.HLineHvDa3;
-
- set => GlyphSettings.Defaults.HLineHvDa3 = value;
-
- }
+ public static Rune HLineHvDa3 => GlyphSettings.Current.HLineHvDa3;
/// Box Drawings Heavy Quadruple Dash Horizontal (U+2509) - ┉
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLineHvDa4
-
- {
-
- get => GlyphSettings.Defaults.HLineHvDa4;
-
- set => GlyphSettings.Defaults.HLineHvDa4 = value;
-
- }
+ public static Rune HLineHvDa4 => GlyphSettings.Current.HLineHvDa4;
/// Box Drawings Heavy Double Dash Vertical (U+254F) - â•
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLineHvDa2
-
- {
-
- get => GlyphSettings.Defaults.VLineHvDa2;
-
- set => GlyphSettings.Defaults.VLineHvDa2 = value;
-
- }
+ public static Rune VLineHvDa2 => GlyphSettings.Current.VLineHvDa2;
/// Box Drawings Heavy Quadruple Dash Vertical (U+250B) - ┋
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLineHvDa4
-
- {
-
- get => GlyphSettings.Defaults.VLineHvDa4;
-
- set => GlyphSettings.Defaults.VLineHvDa4 = value;
-
- }
+ public static Rune VLineHvDa4 => GlyphSettings.Current.VLineHvDa4;
/// Box Drawings Light Double Dash Horizontal (U+254C) - ╌
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLineDa2
-
- {
-
- get => GlyphSettings.Defaults.HLineDa2;
-
- set => GlyphSettings.Defaults.HLineDa2 = value;
-
- }
+ public static Rune HLineDa2 => GlyphSettings.Current.HLineDa2;
/// Box Drawings Light Triple Dash Vertical (U+2506) - ┆
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLineDa3
-
- {
-
- get => GlyphSettings.Defaults.VLineDa3;
-
- set => GlyphSettings.Defaults.VLineDa3 = value;
-
- }
+ public static Rune VLineDa3 => GlyphSettings.Current.VLineDa3;
/// Box Drawings Light Triple Dash Horizontal (U+2504) - ┄
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLineDa3
-
- {
-
- get => GlyphSettings.Defaults.HLineDa3;
-
- set => GlyphSettings.Defaults.HLineDa3 = value;
-
- }
+ public static Rune HLineDa3 => GlyphSettings.Current.HLineDa3;
/// Box Drawings Light Quadruple Dash Horizontal (U+2508) - ┈
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLineDa4
-
- {
-
- get => GlyphSettings.Defaults.HLineDa4;
-
- set => GlyphSettings.Defaults.HLineDa4 = value;
-
- }
+ public static Rune HLineDa4 => GlyphSettings.Current.HLineDa4;
/// Box Drawings Light Double Dash Vertical (U+254E) - ╎
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLineDa2
-
- {
-
- get => GlyphSettings.Defaults.VLineDa2;
-
- set => GlyphSettings.Defaults.VLineDa2 = value;
-
- }
+ public static Rune VLineDa2 => GlyphSettings.Current.VLineDa2;
/// Box Drawings Light Quadruple Dash Vertical (U+250A) - ┊
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLineDa4
-
- {
-
- get => GlyphSettings.Defaults.VLineDa4;
-
- set => GlyphSettings.Defaults.VLineDa4 = value;
-
- }
+ public static Rune VLineDa4 => GlyphSettings.Current.VLineDa4;
/// Box Drawings Heavy Horizontal (U+2501) - â”
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HLineHv
-
- {
-
- get => GlyphSettings.Defaults.HLineHv;
-
- set => GlyphSettings.Defaults.HLineHv = value;
-
- }
+ public static Rune HLineHv => GlyphSettings.Current.HLineHv;
/// Box Drawings Heavy Vertical (U+2503) - ┃
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune VLineHv
-
- {
-
- get => GlyphSettings.Defaults.VLineHv;
-
- set => GlyphSettings.Defaults.VLineHv = value;
-
- }
+ public static Rune VLineHv => GlyphSettings.Current.VLineHv;
/// Box Drawings Light Left (U+2574) - â•´
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HalfLeftLine
-
- {
-
- get => GlyphSettings.Defaults.HalfLeftLine;
-
- set => GlyphSettings.Defaults.HalfLeftLine = value;
-
- }
+ public static Rune HalfLeftLine => GlyphSettings.Current.HalfLeftLine;
/// Box Drawings Light Vertical (U+2575) - ╵
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HalfTopLine
-
- {
-
- get => GlyphSettings.Defaults.HalfTopLine;
-
- set => GlyphSettings.Defaults.HalfTopLine = value;
-
- }
+ public static Rune HalfTopLine => GlyphSettings.Current.HalfTopLine;
/// Box Drawings Light Horizontal (U+2576) - â•¶
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HalfRightLine
-
- {
-
- get => GlyphSettings.Defaults.HalfRightLine;
-
- set => GlyphSettings.Defaults.HalfRightLine = value;
-
- }
+ public static Rune HalfRightLine => GlyphSettings.Current.HalfRightLine;
/// Box Drawings Light Down (U+2577) - â•·
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HalfBottomLine
-
- {
-
- get => GlyphSettings.Defaults.HalfBottomLine;
-
- set => GlyphSettings.Defaults.HalfBottomLine = value;
-
- }
+ public static Rune HalfBottomLine => GlyphSettings.Current.HalfBottomLine;
/// Box Drawings Heavy Left (U+2578) - ╸
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HalfLeftLineHv
-
- {
-
- get => GlyphSettings.Defaults.HalfLeftLineHv;
-
- set => GlyphSettings.Defaults.HalfLeftLineHv = value;
-
- }
+ public static Rune HalfLeftLineHv => GlyphSettings.Current.HalfLeftLineHv;
/// Box Drawings Heavy Vertical (U+2579) - ╹
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HalfTopLineHv
-
- {
-
- get => GlyphSettings.Defaults.HalfTopLineHv;
-
- set => GlyphSettings.Defaults.HalfTopLineHv = value;
-
- }
+ public static Rune HalfTopLineHv => GlyphSettings.Current.HalfTopLineHv;
/// Box Drawings Heavy Horizontal (U+257A) - ╺
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HalfRightLineHv
-
- {
-
- get => GlyphSettings.Defaults.HalfRightLineHv;
-
- set => GlyphSettings.Defaults.HalfRightLineHv = value;
-
- }
+ public static Rune HalfRightLineHv => GlyphSettings.Current.HalfRightLineHv;
/// Box Drawings Light Vertical and Horizontal (U+257B) - â•»
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune HalfBottomLineLt
-
- {
-
- get => GlyphSettings.Defaults.HalfBottomLineLt;
-
- set => GlyphSettings.Defaults.HalfBottomLineLt = value;
-
- }
+ public static Rune HalfBottomLineLt => GlyphSettings.Current.HalfBottomLineLt;
/// Box Drawings Light Horizontal and Heavy Horizontal (U+257C) - ╼
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightSideLineLtHv
-
- {
-
- get => GlyphSettings.Defaults.RightSideLineLtHv;
-
- set => GlyphSettings.Defaults.RightSideLineLtHv = value;
-
- }
+ public static Rune RightSideLineLtHv => GlyphSettings.Current.RightSideLineLtHv;
/// Box Drawings Light Vertical and Heavy Horizontal (U+257D) - ╽
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BottomSideLineLtHv
-
- {
-
- get => GlyphSettings.Defaults.BottomSideLineLtHv;
-
- set => GlyphSettings.Defaults.BottomSideLineLtHv = value;
-
- }
+ public static Rune BottomSideLineLtHv => GlyphSettings.Current.BottomSideLineLtHv;
/// Box Drawings Heavy Left and Light Horizontal (U+257E) - ╾
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftSideLineHvLt
-
- {
-
- get => GlyphSettings.Defaults.LeftSideLineHvLt;
-
- set => GlyphSettings.Defaults.LeftSideLineHvLt = value;
-
- }
+ public static Rune LeftSideLineHvLt => GlyphSettings.Current.LeftSideLineHvLt;
/// Box Drawings Heavy Vertical and Light Horizontal (U+257F) - â•¿
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune TopSideLineHvLt
-
- {
-
- get => GlyphSettings.Defaults.TopSideLineHvLt;
-
- set => GlyphSettings.Defaults.TopSideLineHvLt = value;
-
- }
+ public static Rune TopSideLineHvLt => GlyphSettings.Current.TopSideLineHvLt;
#endregion
@@ -745,107 +281,35 @@ public static Rune TopSideLineHvLt
/// Box Drawings Upper Left Corner - Light Vertical and Light Horizontal (U+250C) - ┌
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ULCorner
-
- {
-
- get => GlyphSettings.Defaults.ULCorner;
-
- set => GlyphSettings.Defaults.ULCorner = value;
-
- }
+ public static Rune ULCorner => GlyphSettings.Current.ULCorner;
/// Box Drawings Upper Left Corner - Double (U+2554) - â•”
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ULCornerDbl
-
- {
-
- get => GlyphSettings.Defaults.ULCornerDbl;
-
- set => GlyphSettings.Defaults.ULCornerDbl = value;
-
- }
+ public static Rune ULCornerDbl => GlyphSettings.Current.ULCornerDbl;
/// Box Drawings Upper Left Corner - Light Arc Down and Horizontal (U+256D) - â•
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ULCornerR
-
- {
-
- get => GlyphSettings.Defaults.ULCornerR;
-
- set => GlyphSettings.Defaults.ULCornerR = value;
-
- }
+ public static Rune ULCornerR => GlyphSettings.Current.ULCornerR;
/// Box Drawings Heavy Down and Horizontal (U+250F) - â”
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ULCornerHv
-
- {
-
- get => GlyphSettings.Defaults.ULCornerHv;
-
- set => GlyphSettings.Defaults.ULCornerHv = value;
-
- }
+ public static Rune ULCornerHv => GlyphSettings.Current.ULCornerHv;
/// Box Drawings Down Heavy and Horizontal Light (U+251E) - ┎
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ULCornerHvLt
-
- {
-
- get => GlyphSettings.Defaults.ULCornerHvLt;
-
- set => GlyphSettings.Defaults.ULCornerHvLt = value;
-
- }
+ public static Rune ULCornerHvLt => GlyphSettings.Current.ULCornerHvLt;
/// Box Drawings Down Light and Horizontal Heavy (U+250D) - ┎
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ULCornerLtHv
-
- {
-
- get => GlyphSettings.Defaults.ULCornerLtHv;
-
- set => GlyphSettings.Defaults.ULCornerLtHv = value;
-
- }
+ public static Rune ULCornerLtHv => GlyphSettings.Current.ULCornerLtHv;
/// Box Drawings Double Down and Single Horizontal (U+2553) - â•“
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ULCornerDblSingle
-
- {
-
- get => GlyphSettings.Defaults.ULCornerDblSingle;
-
- set => GlyphSettings.Defaults.ULCornerDblSingle = value;
-
- }
+ public static Rune ULCornerDblSingle => GlyphSettings.Current.ULCornerDblSingle;
/// Box Drawings Single Down and Double Horizontal (U+2552) - â•’
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ULCornerSingleDbl
-
- {
-
- get => GlyphSettings.Defaults.ULCornerSingleDbl;
-
- set => GlyphSettings.Defaults.ULCornerSingleDbl = value;
-
- }
+ public static Rune ULCornerSingleDbl => GlyphSettings.Current.ULCornerSingleDbl;
#endregion
@@ -853,107 +317,35 @@ public static Rune ULCornerSingleDbl
/// Box Drawings Lower Left Corner - Light Vertical and Light Horizontal (U+2514) - â””
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LLCorner
-
- {
-
- get => GlyphSettings.Defaults.LLCorner;
-
- set => GlyphSettings.Defaults.LLCorner = value;
-
- }
+ public static Rune LLCorner => GlyphSettings.Current.LLCorner;
/// Box Drawings Heavy Vertical and Horizontal (U+2517) - â”—
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LLCornerHv
-
- {
-
- get => GlyphSettings.Defaults.LLCornerHv;
-
- set => GlyphSettings.Defaults.LLCornerHv = value;
-
- }
+ public static Rune LLCornerHv => GlyphSettings.Current.LLCornerHv;
/// Box Drawings Heavy Vertical and Horizontal Light (U+2516) - â”–
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LLCornerHvLt
-
- {
-
- get => GlyphSettings.Defaults.LLCornerHvLt;
-
- set => GlyphSettings.Defaults.LLCornerHvLt = value;
-
- }
+ public static Rune LLCornerHvLt => GlyphSettings.Current.LLCornerHvLt;
/// Box Drawings Vertical Light and Horizontal Heavy (U+2511) - ┕
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LLCornerLtHv
-
- {
-
- get => GlyphSettings.Defaults.LLCornerLtHv;
-
- set => GlyphSettings.Defaults.LLCornerLtHv = value;
-
- }
+ public static Rune LLCornerLtHv => GlyphSettings.Current.LLCornerLtHv;
/// Box Drawings Double Vertical and Double Left (U+255A) - ╚
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LLCornerDbl
-
- {
-
- get => GlyphSettings.Defaults.LLCornerDbl;
-
- set => GlyphSettings.Defaults.LLCornerDbl = value;
-
- }
+ public static Rune LLCornerDbl => GlyphSettings.Current.LLCornerDbl;
/// Box Drawings Single Vertical and Double Left (U+2558) - ╘
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LLCornerSingleDbl
-
- {
-
- get => GlyphSettings.Defaults.LLCornerSingleDbl;
-
- set => GlyphSettings.Defaults.LLCornerSingleDbl = value;
-
- }
+ public static Rune LLCornerSingleDbl => GlyphSettings.Current.LLCornerSingleDbl;
/// Box Drawings Double Down and Single Left (U+2559) - â•™
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LLCornerDblSingle
-
- {
-
- get => GlyphSettings.Defaults.LLCornerDblSingle;
-
- set => GlyphSettings.Defaults.LLCornerDblSingle = value;
-
- }
+ public static Rune LLCornerDblSingle => GlyphSettings.Current.LLCornerDblSingle;
/// Box Drawings Upper Left Corner - Light Arc Down and Left (U+2570) - â•°
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LLCornerR
-
- {
-
- get => GlyphSettings.Defaults.LLCornerR;
-
- set => GlyphSettings.Defaults.LLCornerR = value;
-
- }
+ public static Rune LLCornerR => GlyphSettings.Current.LLCornerR;
#endregion
@@ -961,107 +353,35 @@ public static Rune LLCornerR
/// Box Drawings Upper Horizontal Corner - Light Vertical and Light Horizontal (U+2510) - â”
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune URCorner
-
- {
-
- get => GlyphSettings.Defaults.URCorner;
-
- set => GlyphSettings.Defaults.URCorner = value;
-
- }
+ public static Rune URCorner => GlyphSettings.Current.URCorner;
/// Box Drawings Upper Horizontal Corner - Double Vertical and Double Horizontal (U+2557) - â•—
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune URCornerDbl
-
- {
-
- get => GlyphSettings.Defaults.URCornerDbl;
-
- set => GlyphSettings.Defaults.URCornerDbl = value;
-
- }
+ public static Rune URCornerDbl => GlyphSettings.Current.URCornerDbl;
/// Box Drawings Upper Horizontal Corner - Light Arc Vertical and Horizontal (U+256E) - â•®
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune URCornerR
-
- {
-
- get => GlyphSettings.Defaults.URCornerR;
-
- set => GlyphSettings.Defaults.URCornerR = value;
-
- }
+ public static Rune URCornerR => GlyphSettings.Current.URCornerR;
/// Box Drawings Heavy Down and Left (U+2513) - ┓
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune URCornerHv
-
- {
-
- get => GlyphSettings.Defaults.URCornerHv;
-
- set => GlyphSettings.Defaults.URCornerHv = value;
-
- }
+ public static Rune URCornerHv => GlyphSettings.Current.URCornerHv;
/// Box Drawings Heavy Vertical and Left Down Light (U+2511) - ┑
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune URCornerHvLt
-
- {
-
- get => GlyphSettings.Defaults.URCornerHvLt;
-
- set => GlyphSettings.Defaults.URCornerHvLt = value;
-
- }
+ public static Rune URCornerHvLt => GlyphSettings.Current.URCornerHvLt;
/// Box Drawings Down Light and Horizontal Heavy (U+2514) - â”’
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune URCornerLtHv
-
- {
-
- get => GlyphSettings.Defaults.URCornerLtHv;
-
- set => GlyphSettings.Defaults.URCornerLtHv = value;
-
- }
+ public static Rune URCornerLtHv => GlyphSettings.Current.URCornerLtHv;
/// Box Drawings Double Vertical and Single Left (U+2556) - â•–
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune URCornerDblSingle
-
- {
-
- get => GlyphSettings.Defaults.URCornerDblSingle;
-
- set => GlyphSettings.Defaults.URCornerDblSingle = value;
-
- }
+ public static Rune URCornerDblSingle => GlyphSettings.Current.URCornerDblSingle;
/// Box Drawings Single Vertical and Double Left (U+2555) - â••
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune URCornerSingleDbl
-
- {
-
- get => GlyphSettings.Defaults.URCornerSingleDbl;
-
- set => GlyphSettings.Defaults.URCornerSingleDbl = value;
-
- }
+ public static Rune URCornerSingleDbl => GlyphSettings.Current.URCornerSingleDbl;
#endregion
@@ -1069,107 +389,35 @@ public static Rune URCornerSingleDbl
/// Box Drawings Lower Right Corner - Light (U+2518) - ┘
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LRCorner
-
- {
-
- get => GlyphSettings.Defaults.LRCorner;
-
- set => GlyphSettings.Defaults.LRCorner = value;
-
- }
+ public static Rune LRCorner => GlyphSettings.Current.LRCorner;
/// Box Drawings Lower Right Corner - Double (U+255D) - â•
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LRCornerDbl
-
- {
-
- get => GlyphSettings.Defaults.LRCornerDbl;
-
- set => GlyphSettings.Defaults.LRCornerDbl = value;
-
- }
+ public static Rune LRCornerDbl => GlyphSettings.Current.LRCornerDbl;
/// Box Drawings Lower Right Corner - Rounded (U+256F) - ╯
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LRCornerR
-
- {
-
- get => GlyphSettings.Defaults.LRCornerR;
-
- set => GlyphSettings.Defaults.LRCornerR = value;
-
- }
+ public static Rune LRCornerR => GlyphSettings.Current.LRCornerR;
/// Box Drawings Lower Right Corner - Heavy (U+251B) - â”›
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LRCornerHv
-
- {
-
- get => GlyphSettings.Defaults.LRCornerHv;
-
- set => GlyphSettings.Defaults.LRCornerHv = value;
-
- }
+ public static Rune LRCornerHv => GlyphSettings.Current.LRCornerHv;
/// Box Drawings Lower Right Corner - Double Vertical and Single Horizontal (U+255C) - ╜
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LRCornerDblSingle
-
- {
-
- get => GlyphSettings.Defaults.LRCornerDblSingle;
-
- set => GlyphSettings.Defaults.LRCornerDblSingle = value;
-
- }
+ public static Rune LRCornerDblSingle => GlyphSettings.Current.LRCornerDblSingle;
/// Box Drawings Lower Right Corner - Single Vertical and Double Horizontal (U+255B) - â•›
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LRCornerSingleDbl
-
- {
-
- get => GlyphSettings.Defaults.LRCornerSingleDbl;
-
- set => GlyphSettings.Defaults.LRCornerSingleDbl = value;
-
- }
+ public static Rune LRCornerSingleDbl => GlyphSettings.Current.LRCornerSingleDbl;
/// Box Drawings Lower Right Corner - Light Vertical and Heavy Horizontal (U+2519) - â”™
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LRCornerLtHv
-
- {
-
- get => GlyphSettings.Defaults.LRCornerLtHv;
-
- set => GlyphSettings.Defaults.LRCornerLtHv = value;
-
- }
+ public static Rune LRCornerLtHv => GlyphSettings.Current.LRCornerLtHv;
/// Box Drawings Lower Right Corner - Heavy Vertical and Light Horizontal (U+251A) - ┚
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LRCornerHvLt
-
- {
-
- get => GlyphSettings.Defaults.LRCornerHvLt;
-
- set => GlyphSettings.Defaults.LRCornerHvLt = value;
-
- }
+ public static Rune LRCornerHvLt => GlyphSettings.Current.LRCornerHvLt;
#endregion
@@ -1177,367 +425,115 @@ public static Rune LRCornerHvLt
/// Box Drawings Left Tee - Single Vertical and Single Horizontal (U+251C) - ├
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftTee
-
- {
-
- get => GlyphSettings.Defaults.LeftTee;
-
- set => GlyphSettings.Defaults.LeftTee = value;
-
- }
+ public static Rune LeftTee => GlyphSettings.Current.LeftTee;
/// Box Drawings Left Tee - Single Vertical and Double Horizontal (U+255E) - ╞
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftTeeDblH
-
- {
-
- get => GlyphSettings.Defaults.LeftTeeDblH;
-
- set => GlyphSettings.Defaults.LeftTeeDblH = value;
-
- }
+ public static Rune LeftTeeDblH => GlyphSettings.Current.LeftTeeDblH;
/// Box Drawings Left Tee - Double Vertical and Single Horizontal (U+255F) - ╟
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftTeeDblV
-
- {
-
- get => GlyphSettings.Defaults.LeftTeeDblV;
-
- set => GlyphSettings.Defaults.LeftTeeDblV = value;
-
- }
+ public static Rune LeftTeeDblV => GlyphSettings.Current.LeftTeeDblV;
/// Box Drawings Left Tee - Double Vertical and Double Horizontal (U+2560) - â•
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftTeeDbl
-
- {
-
- get => GlyphSettings.Defaults.LeftTeeDbl;
-
- set => GlyphSettings.Defaults.LeftTeeDbl = value;
-
- }
+ public static Rune LeftTeeDbl => GlyphSettings.Current.LeftTeeDbl;
/// Box Drawings Left Tee - Heavy Horizontal and Light Vertical (U+2523) - â”
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftTeeHvH
-
- {
-
- get => GlyphSettings.Defaults.LeftTeeHvH;
-
- set => GlyphSettings.Defaults.LeftTeeHvH = value;
-
- }
+ public static Rune LeftTeeHvH => GlyphSettings.Current.LeftTeeHvH;
/// Box Drawings Left Tee - Light Horizontal and Heavy Vertical (U+252B) - â”
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftTeeHvV
-
- {
-
- get => GlyphSettings.Defaults.LeftTeeHvV;
-
- set => GlyphSettings.Defaults.LeftTeeHvV = value;
-
- }
+ public static Rune LeftTeeHvV => GlyphSettings.Current.LeftTeeHvV;
/// Box Drawings Left Tee - Heavy Vertical and Heavy Horizontal (U+2527) - ┣
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune LeftTeeHvDblH
-
- {
-
- get => GlyphSettings.Defaults.LeftTeeHvDblH;
-
- set => GlyphSettings.Defaults.LeftTeeHvDblH = value;
-
- }
+ public static Rune LeftTeeHvDblH => GlyphSettings.Current.LeftTeeHvDblH;
/// Box Drawings Right Tee - Single Vertical and Single Horizontal (U+2524) - ┤
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightTee
-
- {
-
- get => GlyphSettings.Defaults.RightTee;
-
- set => GlyphSettings.Defaults.RightTee = value;
-
- }
+ public static Rune RightTee => GlyphSettings.Current.RightTee;
/// Box Drawings Right Tee - Single Vertical and Double Horizontal (U+2561) - â•¡
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightTeeDblH
-
- {
-
- get => GlyphSettings.Defaults.RightTeeDblH;
-
- set => GlyphSettings.Defaults.RightTeeDblH = value;
-
- }
+ public static Rune RightTeeDblH => GlyphSettings.Current.RightTeeDblH;
/// Box Drawings Right Tee - Double Vertical and Single Horizontal (U+2562) - â•¢
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightTeeDblV
-
- {
-
- get => GlyphSettings.Defaults.RightTeeDblV;
-
- set => GlyphSettings.Defaults.RightTeeDblV = value;
-
- }
+ public static Rune RightTeeDblV => GlyphSettings.Current.RightTeeDblV;
/// Box Drawings Right Tee - Double Vertical and Double Horizontal (U+2563) - â•£
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightTeeDbl
-
- {
-
- get => GlyphSettings.Defaults.RightTeeDbl;
-
- set => GlyphSettings.Defaults.RightTeeDbl = value;
-
- }
+ public static Rune RightTeeDbl => GlyphSettings.Current.RightTeeDbl;
/// Box Drawings Right Tee - Heavy Horizontal and Light Vertical (U+2528) - ┥
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightTeeHvH
-
- {
-
- get => GlyphSettings.Defaults.RightTeeHvH;
-
- set => GlyphSettings.Defaults.RightTeeHvH = value;
-
- }
+ public static Rune RightTeeHvH => GlyphSettings.Current.RightTeeHvH;
/// Box Drawings Right Tee - Light Horizontal and Heavy Vertical (U+2530) - ┨
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightTeeHvV
-
- {
-
- get => GlyphSettings.Defaults.RightTeeHvV;
-
- set => GlyphSettings.Defaults.RightTeeHvV = value;
-
- }
+ public static Rune RightTeeHvV => GlyphSettings.Current.RightTeeHvV;
/// Box Drawings Right Tee - Heavy Vertical and Heavy Horizontal (U+252C) - ┫
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune RightTeeHvDblH
-
- {
-
- get => GlyphSettings.Defaults.RightTeeHvDblH;
-
- set => GlyphSettings.Defaults.RightTeeHvDblH = value;
-
- }
+ public static Rune RightTeeHvDblH => GlyphSettings.Current.RightTeeHvDblH;
/// Box Drawings Top Tee - Single Vertical and Single Horizontal (U+252C) - ┬
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune TopTee
-
- {
-
- get => GlyphSettings.Defaults.TopTee;
-
- set => GlyphSettings.Defaults.TopTee = value;
-
- }
+ public static Rune TopTee => GlyphSettings.Current.TopTee;
/// Box Drawings Top Tee - Single Vertical and Double Horizontal (U+2564) - ╤
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune TopTeeDblH
-
- {
-
- get => GlyphSettings.Defaults.TopTeeDblH;
-
- set => GlyphSettings.Defaults.TopTeeDblH = value;
-
- }
+ public static Rune TopTeeDblH => GlyphSettings.Current.TopTeeDblH;
/// Box Drawings Top Tee - Double Vertical and Single Horizontal (U+2565) - â•¥
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune TopTeeDblV
-
- {
-
- get => GlyphSettings.Defaults.TopTeeDblV;
-
- set => GlyphSettings.Defaults.TopTeeDblV = value;
-
- }
+ public static Rune TopTeeDblV => GlyphSettings.Current.TopTeeDblV;
/// Box Drawings Top Tee - Double Vertical and Double Horizontal (U+2566) - ╦
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune TopTeeDbl
-
- {
-
- get => GlyphSettings.Defaults.TopTeeDbl;
-
- set => GlyphSettings.Defaults.TopTeeDbl = value;
-
- }
+ public static Rune TopTeeDbl => GlyphSettings.Current.TopTeeDbl;
/// Box Drawings Top Tee - Heavy Horizontal and Light Vertical (U+252F) - ┯
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune TopTeeHvH
-
- {
-
- get => GlyphSettings.Defaults.TopTeeHvH;
-
- set => GlyphSettings.Defaults.TopTeeHvH = value;
-
- }
+ public static Rune TopTeeHvH => GlyphSettings.Current.TopTeeHvH;
/// Box Drawings Top Tee - Light Horizontal and Heavy Vertical (U+2537) - â”°
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune TopTeeHvV
-
- {
-
- get => GlyphSettings.Defaults.TopTeeHvV;
-
- set => GlyphSettings.Defaults.TopTeeHvV = value;
-
- }
+ public static Rune TopTeeHvV => GlyphSettings.Current.TopTeeHvV;
/// Box Drawings Top Tee - Heavy Vertical and Heavy Horizontal (U+2533) - ┳
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune TopTeeHvDblH
-
- {
-
- get => GlyphSettings.Defaults.TopTeeHvDblH;
-
- set => GlyphSettings.Defaults.TopTeeHvDblH = value;
-
- }
+ public static Rune TopTeeHvDblH => GlyphSettings.Current.TopTeeHvDblH;
/// Box Drawings Bottom Tee - Single Vertical and Single Horizontal (U+2534) - â”´
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BottomTee
-
- {
-
- get => GlyphSettings.Defaults.BottomTee;
-
- set => GlyphSettings.Defaults.BottomTee = value;
-
- }
+ public static Rune BottomTee => GlyphSettings.Current.BottomTee;
/// Box Drawings Bottom Tee - Single Vertical and Double Horizontal (U+2567) - â•§
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BottomTeeDblH
-
- {
-
- get => GlyphSettings.Defaults.BottomTeeDblH;
-
- set => GlyphSettings.Defaults.BottomTeeDblH = value;
-
- }
+ public static Rune BottomTeeDblH => GlyphSettings.Current.BottomTeeDblH;
/// Box Drawings Bottom Tee - Double Vertical and Single Horizontal (U+2568) - ╨
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BottomTeeDblV
-
- {
-
- get => GlyphSettings.Defaults.BottomTeeDblV;
-
- set => GlyphSettings.Defaults.BottomTeeDblV = value;
-
- }
+ public static Rune BottomTeeDblV => GlyphSettings.Current.BottomTeeDblV;
/// Box Drawings Bottom Tee - Double Vertical and Double Horizontal (U+2569) - â•©
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BottomTeeDbl
-
- {
-
- get => GlyphSettings.Defaults.BottomTeeDbl;
-
- set => GlyphSettings.Defaults.BottomTeeDbl = value;
-
- }
+ public static Rune BottomTeeDbl => GlyphSettings.Current.BottomTeeDbl;
/// Box Drawings Bottom Tee - Heavy Horizontal and Light Vertical (U+2535) - â”·
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BottomTeeHvH
-
- {
-
- get => GlyphSettings.Defaults.BottomTeeHvH;
-
- set => GlyphSettings.Defaults.BottomTeeHvH = value;
-
- }
+ public static Rune BottomTeeHvH => GlyphSettings.Current.BottomTeeHvH;
/// Box Drawings Bottom Tee - Light Horizontal and Heavy Vertical (U+253D) - ┸
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BottomTeeHvV
-
- {
-
- get => GlyphSettings.Defaults.BottomTeeHvV;
-
- set => GlyphSettings.Defaults.BottomTeeHvV = value;
-
- }
+ public static Rune BottomTeeHvV => GlyphSettings.Current.BottomTeeHvV;
/// Box Drawings Bottom Tee - Heavy Vertical and Heavy Horizontal (U+2539) - â”»
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune BottomTeeHvDblH
-
- {
-
- get => GlyphSettings.Defaults.BottomTeeHvDblH;
-
- set => GlyphSettings.Defaults.BottomTeeHvDblH = value;
-
- }
+ public static Rune BottomTeeHvDblH => GlyphSettings.Current.BottomTeeHvDblH;
#endregion
@@ -1545,94 +541,31 @@ public static Rune BottomTeeHvDblH
/// Box Drawings Cross - Single Vertical and Single Horizontal (U+253C) - ┼
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune Cross
-
- {
-
- get => GlyphSettings.Defaults.Cross;
-
- set => GlyphSettings.Defaults.Cross = value;
-
- }
+ public static Rune Cross => GlyphSettings.Current.Cross;
/// Box Drawings Cross - Single Vertical and Double Horizontal (U+256A) - ╪
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CrossDblH
-
- {
-
- get => GlyphSettings.Defaults.CrossDblH;
-
- set => GlyphSettings.Defaults.CrossDblH = value;
-
- }
+ public static Rune CrossDblH => GlyphSettings.Current.CrossDblH;
/// Box Drawings Cross - Double Vertical and Single Horizontal (U+256B) - â•«
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CrossDblV
-
- {
-
- get => GlyphSettings.Defaults.CrossDblV;
-
- set => GlyphSettings.Defaults.CrossDblV = value;
-
- }
+ public static Rune CrossDblV => GlyphSettings.Current.CrossDblV;
/// Box Drawings Cross - Double Vertical and Double Horizontal (U+256C) - ╬
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CrossDbl
-
- {
-
- get => GlyphSettings.Defaults.CrossDbl;
-
- set => GlyphSettings.Defaults.CrossDbl = value;
-
- }
+ public static Rune CrossDbl => GlyphSettings.Current.CrossDbl;
/// Box Drawings Cross - Heavy Horizontal and Light Vertical (U+253F) - ┿
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CrossHvH
-
- {
-
- get => GlyphSettings.Defaults.CrossHvH;
-
- set => GlyphSettings.Defaults.CrossHvH = value;
-
- }
+ public static Rune CrossHvH => GlyphSettings.Current.CrossHvH;
/// Box Drawings Cross - Light Horizontal and Heavy Vertical (U+2541) - â•‚
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CrossHvV
-
- {
-
- get => GlyphSettings.Defaults.CrossHvV;
-
- set => GlyphSettings.Defaults.CrossHvV = value;
-
- }
+ public static Rune CrossHvV => GlyphSettings.Current.CrossHvV;
/// Box Drawings Cross - Heavy Vertical and Heavy Horizontal (U+254B) - â•‹
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune CrossHv
-
- {
-
- get => GlyphSettings.Defaults.CrossHv;
-
- set => GlyphSettings.Defaults.CrossHv = value;
-
- }
+ public static Rune CrossHv => GlyphSettings.Current.CrossHv;
#endregion
@@ -1640,68 +573,23 @@ public static Rune CrossHv
/// Shadow - Vertical Start - Left Half Block - ▌ U+0258c
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ShadowVerticalStart // Half: '\u2596' â––;
-
- {
-
- get => GlyphSettings.Defaults.ShadowVerticalStart;
-
- set => GlyphSettings.Defaults.ShadowVerticalStart = value;
-
- }
+ public static Rune ShadowVerticalStart => GlyphSettings.Current.ShadowVerticalStart;
/// Shadow - Vertical - Left Half Block - ▌ U+0258c
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ShadowVertical
-
- {
-
- get => GlyphSettings.Defaults.ShadowVertical;
-
- set => GlyphSettings.Defaults.ShadowVertical = value;
-
- }
+ public static Rune ShadowVertical => GlyphSettings.Current.ShadowVertical;
/// Shadow - Horizontal Start - Upper Half Block - â–€ U+02580
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ShadowHorizontalStart // Half: â– U+0259d;
-
- {
-
- get => GlyphSettings.Defaults.ShadowHorizontalStart;
-
- set => GlyphSettings.Defaults.ShadowHorizontalStart = value;
-
- }
+ public static Rune ShadowHorizontalStart => GlyphSettings.Current.ShadowHorizontalStart;
/// Shadow - Horizontal - Upper Half Block - â–€ U+02580
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ShadowHorizontal
-
- {
-
- get => GlyphSettings.Defaults.ShadowHorizontal;
-
- set => GlyphSettings.Defaults.ShadowHorizontal = value;
-
- }
+ public static Rune ShadowHorizontal => GlyphSettings.Current.ShadowHorizontal;
/// Shadow - Horizontal End - Quadrant Upper Left - â–˜ U+02598
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Rune ShadowHorizontalEnd
-
- {
-
- get => GlyphSettings.Defaults.ShadowHorizontalEnd;
-
- set => GlyphSettings.Defaults.ShadowHorizontalEnd = value;
-
- }
+ public static Rune ShadowHorizontalEnd => GlyphSettings.Current.ShadowHorizontalEnd;
#endregion
}
\ No newline at end of file
diff --git a/Terminal.Gui/Text/NerdFonts.cs b/Terminal.Gui/Text/NerdFonts.cs
index 2253a3ecef..dd1d05a1c3 100644
--- a/Terminal.Gui/Text/NerdFonts.cs
+++ b/Terminal.Gui/Text/NerdFonts.cs
@@ -15,12 +15,7 @@ internal class NerdFonts
/// If , enables the use of Nerd unicode symbols. This requires specific font(s) to be
/// installed on the users machine to work correctly. Defaults to .
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static bool Enable
- {
- get => NerdFontsSettings.Defaults.Enable;
- set => NerdFontsSettings.Defaults.Enable = value;
- }
+ public static bool Enable => NerdFontsSettings.Current.Enable;
/// Mapping of file extension to name.
public Dictionary ExtensionToIcon { get; set; } = new ()
diff --git a/Terminal.Gui/Views/Button.cs b/Terminal.Gui/Views/Button.cs
index 3e05362cc2..6a9a4718fa 100644
--- a/Terminal.Gui/Views/Button.cs
+++ b/Terminal.Gui/Views/Button.cs
@@ -53,22 +53,12 @@ public class Button : View, IDesignable, IAcceptTarget
///
/// Gets or sets whether s are shown with a shadow effect by default.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static ShadowStyles DefaultShadow
- {
- get => ButtonSettings.Defaults.DefaultShadow;
- set => ButtonSettings.Defaults.DefaultShadow = value;
- }
+ public static ShadowStyles DefaultShadow => ButtonSettings.Current.DefaultShadow;
///
/// Gets or sets the default Highlight Style.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static MouseState DefaultMouseHighlightStates
- {
- get => ButtonSettings.Defaults.DefaultMouseHighlightStates;
- set => ButtonSettings.Defaults.DefaultMouseHighlightStates = value;
- }
+ public static MouseState DefaultMouseHighlightStates => ButtonSettings.Current.DefaultMouseHighlightStates;
/// Initializes a new instance of .
public Button ()
@@ -108,7 +98,7 @@ public Button ()
///
/// Called before the Button's initial is applied during construction.
- /// Override to change or suppress the default shadow set
+ /// Override to change or suppress the default shadow � set
/// to the desired style, or set to
/// to skip applying any shadow.
///
@@ -131,10 +121,10 @@ private void RaiseInitializingShadowStyle ()
{
ValueChangingEventArgs args = new (null, DefaultShadow);
- // 1. Virtual method subclasses override to change/suppress the default shadow.
+ // 1. Virtual method � subclasses override to change/suppress the default shadow.
OnInitializingShadowStyle (args);
- // 2. Event external subscribers get a chance to customize.
+ // 2. Event � external subscribers get a chance to customize.
InitializingShadowStyle?.Invoke (this, args);
// 3. Apply the (potentially modified) shadow style unless already handled.
diff --git a/Terminal.Gui/Views/CharMap/CharMap.cs b/Terminal.Gui/Views/CharMap/CharMap.cs
index 69133b56bc..69447ac091 100644
--- a/Terminal.Gui/Views/CharMap/CharMap.cs
+++ b/Terminal.Gui/Views/CharMap/CharMap.cs
@@ -54,12 +54,7 @@ public class CharMap : View, IDesignable, IValue
///
/// Gets or sets the default cursor style.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static CursorStyle DefaultCursorStyle
- {
- get => CharMapSettings.Defaults.DefaultCursorStyle;
- set => CharMapSettings.Defaults.DefaultCursorStyle = value;
- }
+ public static CursorStyle DefaultCursorStyle => CharMapSettings.Current.DefaultCursorStyle;
private const int COLUMN_WIDTH = 3; // Width of each column of glyphs
private const int HEADER_HEIGHT = 1; // Height of the header
diff --git a/Terminal.Gui/Views/CheckBox.cs b/Terminal.Gui/Views/CheckBox.cs
index df991b4cc5..070071065e 100644
--- a/Terminal.Gui/Views/CheckBox.cs
+++ b/Terminal.Gui/Views/CheckBox.cs
@@ -24,12 +24,7 @@ public class CheckBox : View, IValue
///
/// Gets or sets the default Highlight Style.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static MouseState DefaultMouseHighlightStates
- {
- get => CheckBoxSettings.Defaults.DefaultMouseHighlightStates;
- set => CheckBoxSettings.Defaults.DefaultMouseHighlightStates = value;
- }
+ public static MouseState DefaultMouseHighlightStates => CheckBoxSettings.Current.DefaultMouseHighlightStates;
///
/// Initializes a new instance of .
diff --git a/Terminal.Gui/Views/Dialog.cs b/Terminal.Gui/Views/Dialog.cs
index 5da9e0e0c9..5ef860b26a 100644
--- a/Terminal.Gui/Views/Dialog.cs
+++ b/Terminal.Gui/Views/Dialog.cs
@@ -64,42 +64,22 @@ public class Dialog : Dialog
/// The default border style for new instances. Can be configured via
/// and theme files.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static LineStyle DefaultBorderStyle
- {
- get => DialogSettings.Defaults.DefaultBorderStyle;
- set => DialogSettings.Defaults.DefaultBorderStyle = value;
- }
+ public static LineStyle DefaultBorderStyle => DialogSettings.Current.DefaultBorderStyle;
///
/// The default button alignment for new instances. Can be configured via theme files.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static Alignment DefaultButtonAlignment
- {
- get => DialogSettings.Defaults.DefaultButtonAlignment;
- set => DialogSettings.Defaults.DefaultButtonAlignment = value;
- }
+ public static Alignment DefaultButtonAlignment => DialogSettings.Current.DefaultButtonAlignment;
///
/// The default button alignment modes for new instances. Can be configured via theme files.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static AlignmentModes DefaultButtonAlignmentModes
- {
- get => DialogSettings.Defaults.DefaultButtonAlignmentModes;
- set => DialogSettings.Defaults.DefaultButtonAlignmentModes = value;
- }
+ public static AlignmentModes DefaultButtonAlignmentModes => DialogSettings.Current.DefaultButtonAlignmentModes;
///
/// The default shadow style for new instances. Can be configured via theme files.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static ShadowStyles DefaultShadow
- {
- get => DialogSettings.Defaults.DefaultShadow;
- set => DialogSettings.Defaults.DefaultShadow = value;
- }
+ public static ShadowStyles DefaultShadow => DialogSettings.Current.DefaultShadow;
///
/// Helper property that gets whether the dialog was canceled (Result is or 1).
diff --git a/Terminal.Gui/Views/FrameView.cs b/Terminal.Gui/Views/FrameView.cs
index 68ad2940fd..8202312d84 100644
--- a/Terminal.Gui/Views/FrameView.cs
+++ b/Terminal.Gui/Views/FrameView.cs
@@ -40,10 +40,5 @@ public FrameView ()
/// This property can be set in a Theme to change the default for all
/// s.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static LineStyle DefaultBorderStyle
- {
- get => FrameViewSettings.Defaults.DefaultBorderStyle;
- set => FrameViewSettings.Defaults.DefaultBorderStyle = value;
- }
+ public static LineStyle DefaultBorderStyle => FrameViewSettings.Current.DefaultBorderStyle;
}
diff --git a/Terminal.Gui/Views/HexView.cs b/Terminal.Gui/Views/HexView.cs
index e772bf72f0..47a43211cb 100644
--- a/Terminal.Gui/Views/HexView.cs
+++ b/Terminal.Gui/Views/HexView.cs
@@ -80,12 +80,7 @@ public class HexView : View, IDesignable
///
/// Gets or sets the default cursor style.
///
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static CursorStyle DefaultCursorStyle
- {
- get => HexViewSettings.Defaults.DefaultCursorStyle;
- set => HexViewSettings.Defaults.DefaultCursorStyle = value;
- }
+ public static CursorStyle DefaultCursorStyle => HexViewSettings.Current.DefaultCursorStyle;
///
/// Gets or sets the view-specific default key bindings for . Contains only bindings
diff --git a/Terminal.Gui/Views/LinearRange/LinearRangeDefaults.cs b/Terminal.Gui/Views/LinearRange/LinearRangeDefaults.cs
index 04f5b7e145..11bf70e814 100644
--- a/Terminal.Gui/Views/LinearRange/LinearRangeDefaults.cs
+++ b/Terminal.Gui/Views/LinearRange/LinearRangeDefaults.cs
@@ -8,10 +8,5 @@ namespace Terminal.Gui.Views;
public static class LinearRangeDefaults
{
/// Gets or sets the default cursor style applied to a new linear range view.
- [ConfigurationProperty (Scope = typeof (ThemeScope))]
- public static CursorStyle DefaultCursorStyle
- {
- get => LinearRangeSettings.Defaults.DefaultCursorStyle;
- set => LinearRangeSettings.Defaults.DefaultCursorStyle = value;
- }
+ public static CursorStyle DefaultCursorStyle => LinearRangeSettings.Current.DefaultCursorStyle;
}
diff --git a/Terminal.Gui/Views/Menu/Menu.cs b/Terminal.Gui/Views/Menu/Menu.cs
index 8c10d3e5f9..f8e1ea4c80 100644
--- a/Terminal.Gui/Views/Menu/Menu.cs
+++ b/Terminal.Gui/Views/Menu/Menu.cs
@@ -52,12 +52,7 @@ public class Menu : Bar, IValue