diff --git a/UICatalog/Properties/launchSettings.json b/UICatalog/Properties/launchSettings.json index f5f092229..3599a8810 100644 --- a/UICatalog/Properties/launchSettings.json +++ b/UICatalog/Properties/launchSettings.json @@ -23,10 +23,6 @@ "commandLineArgs": "dotnet UICatalog.dll --driver NetDriver", "distributionName": "" }, - "Buttons": { - "commandName": "Project", - "commandLineArgs": "Buttons" - }, "WizardAsView": { "commandName": "Project", "commandLineArgs": "WizardAsView" @@ -37,11 +33,11 @@ }, "Charmap": { "commandName": "Project", - "commandLineArgs": "\"Character Map\"" + "commandLineArgs": "\"Character Map\" -b" }, "All Views Tester": { "commandName": "Project", - "commandLineArgs": "\"All Views Tester\"" + "commandLineArgs": "\"All Views Tester\" -b" }, "Windows & FrameViews": { "commandName": "Project", @@ -73,6 +69,10 @@ "Benchmark All": { "commandName": "Project", "commandLineArgs": "--benchmark" + }, + "ContextMenus": { + "commandName": "Project", + "commandLineArgs": "ContextMenus -b" } } } \ No newline at end of file diff --git a/UICatalog/Scenario.cs b/UICatalog/Scenario.cs index 3936ca1a6..c5dc1723c 100644 --- a/UICatalog/Scenario.cs +++ b/UICatalog/Scenario.cs @@ -25,12 +25,12 @@ namespace UICatalog; /// /// /// Annotate the derived class with a -/// attribute specifying the scenario's name and description. +/// attribute specifying the scenario's name and description. /// /// /// /// -/// Add one or more attributes to the class specifying +/// Add one or more attributes to the class specifying /// which categories the scenario belongs to. If you don't specify a category the scenario will show up /// in "_All". /// @@ -151,8 +151,9 @@ public class Scenario : IDisposable /// public virtual void Main () { } - private const uint ABORT_TIME = 1000; - private const uint MAX_ITERATIONS = 500; + private const uint MAX_NATURAL_ITERATIONS = 100; // not including needed for demo keys + private const uint ABORT_TIMEOUT_MS = 5000; + private const int DEMO_KEY_PACING_MS = 1; // Must be non-zero private readonly object _timeoutLock = new (); private object? _timeout; @@ -180,13 +181,16 @@ public class Scenario : IDisposable return _benchmarkResults; } + private List _demoKeys; + private int _currentDemoKey = 0; + private void OnApplicationOnInitializedChanged (object? s, EventArgs a) { if (a.CurrentValue) { lock (_timeoutLock!) { - _timeout = Application.AddTimeout (TimeSpan.FromMilliseconds (ABORT_TIME), ForceCloseCallback); + _timeout = Application.AddTimeout (TimeSpan.FromMilliseconds (ABORT_TIMEOUT_MS), ForceCloseCallback); } Application.Iteration += OnApplicationOnIteration; @@ -202,6 +206,7 @@ public class Scenario : IDisposable }; Application.NotifyNewRunState += OnApplicationNotifyNewRunState; + _stopwatch = Stopwatch.StartNew (); } else @@ -216,7 +221,7 @@ public class Scenario : IDisposable private void OnApplicationOnIteration (object? s, IterationEventArgs a) { BenchmarkResults.IterationCount++; - if (BenchmarkResults.IterationCount > MAX_ITERATIONS) + if (BenchmarkResults.IterationCount > MAX_NATURAL_ITERATIONS + (_demoKeys.Count* DEMO_KEY_PACING_MS)) { Application.RequestStop (); } @@ -237,6 +242,25 @@ public class Scenario : IDisposable } SubscribeAllSubviews (Application.Top!); + + _currentDemoKey = 0; + _demoKeys = GetDemoKeyStrokes (); + _demoKeys.Add (Application.QuitKey); + + Application.AddTimeout ( + new TimeSpan (0, 0, 0, 0, DEMO_KEY_PACING_MS), + () => + { + if (_currentDemoKey >= _demoKeys.Count) + { + return false; + } + + Application.RaiseKeyDownEvent (_demoKeys [_currentDemoKey++]); + + return true; + }); + } // If the scenario doesn't close within the abort time, this will force it to quit @@ -250,7 +274,7 @@ public class Scenario : IDisposable } } - Debug.WriteLine ($@" Failed to Quit with {Application.QuitKey} after {ABORT_TIME}ms and {BenchmarkResults.IterationCount} iterations. Force quit."); + Debug.WriteLine ($@" Failed to Quit with {Application.QuitKey} after {ABORT_TIMEOUT_MS}ms and {BenchmarkResults.IterationCount} iterations. Force quit."); Application.RequestStop (); @@ -298,7 +322,7 @@ public class Scenario : IDisposable (current, attrs) => current .Union ( attrs.Where (a => a is ScenarioCategory) - .Select (a => ((Scenario.ScenarioCategory)a).Name)) + .Select (a => ((ScenarioCategory)a).Name)) .ToList ()); // Sort @@ -308,75 +332,9 @@ public class Scenario : IDisposable categories.Insert (0, "All Scenarios"); return categories; + } - /// Defines the category names used to categorize a - [AttributeUsage (AttributeTargets.Class, AllowMultiple = true)] - public class ScenarioCategory (string name) : System.Attribute - { - /// Static helper function to get the Categories given a Type - /// - /// list of category names - public static List GetCategories (Type t) - { - return GetCustomAttributes (t) - .ToList () - .Where (a => a is Scenario.ScenarioCategory) - .Select (a => ((Scenario.ScenarioCategory)a).Name) - .ToList (); - } + public virtual List GetDemoKeyStrokes () => new List (); - /// Static helper function to get the Name given a Type - /// - /// Name of the category - public static string GetName (Type t) - { - if (GetCustomAttributes (t).FirstOrDefault (a => a is Scenario.ScenarioMetadata) is Scenario.ScenarioMetadata { } metadata) - { - return metadata.Name; - } - - return string.Empty; - } - - /// Category Name - public string Name { get; set; } = name; - } - - /// Defines the metadata (Name and Description) for a - [AttributeUsage (AttributeTargets.Class)] - public class ScenarioMetadata (string name, string description) : System.Attribute - { - /// Description - public string Description { get; set; } = description; - - /// Static helper function to get the Description given a Type - /// - /// - public static string GetDescription (Type t) - { - if (GetCustomAttributes (t).FirstOrDefault (a => a is Scenario.ScenarioMetadata) is Scenario.ScenarioMetadata { } metadata) - { - return metadata.Description; - } - - return string.Empty; - } - - /// Static helper function to get the Name given a Type - /// - /// - public static string GetName (Type t) - { - if (GetCustomAttributes (t).FirstOrDefault (a => a is Scenario.ScenarioMetadata) is Scenario.ScenarioMetadata { } metadata) - { - return metadata.Name; - } - - return string.Empty; - } - - /// Name - public string Name { get; set; } = name; - } -} +} \ No newline at end of file diff --git a/UICatalog/ScenarioCategory.cs b/UICatalog/ScenarioCategory.cs new file mode 100644 index 000000000..342974405 --- /dev/null +++ b/UICatalog/ScenarioCategory.cs @@ -0,0 +1,39 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Linq; + +namespace UICatalog; + +/// Defines the category names used to categorize a +[AttributeUsage (AttributeTargets.Class, AllowMultiple = true)] +public class ScenarioCategory (string name) : System.Attribute +{ + /// Static helper function to get the Categories given a Type + /// + /// list of category names + public static List GetCategories (Type t) + { + return GetCustomAttributes (t) + .ToList () + .Where (a => a is ScenarioCategory) + .Select (a => ((ScenarioCategory)a).Name) + .ToList (); + } + + /// Static helper function to get the Name given a Type + /// + /// Name of the category + public static string GetName (Type t) + { + if (GetCustomAttributes (t).FirstOrDefault (a => a is ScenarioMetadata) is ScenarioMetadata { } metadata) + { + return metadata.Name; + } + + return string.Empty; + } + + /// Category Name + public string Name { get; set; } = name; +} diff --git a/UICatalog/ScenarioMetadata.cs b/UICatalog/ScenarioMetadata.cs new file mode 100644 index 000000000..0e1ef4b16 --- /dev/null +++ b/UICatalog/ScenarioMetadata.cs @@ -0,0 +1,42 @@ +#nullable enable +using System; +using System.Linq; + +namespace UICatalog; + +/// Defines the metadata (Name and Description) for a +[AttributeUsage (AttributeTargets.Class)] +public class ScenarioMetadata (string name, string description) : System.Attribute +{ + /// Description + public string Description { get; set; } = description; + + /// Static helper function to get the Description given a Type + /// + /// + public static string GetDescription (Type t) + { + if (GetCustomAttributes (t).FirstOrDefault (a => a is ScenarioMetadata) is ScenarioMetadata { } metadata) + { + return metadata.Description; + } + + return string.Empty; + } + + /// Static helper function to get the Name given a Type + /// + /// + public static string GetName (Type t) + { + if (GetCustomAttributes (t).FirstOrDefault (a => a is ScenarioMetadata) is ScenarioMetadata { } metadata) + { + return metadata.Name; + } + + return string.Empty; + } + + /// Name + public string Name { get; set; } = name; +} diff --git a/UICatalog/Scenarios/ASCIICustomButton.cs b/UICatalog/Scenarios/ASCIICustomButton.cs index 2961be329..45889f3e8 100644 --- a/UICatalog/Scenarios/ASCIICustomButton.cs +++ b/UICatalog/Scenarios/ASCIICustomButton.cs @@ -7,8 +7,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ASCIICustomButtonTest", "ASCIICustomButton sample")] -[Scenario.ScenarioCategory ("Controls")] +[ScenarioMetadata ("ASCIICustomButtonTest", "ASCIICustomButton sample")] +[ScenarioCategory ("Controls")] public class ASCIICustomButtonTest : Scenario { private static bool _smallerWindow; diff --git a/UICatalog/Scenarios/Adornments.cs b/UICatalog/Scenarios/Adornments.cs index 48746a5ca..1ecbb196a 100644 --- a/UICatalog/Scenarios/Adornments.cs +++ b/UICatalog/Scenarios/Adornments.cs @@ -2,9 +2,9 @@ namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Adornments Demo", "Demonstrates Margin, Border, and Padding on Views.")] -[Scenario.ScenarioCategory ("Layout")] -[Scenario.ScenarioCategory ("Adornments")] +[ScenarioMetadata ("Adornments Demo", "Demonstrates Margin, Border, and Padding on Views.")] +[ScenarioCategory ("Layout")] +[ScenarioCategory ("Adornments")] public class Adornments : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/AllViewsTester.cs b/UICatalog/Scenarios/AllViewsTester.cs index 11e25bb5e..5d378db5e 100644 --- a/UICatalog/Scenarios/AllViewsTester.cs +++ b/UICatalog/Scenarios/AllViewsTester.cs @@ -336,4 +336,16 @@ public class AllViewsTester : Scenario UpdateHostTitle (view); } + + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + for (int i = 0; i < GetAllViewClassesCollection ().Count; i++) + { + keys.Add (Key.CursorDown); + } + + return keys; + } } diff --git a/UICatalog/Scenarios/AnimationScenario/AnimationScenario.cs b/UICatalog/Scenarios/AnimationScenario/AnimationScenario.cs index 9a3095964..335afe4c2 100644 --- a/UICatalog/Scenarios/AnimationScenario/AnimationScenario.cs +++ b/UICatalog/Scenarios/AnimationScenario/AnimationScenario.cs @@ -10,9 +10,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Animation", "Demonstration of how to render animated images with threading.")] -[Scenario.ScenarioCategory ("Threading")] -[Scenario.ScenarioCategory ("Drawing")] +[ScenarioMetadata ("Animation", "Demonstration of how to render animated images with threading.")] +[ScenarioCategory ("Threading")] +[ScenarioCategory ("Drawing")] public class AnimationScenario : Scenario { private bool _isDisposed; diff --git a/UICatalog/Scenarios/Arrangement.cs b/UICatalog/Scenarios/Arrangement.cs index a12c7d5ad..fb4c05f90 100644 --- a/UICatalog/Scenarios/Arrangement.cs +++ b/UICatalog/Scenarios/Arrangement.cs @@ -1,4 +1,5 @@ -using Terminal.Gui; +using System.Collections.Generic; +using Terminal.Gui; using Timer = System.Timers.Timer; namespace UICatalog.Scenarios; @@ -68,8 +69,10 @@ public class Arrangement : Scenario View overlappedView1 = CreateOverlappedView (2, 0, 13); overlappedView1.Title = "Movable _& Sizable"; View tiledSubView = CreateTiledView (4, 0, 2); + tiledSubView.Arrangement = ViewArrangement.Fixed; overlappedView1.Add (tiledSubView); tiledSubView = CreateTiledView (5, Pos.Right (tiledSubView), Pos.Top (tiledSubView)); + tiledSubView.Arrangement = ViewArrangement.Fixed; overlappedView1.Add (tiledSubView); ProgressBar progressBar = new () @@ -242,4 +245,57 @@ public class Arrangement : Scenario } private char GetNextHotKey () { return (char)('A' + _hotkeyCount++); } + + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + // Select view with progress bar + keys.Add ((Key)'&'); + + keys.Add (Application.ArrangeKey); + + for (int i = 0; i < 8; i++) + { + keys.Add (Key.CursorUp); + } + + for (int i = 0; i < 25; i++) + { + keys.Add (Key.CursorRight); + } + + keys.Add (Application.ArrangeKey); + + keys.Add (Key.S); + + keys.Add (Application.ArrangeKey); + + for (int i = 0; i < 10; i++) + { + keys.Add (Key.CursorUp); + } + + for (int i = 0; i < 25; i++) + { + keys.Add (Key.CursorLeft); + } + + keys.Add (Application.ArrangeKey); + + // Select view with progress bar + keys.Add ((Key)'&'); + + keys.Add (Application.ArrangeKey); + + keys.Add (Key.Tab); + + for (int i = 0; i < 10; i++) + { + keys.Add (Key.CursorRight); + keys.Add (Key.CursorDown); + } + + return keys; + } } diff --git a/UICatalog/Scenarios/Bars.cs b/UICatalog/Scenarios/Bars.cs index 3620050dc..7a4f388b8 100644 --- a/UICatalog/Scenarios/Bars.cs +++ b/UICatalog/Scenarios/Bars.cs @@ -8,8 +8,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Bars", "Illustrates Bar views (e.g. StatusBar)")] -[Scenario.ScenarioCategory ("Controls")] +[ScenarioMetadata ("Bars", "Illustrates Bar views (e.g. StatusBar)")] +[ScenarioCategory ("Controls")] public class Bars : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Buttons.cs b/UICatalog/Scenarios/Buttons.cs index e7705a7d9..4cafab5be 100644 --- a/UICatalog/Scenarios/Buttons.cs +++ b/UICatalog/Scenarios/Buttons.cs @@ -7,9 +7,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Buttons", "Demonstrates all sorts of Buttons.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Layout")] +[ScenarioMetadata ("Buttons", "Demonstrates all sorts of Buttons.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Layout")] public class Buttons : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/CharacterMap.cs b/UICatalog/Scenarios/CharacterMap.cs index b1d5ae75f..b68d738de 100644 --- a/UICatalog/Scenarios/CharacterMap.cs +++ b/UICatalog/Scenarios/CharacterMap.cs @@ -21,12 +21,12 @@ namespace UICatalog.Scenarios; /// "Character Map" application (like Windows' charmap.exe). - Helps test unicode character rendering in Terminal.Gui - /// Illustrates how to do infinite scrolling /// -[Scenario.ScenarioMetadata ("Character Map", "Unicode viewer demonstrating infinite content, scrolling, and Unicode.")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Drawing")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Layout")] -[Scenario.ScenarioCategory ("Scrolling")] +[ScenarioMetadata ("Character Map", "Unicode viewer demonstrating infinite content, scrolling, and Unicode.")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Drawing")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Layout")] +[ScenarioCategory ("Scrolling")] public class CharacterMap : Scenario { @@ -306,9 +306,33 @@ public class CharacterMap : Scenario return item; } + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + for (int i = 0; i < 200; i++) + { + keys.Add (Key.CursorDown); + } + + // Category table + keys.Add (Key.Tab.WithShift); + + // Block elements + keys.Add (Key.B); + keys.Add (Key.L); + + keys.Add (Key.Tab); + + for (int i = 0; i < 200; i++) + { + keys.Add (Key.CursorLeft); + } + return keys; + } } -internal class CharMap : View +internal class CharMap : View, IDesignable { private const int COLUMN_WIDTH = 3; diff --git a/UICatalog/Scenarios/ChineseUI.cs b/UICatalog/Scenarios/ChineseUI.cs index f7b783cb5..0cc91ca4f 100644 --- a/UICatalog/Scenarios/ChineseUI.cs +++ b/UICatalog/Scenarios/ChineseUI.cs @@ -2,8 +2,8 @@ namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ChineseUI", "Chinese UI")] -[Scenario.ScenarioCategory ("Text and Formatting")] +[ScenarioMetadata ("ChineseUI", "Chinese UI")] +[ScenarioCategory ("Text and Formatting")] public class ChineseUI : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/ClassExplorer.cs b/UICatalog/Scenarios/ClassExplorer.cs index 7859c0966..0bfd4e9fd 100644 --- a/UICatalog/Scenarios/ClassExplorer.cs +++ b/UICatalog/Scenarios/ClassExplorer.cs @@ -7,9 +7,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Class Explorer", "Tree view explorer for classes by namespace based on TreeView.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("TreeView")] +[ScenarioMetadata ("Class Explorer", "Tree view explorer for classes by namespace based on TreeView.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("TreeView")] public class ClassExplorer : Scenario { private MenuItem _highlightModelTextOnly; diff --git a/UICatalog/Scenarios/Clipping.cs b/UICatalog/Scenarios/Clipping.cs index 21807d42e..3e866023d 100644 --- a/UICatalog/Scenarios/Clipping.cs +++ b/UICatalog/Scenarios/Clipping.cs @@ -1,11 +1,12 @@ -using Terminal.Gui; +using System.Collections.Generic; +using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Clipping", "Used to test that things clip correctly")] -[Scenario.ScenarioCategory ("Tests")] -[Scenario.ScenarioCategory ("Drawing")] -[Scenario.ScenarioCategory ("Scrolling")] +[ScenarioMetadata ("Clipping", "Used to test that things clip correctly")] +[ScenarioCategory ("Tests")] +[ScenarioCategory ("Drawing")] +[ScenarioCategory ("Scrolling")] public class Clipping : Scenario { public override void Main () @@ -82,4 +83,31 @@ public class Clipping : Scenario win.Dispose (); Application.Shutdown (); } + + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + for (int i = 0; i < 25; i++) + { + keys.Add (Key.CursorDown); + } + + for (int i = 0; i < 25; i++) + { + keys.Add (Key.CursorRight); + } + + for (int i = 0; i < 25; i++) + { + keys.Add (Key.CursorLeft); + } + + for (int i = 0; i < 25; i++) + { + keys.Add (Key.CursorUp); + } + + return keys; + } } diff --git a/UICatalog/Scenarios/CollectionNavigatorTester.cs b/UICatalog/Scenarios/CollectionNavigatorTester.cs index 5b0f79d0d..650e5e180 100644 --- a/UICatalog/Scenarios/CollectionNavigatorTester.cs +++ b/UICatalog/Scenarios/CollectionNavigatorTester.cs @@ -6,15 +6,15 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ( +[ScenarioMetadata ( "Collection Navigator", "Demonstrates keyboard navigation in ListView & TreeView (CollectionNavigator)." )] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("ListView")] -[Scenario.ScenarioCategory ("TreeView")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("ListView")] +[ScenarioCategory ("TreeView")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Mouse and Keyboard")] public class CollectionNavigatorTester : Scenario { private ObservableCollection _items = new ObservableCollection (new ObservableCollection () diff --git a/UICatalog/Scenarios/ColorPicker.cs b/UICatalog/Scenarios/ColorPicker.cs index 962a3171f..cd0789d60 100644 --- a/UICatalog/Scenarios/ColorPicker.cs +++ b/UICatalog/Scenarios/ColorPicker.cs @@ -1,11 +1,12 @@ using System; +using System.Collections.Generic; using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Color Picker", "Color Picker.")] -[Scenario.ScenarioCategory ("Colors")] -[Scenario.ScenarioCategory ("Controls")] +[ScenarioMetadata ("ColorPicker", "Color Picker.")] +[ScenarioCategory ("Colors")] +[ScenarioCategory ("Controls")] public class ColorPickers : Scenario { /// Background color Label. @@ -270,4 +271,40 @@ public class ColorPickers : Scenario ) }; } + + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + keys.Add (Key.B.WithAlt); + + for (int i = 0; i < 200; i++) + { + keys.Add (Key.CursorRight); + } + + keys.Add (Key.Tab); + keys.Add (Key.Tab); + + for (int i = 0; i < 200; i++) + { + keys.Add (Key.CursorLeft); + } + + keys.Add (Key.Tab); + keys.Add (Key.Tab); + + for (int i = 0; i < 200; i++) + { + keys.Add (Key.CursorLeft); + } + + keys.Add (Key.N.WithAlt); + keys.Add (Key.R.WithAlt); + keys.Add (Key.H.WithAlt); + keys.Add (Key.S.WithAlt); + keys.Add (Key.D1.WithAlt); + + return keys; + } } diff --git a/UICatalog/Scenarios/CombiningMarks.cs b/UICatalog/Scenarios/CombiningMarks.cs index 40dabace1..51a467a33 100644 --- a/UICatalog/Scenarios/CombiningMarks.cs +++ b/UICatalog/Scenarios/CombiningMarks.cs @@ -2,8 +2,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Combining Marks", "Illustrates how Unicode Combining Marks work (or don't).")] -[Scenario.ScenarioCategory ("Text and Formatting")] +[ScenarioMetadata ("Combining Marks", "Illustrates how Unicode Combining Marks work (or don't).")] +[ScenarioCategory ("Text and Formatting")] public class CombiningMarks : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/ComboBoxIteration.cs b/UICatalog/Scenarios/ComboBoxIteration.cs index 23ec180dd..a0201daf6 100644 --- a/UICatalog/Scenarios/ComboBoxIteration.cs +++ b/UICatalog/Scenarios/ComboBoxIteration.cs @@ -4,9 +4,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ComboBoxIteration", "ComboBox iteration.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("ComboBox")] +[ScenarioMetadata ("ComboBoxIteration", "ComboBox iteration.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("ComboBox")] public class ComboBoxIteration : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/ComputedLayout.cs b/UICatalog/Scenarios/ComputedLayout.cs index 630417d18..c27eabdb3 100644 --- a/UICatalog/Scenarios/ComputedLayout.cs +++ b/UICatalog/Scenarios/ComputedLayout.cs @@ -9,8 +9,8 @@ namespace UICatalog.Scenarios; /// /// This Scenario demonstrates how to use Terminal.Gui's Dim and Pos Layout System. /// -[Scenario.ScenarioMetadata ("Computed Layout", "Demonstrates the Computed (Dim and Pos) Layout System.")] -[Scenario.ScenarioCategory ("Layout")] +[ScenarioMetadata ("Computed Layout", "Demonstrates the Computed (Dim and Pos) Layout System.")] +[ScenarioCategory ("Layout")] public class ComputedLayout : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/ConfigurationEditor.cs b/UICatalog/Scenarios/ConfigurationEditor.cs index 37eaedc09..5f40f51dd 100644 --- a/UICatalog/Scenarios/ConfigurationEditor.cs +++ b/UICatalog/Scenarios/ConfigurationEditor.cs @@ -6,11 +6,11 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Configuration Editor", "Edits Terminal.Gui Config Files.")] -[Scenario.ScenarioCategory ("TabView")] -[Scenario.ScenarioCategory ("Colors")] -[Scenario.ScenarioCategory ("Files and IO")] -[Scenario.ScenarioCategory ("TextView")] +[ScenarioMetadata ("Configuration Editor", "Edits Terminal.Gui Config Files.")] +[ScenarioCategory ("TabView")] +[ScenarioCategory ("Colors")] +[ScenarioCategory ("Files and IO")] +[ScenarioCategory ("TextView")] public class ConfigurationEditor : Scenario { private static ColorScheme _editorColorScheme = new () diff --git a/UICatalog/Scenarios/ContentScrolling.cs b/UICatalog/Scenarios/ContentScrolling.cs index bbe672693..82f161f32 100644 --- a/UICatalog/Scenarios/ContentScrolling.cs +++ b/UICatalog/Scenarios/ContentScrolling.cs @@ -5,10 +5,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Content Scrolling", "Demonstrates using View.Viewport and View.GetContentSize () to scroll content.")] -[Scenario.ScenarioCategory ("Layout")] -[Scenario.ScenarioCategory ("Drawing")] -[Scenario.ScenarioCategory ("Scrolling")] +[ScenarioMetadata ("Content Scrolling", "Demonstrates using View.Viewport and View.GetContentSize () to scroll content.")] +[ScenarioCategory ("Layout")] +[ScenarioCategory ("Drawing")] +[ScenarioCategory ("Scrolling")] public class ContentScrolling : Scenario { private ViewDiagnosticFlags _diagnosticFlags; @@ -425,4 +425,31 @@ public class ContentScrolling : Scenario app.Dispose (); Application.Shutdown (); } + + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + for (int i = 0; i < 50; i++) + { + keys.Add (Key.CursorRight); + } + + for (int i = 0; i < 25; i++) + { + keys.Add (Key.CursorLeft); + } + + for (int i = 0; i < 50; i++) + { + keys.Add (Key.CursorDown); + } + + for (int i = 0; i < 25; i++) + { + keys.Add (Key.CursorUp); + } + + return keys; + } } diff --git a/UICatalog/Scenarios/ContextMenus.cs b/UICatalog/Scenarios/ContextMenus.cs index 1961406d0..f609f3562 100644 --- a/UICatalog/Scenarios/ContextMenus.cs +++ b/UICatalog/Scenarios/ContextMenus.cs @@ -5,11 +5,11 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ContextMenus", "Context Menu Sample.")] -[Scenario.ScenarioCategory ("Menus")] +[ScenarioMetadata ("ContextMenus", "Context Menu Sample.")] +[ScenarioCategory ("Menus")] public class ContextMenus : Scenario { - private readonly List _cultureInfos = Application.SupportedCultures; + private List _cultureInfos = null; private ContextMenu _contextMenu = new (); private bool _forceMinimumPosToZero = true; private MenuItem _miForceMinimumPosToZero; @@ -22,6 +22,7 @@ public class ContextMenus : Scenario // Init Application.Init (); + _cultureInfos = Application.SupportedCultures; // Setup - Create a top-level application window and configure it. Window appWindow = new () { @@ -110,6 +111,11 @@ public class ContextMenus : Scenario List supportedCultures = new (); int index = -1; + if (_cultureInfos == null) + { + return supportedCultures.ToArray (); + } + foreach (CultureInfo c in _cultureInfos) { var culture = new MenuItem { CheckType = MenuItemCheckStyle.Checked }; @@ -283,4 +289,43 @@ public class ContextMenus : Scenario _contextMenu.Show (menuItems); } + + + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + keys.Add (Key.F10.WithShift); + keys.Add (Key.Esc); + + keys.Add (Key.Space.WithCtrl); + keys.Add (Key.CursorDown); + keys.Add (Key.Enter); + + keys.Add (Key.F10.WithShift); + keys.Add (Key.Esc); + + keys.Add (Key.Tab); + + keys.Add (Key.Space.WithCtrl); + keys.Add (Key.CursorDown); + keys.Add (Key.CursorDown); + keys.Add (Key.Enter); + + keys.Add (Key.F10.WithShift); + keys.Add (Key.Esc); + + keys.Add (Key.Tab); + + keys.Add (Key.Space.WithCtrl); + keys.Add (Key.CursorDown); + keys.Add (Key.CursorDown); + keys.Add (Key.CursorDown); + keys.Add (Key.Enter); + + keys.Add (Key.F10.WithShift); + keys.Add (Key.Esc); + + return keys; + } } diff --git a/UICatalog/Scenarios/CsvEditor.cs b/UICatalog/Scenarios/CsvEditor.cs index 272cf3921..012b4afcc 100644 --- a/UICatalog/Scenarios/CsvEditor.cs +++ b/UICatalog/Scenarios/CsvEditor.cs @@ -9,15 +9,15 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Csv Editor", "Open and edit simple CSV files using the TableView class.")] -[Scenario.ScenarioCategory ("TableView")] -[Scenario.ScenarioCategory ("TextView")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Dialogs")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Dialogs")] -[Scenario.ScenarioCategory ("Arrangement")] -[Scenario.ScenarioCategory ("Files and IO")] +[ScenarioMetadata ("Csv Editor", "Open and edit simple CSV files using the TableView class.")] +[ScenarioCategory ("TableView")] +[ScenarioCategory ("TextView")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Dialogs")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Dialogs")] +[ScenarioCategory ("Arrangement")] +[ScenarioCategory ("Files and IO")] public class CsvEditor : Scenario { private string _currentFile; diff --git a/UICatalog/Scenarios/DatePickers.cs b/UICatalog/Scenarios/DatePickers.cs index 7828740bc..0028b80ca 100644 --- a/UICatalog/Scenarios/DatePickers.cs +++ b/UICatalog/Scenarios/DatePickers.cs @@ -2,9 +2,9 @@ namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Date Picker", "Demonstrates how to use DatePicker class")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("DateTime")] +[ScenarioMetadata ("Date Picker", "Demonstrates how to use DatePicker class")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("DateTime")] public class DatePickers : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Dialogs.cs b/UICatalog/Scenarios/Dialogs.cs index 48f28082c..7e39c3aa6 100644 --- a/UICatalog/Scenarios/Dialogs.cs +++ b/UICatalog/Scenarios/Dialogs.cs @@ -5,8 +5,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Dialogs", "Demonstrates how to the Dialog class")] -[Scenario.ScenarioCategory ("Dialogs")] +[ScenarioMetadata ("Dialogs", "Demonstrates how to the Dialog class")] +[ScenarioCategory ("Dialogs")] public class Dialogs : Scenario { private static readonly int CODE_POINT = '你'; // We know this is a wide char @@ -353,4 +353,57 @@ public class Dialogs : Scenario return dialog; } + + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + keys.Add (Key.D6); + keys.Add (Key.D5); + + keys.Add (Key.Tab); + keys.Add (Key.D2); + keys.Add (Key.D0); + + keys.Add (Key.Enter); + for (int i = 0; i < 5; i++) + { + keys.Add (Key.A); + } + keys.Add (Key.Enter); + + keys.Add (Key.S.WithAlt); + keys.Add (Key.Enter); + for (int i = 0; i < 5; i++) + { + keys.Add (Key.A); + } + keys.Add (Key.Enter); + + keys.Add (Key.E.WithAlt); + keys.Add (Key.Enter); + for (int i = 0; i < 5; i++) + { + keys.Add (Key.A); + } + keys.Add (Key.Enter); + + keys.Add (Key.C.WithAlt); + keys.Add (Key.Enter); + for (int i = 0; i < 5; i++) + { + keys.Add (Key.A); + } + keys.Add (Key.Enter); + + keys.Add (Key.F.WithAlt); + keys.Add (Key.Enter); + for (int i = 0; i < 5; i++) + { + keys.Add (Key.A); + } + keys.Add (Key.Enter); + + return keys; + } } diff --git a/UICatalog/Scenarios/DimAutoDemo.cs b/UICatalog/Scenarios/DimAutoDemo.cs index 17582c842..9f5cf3fa9 100644 --- a/UICatalog/Scenarios/DimAutoDemo.cs +++ b/UICatalog/Scenarios/DimAutoDemo.cs @@ -4,8 +4,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("DimAuto", "Demonstrates Dim.Auto")] -[Scenario.ScenarioCategory ("Layout")] +[ScenarioMetadata ("DimAuto", "Demonstrates Dim.Auto")] +[ScenarioCategory ("Layout")] public class DimAutoDemo : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/DynamicMenuBar.cs b/UICatalog/Scenarios/DynamicMenuBar.cs index d8c28ba96..ec93af65d 100644 --- a/UICatalog/Scenarios/DynamicMenuBar.cs +++ b/UICatalog/Scenarios/DynamicMenuBar.cs @@ -8,9 +8,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Dynamic MenuBar", "Demonstrates how to change a MenuBar dynamically.")] -[Scenario.ScenarioCategory ("Arrangement")] -[Scenario.ScenarioCategory ("Menus")] +[ScenarioMetadata ("Dynamic MenuBar", "Demonstrates how to change a MenuBar dynamically.")] +[ScenarioCategory ("Arrangement")] +[ScenarioCategory ("Menus")] public class DynamicMenuBar : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/DynamicStatusBar.cs b/UICatalog/Scenarios/DynamicStatusBar.cs index 25a145828..0f06630ad 100644 --- a/UICatalog/Scenarios/DynamicStatusBar.cs +++ b/UICatalog/Scenarios/DynamicStatusBar.cs @@ -9,8 +9,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Dynamic StatusBar", "Demonstrates how to add and remove a StatusBar and change items dynamically.")] -[Scenario.ScenarioCategory ("Arrangement")] +[ScenarioMetadata ("Dynamic StatusBar", "Demonstrates how to add and remove a StatusBar and change items dynamically.")] +[ScenarioCategory ("Arrangement")] public class DynamicStatusBar : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Editor.cs b/UICatalog/Scenarios/Editor.cs index 9ae4315af..f2c732d5d 100644 --- a/UICatalog/Scenarios/Editor.cs +++ b/UICatalog/Scenarios/Editor.cs @@ -12,14 +12,14 @@ using static UICatalog.Scenarios.DynamicMenuBar; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Editor", "A Text Editor using the TextView control.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Dialogs")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Arrangement")] -[Scenario.ScenarioCategory ("Files and IO")] -[Scenario.ScenarioCategory ("TextView")] -[Scenario.ScenarioCategory ("Menus")] +[ScenarioMetadata ("Editor", "A Text Editor using the TextView control.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Dialogs")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Arrangement")] +[ScenarioCategory ("Files and IO")] +[ScenarioCategory ("TextView")] +[ScenarioCategory ("Menus")] public class Editor : Scenario { private Window _appWindow; diff --git a/UICatalog/Scenarios/FileDialogExamples.cs b/UICatalog/Scenarios/FileDialogExamples.cs index 46b7e864c..4fcbbcd2f 100644 --- a/UICatalog/Scenarios/FileDialogExamples.cs +++ b/UICatalog/Scenarios/FileDialogExamples.cs @@ -7,9 +7,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("FileDialog", "Demonstrates how to the FileDialog class")] -[Scenario.ScenarioCategory ("Dialogs")] -[Scenario.ScenarioCategory ("Files and IO")] +[ScenarioMetadata ("FileDialog", "Demonstrates how to the FileDialog class")] +[ScenarioCategory ("Dialogs")] +[ScenarioCategory ("Files and IO")] public class FileDialogExamples : Scenario { private CheckBox _cbAllowMultipleSelection; diff --git a/UICatalog/Scenarios/Generic.cs b/UICatalog/Scenarios/Generic.cs index 9e56448e4..2bf6b96a4 100644 --- a/UICatalog/Scenarios/Generic.cs +++ b/UICatalog/Scenarios/Generic.cs @@ -2,8 +2,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Generic", "Generic sample - A template for creating new Scenarios")] -[Scenario.ScenarioCategory ("Controls")] +[ScenarioMetadata ("Generic", "Generic sample - A template for creating new Scenarios")] +[ScenarioCategory ("Controls")] public sealed class Generic : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/GraphViewExample.cs b/UICatalog/Scenarios/GraphViewExample.cs index b3d677834..8f8f89312 100644 --- a/UICatalog/Scenarios/GraphViewExample.cs +++ b/UICatalog/Scenarios/GraphViewExample.cs @@ -8,9 +8,9 @@ using Application = Terminal.Gui.Application; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Graph View", "Demos the GraphView control.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Drawing")] +[ScenarioMetadata ("Graph View", "Demos the GraphView control.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Drawing")] public class GraphViewExample : Scenario { private readonly Thickness _thickness = new (1, 1, 1, 1); diff --git a/UICatalog/Scenarios/HexEditor.cs b/UICatalog/Scenarios/HexEditor.cs index f54c52548..614bc1944 100644 --- a/UICatalog/Scenarios/HexEditor.cs +++ b/UICatalog/Scenarios/HexEditor.cs @@ -4,12 +4,12 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("HexEditor", "A binary (hex) editor using the HexView control.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Dialogs")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Navigation")] -[Scenario.ScenarioCategory ("Files and IO")] +[ScenarioMetadata ("HexEditor", "A binary (hex) editor using the HexView control.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Dialogs")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Navigation")] +[ScenarioCategory ("Files and IO")] public class HexEditor : Scenario { private string _fileName = "demo.bin"; diff --git a/UICatalog/Scenarios/HotKeys.cs b/UICatalog/Scenarios/HotKeys.cs index 2fd7c35b5..aa0e404e2 100644 --- a/UICatalog/Scenarios/HotKeys.cs +++ b/UICatalog/Scenarios/HotKeys.cs @@ -2,9 +2,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("HotKeys", "Demonstrates how HotKeys work.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] +[ScenarioMetadata ("HotKeys", "Demonstrates how HotKeys work.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Mouse and Keyboard")] public class HotKeys : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Images.cs b/UICatalog/Scenarios/Images.cs index 506e28a3a..1e0ab4620 100644 --- a/UICatalog/Scenarios/Images.cs +++ b/UICatalog/Scenarios/Images.cs @@ -10,9 +10,9 @@ using Color = Terminal.Gui.Color; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Images", "Demonstration of how to render an image with/without true color support.")] -[Scenario.ScenarioCategory ("Colors")] -[Scenario.ScenarioCategory ("Drawing")] +[ScenarioMetadata ("Images", "Demonstration of how to render an image with/without true color support.")] +[ScenarioCategory ("Colors")] +[ScenarioCategory ("Drawing")] public class Images : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/InteractiveTree.cs b/UICatalog/Scenarios/InteractiveTree.cs index f18a926fc..6cbcd7e76 100644 --- a/UICatalog/Scenarios/InteractiveTree.cs +++ b/UICatalog/Scenarios/InteractiveTree.cs @@ -3,9 +3,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Interactive Tree", "Create nodes and child nodes in TreeView.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("TreeView")] +[ScenarioMetadata ("Interactive Tree", "Create nodes and child nodes in TreeView.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("TreeView")] public class InteractiveTree : Scenario { private TreeView _treeView; diff --git a/UICatalog/Scenarios/InvertColors.cs b/UICatalog/Scenarios/InvertColors.cs index f566a18b8..de093909d 100644 --- a/UICatalog/Scenarios/InvertColors.cs +++ b/UICatalog/Scenarios/InvertColors.cs @@ -5,9 +5,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Invert Colors", "Invert the foreground and the background colors.")] -[Scenario.ScenarioCategory ("Colors")] -[Scenario.ScenarioCategory ("Text and Formatting")] +[ScenarioMetadata ("Invert Colors", "Invert the foreground and the background colors.")] +[ScenarioCategory ("Colors")] +[ScenarioCategory ("Text and Formatting")] public class InvertColors : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/KeyBindings.cs b/UICatalog/Scenarios/KeyBindings.cs index 97819f7ff..afb69ec4e 100644 --- a/UICatalog/Scenarios/KeyBindings.cs +++ b/UICatalog/Scenarios/KeyBindings.cs @@ -7,8 +7,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("KeyBindings", "Illustrates the KeyBindings API.")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] +[ScenarioMetadata ("KeyBindings", "Illustrates the KeyBindings API.")] +[ScenarioCategory ("Mouse and Keyboard")] public sealed class KeyBindings : Scenario { private readonly ObservableCollection _focusedBindings = []; diff --git a/UICatalog/Scenarios/Keys.cs b/UICatalog/Scenarios/Keys.cs index 669d2857f..f2796a344 100644 --- a/UICatalog/Scenarios/Keys.cs +++ b/UICatalog/Scenarios/Keys.cs @@ -3,8 +3,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Keys", "Shows keyboard input handling.")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] +[ScenarioMetadata ("Keys", "Shows keyboard input handling.")] +[ScenarioCategory ("Mouse and Keyboard")] public class Keys : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/LineCanvasExperiment.cs b/UICatalog/Scenarios/LineCanvasExperiment.cs index 4e25a56eb..e38175296 100644 --- a/UICatalog/Scenarios/LineCanvasExperiment.cs +++ b/UICatalog/Scenarios/LineCanvasExperiment.cs @@ -2,10 +2,10 @@ namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("LineCanvas Experiments", "Experiments with LineCanvas")] -[Scenario.ScenarioCategory ("Drawing")] -[Scenario.ScenarioCategory ("Adornments")] -[Scenario.ScenarioCategory ("Proof of Concept")] +[ScenarioMetadata ("LineCanvas Experiments", "Experiments with LineCanvas")] +[ScenarioCategory ("Drawing")] +[ScenarioCategory ("Adornments")] +[ScenarioCategory ("Proof of Concept")] public class LineCanvasExperiment : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/LineDrawing.cs b/UICatalog/Scenarios/LineDrawing.cs index afc9dcfd6..d03ac0981 100644 --- a/UICatalog/Scenarios/LineDrawing.cs +++ b/UICatalog/Scenarios/LineDrawing.cs @@ -101,9 +101,9 @@ internal class DrawLineTool : ITool } } -[Scenario.ScenarioMetadata ("Line Drawing", "Demonstrates LineCanvas.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Drawing")] +[ScenarioMetadata ("Line Drawing", "Demonstrates LineCanvas.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Drawing")] public class LineDrawing : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/LineViewExample.cs b/UICatalog/Scenarios/LineViewExample.cs index b33175407..ff3a6b82a 100644 --- a/UICatalog/Scenarios/LineViewExample.cs +++ b/UICatalog/Scenarios/LineViewExample.cs @@ -4,10 +4,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Line View", "Demonstrates drawing lines using the LineView control.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("LineView")] -[Scenario.ScenarioCategory ("Adornments")] +[ScenarioMetadata ("Line View", "Demonstrates drawing lines using the LineView control.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("LineView")] +[ScenarioCategory ("Adornments")] public class LineViewExample : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/ListColumns.cs b/UICatalog/Scenarios/ListColumns.cs index 7e10ae029..a5d2ce5e9 100644 --- a/UICatalog/Scenarios/ListColumns.cs +++ b/UICatalog/Scenarios/ListColumns.cs @@ -6,12 +6,12 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ListColumns", "Implements a columned list via a data table.")] -[Scenario.ScenarioCategory ("TableView")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Dialogs")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Scrolling")] +[ScenarioMetadata ("ListColumns", "Implements a columned list via a data table.")] +[ScenarioCategory ("TableView")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Dialogs")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Scrolling")] public class ListColumns : Scenario { private ColorScheme _alternatingColorScheme; diff --git a/UICatalog/Scenarios/ListViewWithSelection.cs b/UICatalog/Scenarios/ListViewWithSelection.cs index 7f1ae036d..bb05332a8 100644 --- a/UICatalog/Scenarios/ListViewWithSelection.cs +++ b/UICatalog/Scenarios/ListViewWithSelection.cs @@ -10,9 +10,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("List View With Selection", "ListView with columns and selection")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("ListView")] +[ScenarioMetadata ("List View With Selection", "ListView with columns and selection")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("ListView")] public class ListViewWithSelection : Scenario { private CheckBox _allowMarkingCB; diff --git a/UICatalog/Scenarios/ListsAndCombos.cs b/UICatalog/Scenarios/ListsAndCombos.cs index aa62dc297..9b9362830 100644 --- a/UICatalog/Scenarios/ListsAndCombos.cs +++ b/UICatalog/Scenarios/ListsAndCombos.cs @@ -6,10 +6,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ListView & ComboBox", "Demonstrates a ListView populating a ComboBox that acts as a filter.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("ListView")] -[Scenario.ScenarioCategory ("ComboBox")] +[ScenarioMetadata ("ListView & ComboBox", "Demonstrates a ListView populating a ComboBox that acts as a filter.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("ListView")] +[ScenarioCategory ("ComboBox")] public class ListsAndCombos : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Localization.cs b/UICatalog/Scenarios/Localization.cs index 390736391..f28750a0d 100644 --- a/UICatalog/Scenarios/Localization.cs +++ b/UICatalog/Scenarios/Localization.cs @@ -6,9 +6,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Localization", "Test for localization resources.")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Tests")] +[ScenarioMetadata ("Localization", "Test for localization resources.")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Tests")] public class Localization : Scenario { private CheckBox _allowAnyCheckBox; diff --git a/UICatalog/Scenarios/MenuBarScenario.cs b/UICatalog/Scenarios/MenuBarScenario.cs index 1330f64f9..7db638647 100644 --- a/UICatalog/Scenarios/MenuBarScenario.cs +++ b/UICatalog/Scenarios/MenuBarScenario.cs @@ -4,9 +4,9 @@ using static System.Runtime.InteropServices.JavaScript.JSType; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("MenuBar", "Demonstrates the MenuBar using the demo menu.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Menus")] +[ScenarioMetadata ("MenuBar", "Demonstrates the MenuBar using the demo menu.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Menus")] public class MenuBarScenario : Scenario { private Label _currentMenuBarItem; diff --git a/UICatalog/Scenarios/MessageBoxes.cs b/UICatalog/Scenarios/MessageBoxes.cs index 01929f51b..0e6db7c16 100644 --- a/UICatalog/Scenarios/MessageBoxes.cs +++ b/UICatalog/Scenarios/MessageBoxes.cs @@ -1,12 +1,13 @@ using System; using System.Collections.Generic; +using System.Linq; using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("MessageBoxes", "Demonstrates how to use the MessageBox class.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Dialogs")] +[ScenarioMetadata ("MessageBoxes", "Demonstrates how to use the MessageBox class.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Dialogs")] public class MessageBoxes : Scenario { public override void Main () @@ -287,4 +288,59 @@ public class MessageBoxes : Scenario Application.Shutdown (); } + + + public override List GetDemoKeyStrokes () + { + var keys = new List (); + + keys.Add (Key.S.WithAlt); + keys.Add (Key.Esc); + + keys.Add (Key.E.WithAlt); + keys.Add (Key.S.WithAlt); + keys.Add (Key.Esc); + + keys.Add (Key.N.WithAlt); + keys.Add (Key.D5); + keys.Add (Key.S.WithAlt); + keys.Add (Key.Enter); + + keys.Add (Key.T.WithAlt); + keys.Add (Key.T.WithCtrl); + keys.AddRange (GetKeysFromText ("This is a really long title")); + keys.Add (Key.M.WithAlt); + keys.Add (Key.T.WithCtrl); + keys.AddRange (GetKeysFromText ("This is a long,\nmulti-line message.\nThis is a test of the emergency\nbroadcast\nsystem.")); + keys.Add (Key.S.WithAlt); + + for (int i = 0; i < 10; i++) + { + keys.Add (Key.Tab); + } + keys.Add (Key.Enter); + + keys.Add (Key.W.WithAlt); + keys.Add (Key.S.WithAlt); + + for (int i = 0; i < 10; i++) + { + keys.Add (Key.Tab); + } + keys.Add (Key.Enter); + + return keys; + } + + List GetKeysFromText (string text) + { + List keys = new (); + + foreach (var r in text) + { + keys.Add (r); + } + + return keys; + } } diff --git a/UICatalog/Scenarios/Mouse.cs b/UICatalog/Scenarios/Mouse.cs index 28536cbbe..dd1a08789 100644 --- a/UICatalog/Scenarios/Mouse.cs +++ b/UICatalog/Scenarios/Mouse.cs @@ -6,8 +6,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Mouse", "Demonstrates how to capture mouse events")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] +[ScenarioMetadata ("Mouse", "Demonstrates how to capture mouse events")] +[ScenarioCategory ("Mouse and Keyboard")] public class Mouse : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/MultiColouredTable.cs b/UICatalog/Scenarios/MultiColouredTable.cs index be5a176f6..6f10e65cd 100644 --- a/UICatalog/Scenarios/MultiColouredTable.cs +++ b/UICatalog/Scenarios/MultiColouredTable.cs @@ -5,10 +5,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("MultiColouredTable", "Demonstrates how to multi color cell contents.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Colors")] -[Scenario.ScenarioCategory ("TableView")] +[ScenarioMetadata ("MultiColouredTable", "Demonstrates how to multi color cell contents.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Colors")] +[ScenarioCategory ("TableView")] public class MultiColouredTable : Scenario { private DataTable _table; diff --git a/UICatalog/Scenarios/Navigation.cs b/UICatalog/Scenarios/Navigation.cs index f0fda55fe..28649e652 100644 --- a/UICatalog/Scenarios/Navigation.cs +++ b/UICatalog/Scenarios/Navigation.cs @@ -3,10 +3,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Navigation", "Navigation Tester")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] -[Scenario.ScenarioCategory ("Layout")] -[Scenario.ScenarioCategory ("Navigation")] +[ScenarioMetadata ("Navigation", "Navigation Tester")] +[ScenarioCategory ("Mouse and Keyboard")] +[ScenarioCategory ("Layout")] +[ScenarioCategory ("Navigation")] public class Navigation : Scenario { private int _hotkeyCount; diff --git a/UICatalog/Scenarios/Notepad.cs b/UICatalog/Scenarios/Notepad.cs index 47de5298d..ac0e78c19 100644 --- a/UICatalog/Scenarios/Notepad.cs +++ b/UICatalog/Scenarios/Notepad.cs @@ -4,10 +4,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Notepad", "Multi-tab text editor using the TabView control.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("TabView")] -[Scenario.ScenarioCategory ("TextView")] +[ScenarioMetadata ("Notepad", "Multi-tab text editor using the TabView control.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("TabView")] +[ScenarioCategory ("TextView")] public class Notepad : Scenario { private TabView _focusedTabView; diff --git a/UICatalog/Scenarios/NumericUpDownDemo.cs b/UICatalog/Scenarios/NumericUpDownDemo.cs index 910720f8d..dda4105e9 100644 --- a/UICatalog/Scenarios/NumericUpDownDemo.cs +++ b/UICatalog/Scenarios/NumericUpDownDemo.cs @@ -4,8 +4,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("NumericUpDown", "Demonstrates the NumericUpDown View")] -[Scenario.ScenarioCategory ("Controls")] +[ScenarioMetadata ("NumericUpDown", "Demonstrates the NumericUpDown View")] +[ScenarioCategory ("Controls")] public class NumericUpDownDemo : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/PosAlignDemo.cs b/UICatalog/Scenarios/PosAlignDemo.cs index 7e9e10129..69f8de760 100644 --- a/UICatalog/Scenarios/PosAlignDemo.cs +++ b/UICatalog/Scenarios/PosAlignDemo.cs @@ -5,8 +5,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Pos.Align", "Demonstrates Pos.Align")] -[Scenario.ScenarioCategory ("Layout")] +[ScenarioMetadata ("Pos.Align", "Demonstrates Pos.Align")] +[ScenarioCategory ("Layout")] public sealed class PosAlignDemo : Scenario { private readonly Aligner _horizAligner = new () { AlignmentModes = AlignmentModes.StartToEnd | AlignmentModes.AddSpaceBetweenItems}; diff --git a/UICatalog/Scenarios/ProcessTable.cs b/UICatalog/Scenarios/ProcessTable.cs index 216249dc6..3349208b3 100644 --- a/UICatalog/Scenarios/ProcessTable.cs +++ b/UICatalog/Scenarios/ProcessTable.cs @@ -5,8 +5,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ProcessTable", "Demonstrates TableView with the currently running processes.")] -[Scenario.ScenarioCategory ("TableView")] +[ScenarioMetadata ("ProcessTable", "Demonstrates TableView with the currently running processes.")] +[ScenarioCategory ("TableView")] public class ProcessTable : Scenario { private TableView tableView; diff --git a/UICatalog/Scenarios/Progress.cs b/UICatalog/Scenarios/Progress.cs index 40e0e8a32..c87fc47a3 100644 --- a/UICatalog/Scenarios/Progress.cs +++ b/UICatalog/Scenarios/Progress.cs @@ -9,10 +9,10 @@ namespace UICatalog.Scenarios; // // This would be a great scenario to show of threading (Issue #471) // -[Scenario.ScenarioMetadata ("Progress", "Shows off ProgressBar and Threading.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Threading")] -[Scenario.ScenarioCategory ("Progress")] +[ScenarioMetadata ("Progress", "Shows off ProgressBar and Threading.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Threading")] +[ScenarioCategory ("Progress")] public class Progress : Scenario { private Window win; diff --git a/UICatalog/Scenarios/ProgressBarStyles.cs b/UICatalog/Scenarios/ProgressBarStyles.cs index 2a7661572..bbb44a6eb 100644 --- a/UICatalog/Scenarios/ProgressBarStyles.cs +++ b/UICatalog/Scenarios/ProgressBarStyles.cs @@ -9,10 +9,10 @@ using static UICatalog.Scenarios.Adornments; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ProgressBar Styles", "Shows the ProgressBar Styles.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Progress")] -[Scenario.ScenarioCategory ("Threading")] +[ScenarioMetadata ("ProgressBar Styles", "Shows the ProgressBar Styles.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Progress")] +[ScenarioCategory ("Threading")] // TODO: Add enable/disable to show that that is working // TODO: Clean up how FramesEditor works diff --git a/UICatalog/Scenarios/RunTExample.cs b/UICatalog/Scenarios/RunTExample.cs index 5d3cade79..de63b1247 100644 --- a/UICatalog/Scenarios/RunTExample.cs +++ b/UICatalog/Scenarios/RunTExample.cs @@ -2,8 +2,8 @@ namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Run Example", "Illustrates using Application.Run to run a custom class")] -[Scenario.ScenarioCategory ("Runnable")] +[ScenarioMetadata ("Run Example", "Illustrates using Application.Run to run a custom class")] +[ScenarioCategory ("Runnable")] public class RunTExample : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/RuneWidthGreaterThanOne.cs b/UICatalog/Scenarios/RuneWidthGreaterThanOne.cs index 0e5b1a3b5..ed2e34a11 100644 --- a/UICatalog/Scenarios/RuneWidthGreaterThanOne.cs +++ b/UICatalog/Scenarios/RuneWidthGreaterThanOne.cs @@ -3,10 +3,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("RuneWidthGreaterThanOne", "Test rune width greater than one")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Tests")] +[ScenarioMetadata ("RuneWidthGreaterThanOne", "Test rune width greater than one")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Tests")] public class RuneWidthGreaterThanOne : Scenario { private Button _button; diff --git a/UICatalog/Scenarios/Scrolling.cs b/UICatalog/Scenarios/Scrolling.cs index ac72981c0..8d7cdac00 100644 --- a/UICatalog/Scenarios/Scrolling.cs +++ b/UICatalog/Scenarios/Scrolling.cs @@ -3,10 +3,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Scrolling", "Demonstrates scrolling etc...")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Scrolling")] -[Scenario.ScenarioCategory ("Tests")] +[ScenarioMetadata ("Scrolling", "Demonstrates scrolling etc...")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Scrolling")] +[ScenarioCategory ("Tests")] public class Scrolling : Scenario { private ViewDiagnosticFlags _diagnosticFlags; diff --git a/UICatalog/Scenarios/SendKeys.cs b/UICatalog/Scenarios/SendKeys.cs index 7ff72975e..e2989b94e 100644 --- a/UICatalog/Scenarios/SendKeys.cs +++ b/UICatalog/Scenarios/SendKeys.cs @@ -3,8 +3,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("SendKeys", "SendKeys sample - Send key combinations.")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] +[ScenarioMetadata ("SendKeys", "SendKeys sample - Send key combinations.")] +[ScenarioCategory ("Mouse and Keyboard")] public class SendKeys : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/ShadowStyles.cs b/UICatalog/Scenarios/ShadowStyles.cs index c5f0990fe..9f17d7d68 100644 --- a/UICatalog/Scenarios/ShadowStyles.cs +++ b/UICatalog/Scenarios/ShadowStyles.cs @@ -7,9 +7,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("ShadowStyles Demo", "Demonstrates ShadowStyles Effects.")] -[Scenario.ScenarioCategory ("Layout")] -[Scenario.ScenarioCategory ("Adornments")] +[ScenarioMetadata ("ShadowStyles Demo", "Demonstrates ShadowStyles Effects.")] +[ScenarioCategory ("Layout")] +[ScenarioCategory ("Adornments")] public class ShadowStyles : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Shortcuts.cs b/UICatalog/Scenarios/Shortcuts.cs index cbc91cb0b..cdc7e2269 100644 --- a/UICatalog/Scenarios/Shortcuts.cs +++ b/UICatalog/Scenarios/Shortcuts.cs @@ -11,8 +11,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Shortcuts", "Illustrates Shortcut class.")] -[Scenario.ScenarioCategory ("Controls")] +[ScenarioMetadata ("Shortcuts", "Illustrates Shortcut class.")] +[ScenarioCategory ("Controls")] public class Shortcuts : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/SingleBackgroundWorker.cs b/UICatalog/Scenarios/SingleBackgroundWorker.cs index 38ff0e916..1650628e0 100644 --- a/UICatalog/Scenarios/SingleBackgroundWorker.cs +++ b/UICatalog/Scenarios/SingleBackgroundWorker.cs @@ -7,10 +7,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Single BackgroundWorker", "A single BackgroundWorker threading opening another Toplevel")] -[Scenario.ScenarioCategory ("Threading")] -[Scenario.ScenarioCategory ("Arrangement")] -[Scenario.ScenarioCategory ("Runnable")] +[ScenarioMetadata ("Single BackgroundWorker", "A single BackgroundWorker threading opening another Toplevel")] +[ScenarioCategory ("Threading")] +[ScenarioCategory ("Arrangement")] +[ScenarioCategory ("Runnable")] public class SingleBackgroundWorker : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Sliders.cs b/UICatalog/Scenarios/Sliders.cs index a1abdbba6..7645d1753 100644 --- a/UICatalog/Scenarios/Sliders.cs +++ b/UICatalog/Scenarios/Sliders.cs @@ -8,8 +8,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Sliders", "Demonstrates the Slider view.")] -[Scenario.ScenarioCategory ("Controls")] +[ScenarioMetadata ("Sliders", "Demonstrates the Slider view.")] +[ScenarioCategory ("Controls")] public class Sliders : Scenario { public void MakeSliders (View v, List options) diff --git a/UICatalog/Scenarios/Snake.cs b/UICatalog/Scenarios/Snake.cs index 279ab4eda..63917b040 100644 --- a/UICatalog/Scenarios/Snake.cs +++ b/UICatalog/Scenarios/Snake.cs @@ -8,9 +8,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Snake", "The game of apple eating.")] -[Scenario.ScenarioCategory ("Colors")] -[Scenario.ScenarioCategory ("Drawing")] +[ScenarioMetadata ("Snake", "The game of apple eating.")] +[ScenarioCategory ("Colors")] +[ScenarioCategory ("Drawing")] public class Snake : Scenario { private bool isDisposed; diff --git a/UICatalog/Scenarios/SpinnerStyles.cs b/UICatalog/Scenarios/SpinnerStyles.cs index 6fa590373..294d47491 100644 --- a/UICatalog/Scenarios/SpinnerStyles.cs +++ b/UICatalog/Scenarios/SpinnerStyles.cs @@ -6,9 +6,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("SpinnerView Styles", "Shows the SpinnerView Styles.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Progress")] +[ScenarioMetadata ("SpinnerView Styles", "Shows the SpinnerView Styles.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Progress")] public class SpinnerViewStyles : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/SyntaxHighlighting.cs b/UICatalog/Scenarios/SyntaxHighlighting.cs index abe567261..0803360f8 100644 --- a/UICatalog/Scenarios/SyntaxHighlighting.cs +++ b/UICatalog/Scenarios/SyntaxHighlighting.cs @@ -11,10 +11,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Syntax Highlighting", "Text editor with keyword highlighting using the TextView control.")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("TextView")] +[ScenarioMetadata ("Syntax Highlighting", "Text editor with keyword highlighting using the TextView control.")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("TextView")] public class SyntaxHighlighting : Scenario { private readonly HashSet _keywords = new (StringComparer.CurrentCultureIgnoreCase) diff --git a/UICatalog/Scenarios/TabViewExample.cs b/UICatalog/Scenarios/TabViewExample.cs index e35688131..9d48c0568 100644 --- a/UICatalog/Scenarios/TabViewExample.cs +++ b/UICatalog/Scenarios/TabViewExample.cs @@ -4,9 +4,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Tab View", "Demos TabView control with limited screen space in Absolute layout.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("TabView")] +[ScenarioMetadata ("Tab View", "Demos TabView control with limited screen space in Absolute layout.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("TabView")] public class TabViewExample : Scenario { private MenuItem _miShowBorder; diff --git a/UICatalog/Scenarios/TableEditor.cs b/UICatalog/Scenarios/TableEditor.cs index ebbb4cec3..7d18edc25 100644 --- a/UICatalog/Scenarios/TableEditor.cs +++ b/UICatalog/Scenarios/TableEditor.cs @@ -9,11 +9,11 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("TableEditor", "Implements data table editor using the TableView control.")] -[Scenario.ScenarioCategory ("TableView")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Dialogs")] -[Scenario.ScenarioCategory ("Text and Formatting")] +[ScenarioMetadata ("TableEditor", "Implements data table editor using the TableView control.")] +[ScenarioCategory ("TableView")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Dialogs")] +[ScenarioCategory ("Text and Formatting")] public class TableEditor : Scenario { private readonly HashSet _checkedFileSystemInfos = new (); diff --git a/UICatalog/Scenarios/Text.cs b/UICatalog/Scenarios/Text.cs index 2fe607274..5e60530a0 100644 --- a/UICatalog/Scenarios/Text.cs +++ b/UICatalog/Scenarios/Text.cs @@ -9,10 +9,10 @@ using Terminal.Gui.TextValidateProviders; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Text Input Controls", "Tests all text input controls")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] -[Scenario.ScenarioCategory ("Text and Formatting")] +[ScenarioMetadata ("Text Input Controls", "Tests all text input controls")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Mouse and Keyboard")] +[ScenarioCategory ("Text and Formatting")] public class Text : Scenario { private Label _labelMirroringTimeField; diff --git a/UICatalog/Scenarios/TextAlignmentAndDirection.cs b/UICatalog/Scenarios/TextAlignmentAndDirection.cs index a337701a1..7f6207268 100644 --- a/UICatalog/Scenarios/TextAlignmentAndDirection.cs +++ b/UICatalog/Scenarios/TextAlignmentAndDirection.cs @@ -6,8 +6,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Text Alignment and Direction", "Demos horizontal and vertical text alignment and direction.")] -[Scenario.ScenarioCategory ("Text and Formatting")] +[ScenarioMetadata ("Text Alignment and Direction", "Demos horizontal and vertical text alignment and direction.")] +[ScenarioCategory ("Text and Formatting")] public class TextAlignmentAndDirection : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/TextEffectsScenario.cs b/UICatalog/Scenarios/TextEffectsScenario.cs index e1dbb80b2..9339ce921 100644 --- a/UICatalog/Scenarios/TextEffectsScenario.cs +++ b/UICatalog/Scenarios/TextEffectsScenario.cs @@ -3,9 +3,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Text Effects", "Text Effects.")] -[Scenario.ScenarioCategory ("Colors")] -[Scenario.ScenarioCategory ("Text and Formatting")] +[ScenarioMetadata ("Text Effects", "Text Effects.")] +[ScenarioCategory ("Colors")] +[ScenarioCategory ("Text and Formatting")] public class TextEffectsScenario : Scenario { private TabView _tabView; diff --git a/UICatalog/Scenarios/TextFormatterDemo.cs b/UICatalog/Scenarios/TextFormatterDemo.cs index 2ce8dbfc2..d24f863cf 100644 --- a/UICatalog/Scenarios/TextFormatterDemo.cs +++ b/UICatalog/Scenarios/TextFormatterDemo.cs @@ -6,8 +6,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("TextFormatter Demo", "Demos and tests the TextFormatter class.")] -[Scenario.ScenarioCategory ("Text and Formatting")] +[ScenarioMetadata ("TextFormatter Demo", "Demos and tests the TextFormatter class.")] +[ScenarioCategory ("Text and Formatting")] public class TextFormatterDemo : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/TextViewAutocompletePopup.cs b/UICatalog/Scenarios/TextViewAutocompletePopup.cs index 8fd3eceb3..4e12c01f6 100644 --- a/UICatalog/Scenarios/TextViewAutocompletePopup.cs +++ b/UICatalog/Scenarios/TextViewAutocompletePopup.cs @@ -4,10 +4,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("TextView Autocomplete Popup", "Shows five TextView Autocomplete Popup effects")] -[Scenario.ScenarioCategory ("TextView")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] +[ScenarioMetadata ("TextView Autocomplete Popup", "Shows five TextView Autocomplete Popup effects")] +[ScenarioCategory ("TextView")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Mouse and Keyboard")] public class TextViewAutocompletePopup : Scenario { private int _height = 10; diff --git a/UICatalog/Scenarios/Threading.cs b/UICatalog/Scenarios/Threading.cs index e96692611..e1b0653f9 100644 --- a/UICatalog/Scenarios/Threading.cs +++ b/UICatalog/Scenarios/Threading.cs @@ -6,8 +6,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Threading", "Demonstration of how to use threading in different ways")] -[Scenario.ScenarioCategory ("Threading")] +[ScenarioMetadata ("Threading", "Demonstration of how to use threading in different ways")] +[ScenarioCategory ("Threading")] public class Threading : Scenario { private readonly ObservableCollection _log = []; diff --git a/UICatalog/Scenarios/TileViewNesting.cs b/UICatalog/Scenarios/TileViewNesting.cs index fd2a89453..3654c2007 100644 --- a/UICatalog/Scenarios/TileViewNesting.cs +++ b/UICatalog/Scenarios/TileViewNesting.cs @@ -3,9 +3,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Tile View Nesting", "Demonstrates recursive nesting of TileViews")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("LineView")] +[ScenarioMetadata ("Tile View Nesting", "Demonstrates recursive nesting of TileViews")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("LineView")] public class TileViewNesting : Scenario { private CheckBox _cbBorder; diff --git a/UICatalog/Scenarios/TimeAndDate.cs b/UICatalog/Scenarios/TimeAndDate.cs index 2a1c1168b..a96d27651 100644 --- a/UICatalog/Scenarios/TimeAndDate.cs +++ b/UICatalog/Scenarios/TimeAndDate.cs @@ -3,9 +3,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Time And Date", "Illustrates TimeField and time & date handling")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("DateTime")] +[ScenarioMetadata ("Time And Date", "Illustrates TimeField and time & date handling")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("DateTime")] public class TimeAndDate : Scenario { private Label _lblDateFmt; diff --git a/UICatalog/Scenarios/TreeUseCases.cs b/UICatalog/Scenarios/TreeUseCases.cs index 3d7ec82c3..57cee729a 100644 --- a/UICatalog/Scenarios/TreeUseCases.cs +++ b/UICatalog/Scenarios/TreeUseCases.cs @@ -4,9 +4,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Tree View", "Simple tree view examples.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("TreeView")] +[ScenarioMetadata ("Tree View", "Simple tree view examples.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("TreeView")] public class TreeUseCases : Scenario { private View _currentTree; diff --git a/UICatalog/Scenarios/TreeViewFileSystem.cs b/UICatalog/Scenarios/TreeViewFileSystem.cs index 183b822ce..6679d2bc7 100644 --- a/UICatalog/Scenarios/TreeViewFileSystem.cs +++ b/UICatalog/Scenarios/TreeViewFileSystem.cs @@ -7,10 +7,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("File System Explorer", "Hierarchical file system explorer demonstrating TreeView.")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("TreeView")] -[Scenario.ScenarioCategory ("Files and IO")] +[ScenarioMetadata ("File System Explorer", "Hierarchical file system explorer demonstrating TreeView.")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("TreeView")] +[ScenarioCategory ("Files and IO")] public class TreeViewFileSystem : Scenario { private readonly FileSystemIconProvider _iconProvider = new (); diff --git a/UICatalog/Scenarios/TrueColors.cs b/UICatalog/Scenarios/TrueColors.cs index d6fbd5cc7..a40114984 100644 --- a/UICatalog/Scenarios/TrueColors.cs +++ b/UICatalog/Scenarios/TrueColors.cs @@ -3,8 +3,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("True Colors", "Demonstration of true color support.")] -[Scenario.ScenarioCategory ("Colors")] +[ScenarioMetadata ("True Colors", "Demonstration of true color support.")] +[ScenarioCategory ("Colors")] public class TrueColors : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Unicode.cs b/UICatalog/Scenarios/Unicode.cs index ccae247bb..156e78e11 100644 --- a/UICatalog/Scenarios/Unicode.cs +++ b/UICatalog/Scenarios/Unicode.cs @@ -5,9 +5,9 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Unicode", "Tries to test Unicode in all controls (#204)")] -[Scenario.ScenarioCategory ("Text and Formatting")] -[Scenario.ScenarioCategory ("Controls")] +[ScenarioMetadata ("Unicode", "Tries to test Unicode in all controls (#204)")] +[ScenarioCategory ("Text and Formatting")] +[ScenarioCategory ("Controls")] public class UnicodeInMenu : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/ViewExperiments.cs b/UICatalog/Scenarios/ViewExperiments.cs index faa7f429f..8126ad6b0 100644 --- a/UICatalog/Scenarios/ViewExperiments.cs +++ b/UICatalog/Scenarios/ViewExperiments.cs @@ -3,11 +3,11 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("View Experiments", "v2 View Experiments")] -[Scenario.ScenarioCategory ("Controls")] -[Scenario.ScenarioCategory ("Adornments")] -[Scenario.ScenarioCategory ("Layout")] -[Scenario.ScenarioCategory ("Proof of Concept")] +[ScenarioMetadata ("View Experiments", "v2 View Experiments")] +[ScenarioCategory ("Controls")] +[ScenarioCategory ("Adornments")] +[ScenarioCategory ("Layout")] +[ScenarioCategory ("Proof of Concept")] public class ViewExperiments : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/VkeyPacketSimulator.cs b/UICatalog/Scenarios/VkeyPacketSimulator.cs index f35f384c2..20d2bcdc8 100644 --- a/UICatalog/Scenarios/VkeyPacketSimulator.cs +++ b/UICatalog/Scenarios/VkeyPacketSimulator.cs @@ -7,8 +7,8 @@ using Terminal.Gui.ConsoleDrivers; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("VkeyPacketSimulator", "Simulates the Virtual Key Packet")] -[Scenario.ScenarioCategory ("Mouse and Keyboard")] +[ScenarioMetadata ("VkeyPacketSimulator", "Simulates the Virtual Key Packet")] +[ScenarioCategory ("Mouse and Keyboard")] public class VkeyPacketSimulator : Scenario { private static readonly ManualResetEventSlim _stopOutput = new (false); diff --git a/UICatalog/Scenarios/WindowsAndFrameViews.cs b/UICatalog/Scenarios/WindowsAndFrameViews.cs index c37f22b6c..1ec370718 100644 --- a/UICatalog/Scenarios/WindowsAndFrameViews.cs +++ b/UICatalog/Scenarios/WindowsAndFrameViews.cs @@ -4,8 +4,8 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Windows & FrameViews", "Stress Tests Windows, sub-Windows, and FrameViews.")] -[Scenario.ScenarioCategory ("Layout")] +[ScenarioMetadata ("Windows & FrameViews", "Stress Tests Windows, sub-Windows, and FrameViews.")] +[ScenarioCategory ("Layout")] public class WindowsAndFrameViews : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/WizardAsView.cs b/UICatalog/Scenarios/WizardAsView.cs index d4c54ba42..1a3e61baa 100644 --- a/UICatalog/Scenarios/WizardAsView.cs +++ b/UICatalog/Scenarios/WizardAsView.cs @@ -2,8 +2,8 @@ namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("WizardAsView", "Shows using the Wizard class in an non-modal way")] -[Scenario.ScenarioCategory ("Wizards")] +[ScenarioMetadata ("WizardAsView", "Shows using the Wizard class in an non-modal way")] +[ScenarioCategory ("Wizards")] public class WizardAsView : Scenario { public override void Main () diff --git a/UICatalog/Scenarios/Wizards.cs b/UICatalog/Scenarios/Wizards.cs index 6c582affa..73b256ae2 100644 --- a/UICatalog/Scenarios/Wizards.cs +++ b/UICatalog/Scenarios/Wizards.cs @@ -4,10 +4,10 @@ using Terminal.Gui; namespace UICatalog.Scenarios; -[Scenario.ScenarioMetadata ("Wizards", "Demonstrates the Wizard class")] -[Scenario.ScenarioCategory ("Dialogs")] -[Scenario.ScenarioCategory ("Wizards")] -[Scenario.ScenarioCategory ("Runnable")] +[ScenarioMetadata ("Wizards", "Demonstrates the Wizard class")] +[ScenarioCategory ("Dialogs")] +[ScenarioCategory ("Wizards")] +[ScenarioCategory ("Runnable")] public class Wizards : Scenario { diff --git a/UICatalog/UICatalog.cs b/UICatalog/UICatalog.cs index 6af90b8e6..67c8b3c18 100644 --- a/UICatalog/UICatalog.cs +++ b/UICatalog/UICatalog.cs @@ -442,7 +442,7 @@ public class UICatalogApp if (maxScenarios == 0) { - break; + // break; } }