Просмотр исходного кода

Fixes #2469 - Revamp file structure and namespace (#2471)

* initial commit

* All tests pass

* Updated readme

* Revert "All tests pass"

This reverts commit 94ac462350194307112d9ae0f32a7846299e3d3a.

* Revert "initial commit"

This reverts commit 36d92cc4e58792d8a2e90f974d2ca8c0463071ff.

* Moved Terminal.Gui files around

* Nuked .Graphs namespace

* Nuked .Graphs namespace

* Nuked .Trees namespace

* Nuked .Configuration namespace

* Nuked .Configuration namespace

* All tests pass

* tweaked tests

* removed unneeded usings

* re-enabled scrollview tests

* move scrollview test to ScrollViewTests

* Moved view navigation related tests to separate cs file

* Moved view scrollbarview related tests ScrollBarTestse

* Refactored View tests into smaller files

* Refactored driver tests

* Fixed a ton of BUGBUGs
Tig 2 лет назад
Родитель
Сommit
574ed8fec7
100 измененных файлов с 85 добавлено и 81 удалено
  1. 1 1
      README.md
  2. 2 2
      Terminal.Gui/Application.cs
  3. 0 2
      Terminal.Gui/ClassDiagram1.cd
  4. 0 0
      Terminal.Gui/Clipboard/Clipboard.cs
  5. 0 0
      Terminal.Gui/Clipboard/ClipboardBase.cs
  6. 0 0
      Terminal.Gui/Clipboard/IClipboard.cs
  7. 2 2
      Terminal.Gui/Configuration/AppScope.cs
  8. 1 1
      Terminal.Gui/Configuration/AttributeJsonConverter.cs
  9. 1 1
      Terminal.Gui/Configuration/ColorJsonConverter.cs
  10. 1 1
      Terminal.Gui/Configuration/ColorSchemeJsonConverter.cs
  11. 2 2
      Terminal.Gui/Configuration/ConfigurationManager.cs
  12. 1 1
      Terminal.Gui/Configuration/ConfigurationManagerEventArgs.cs
  13. 1 1
      Terminal.Gui/Configuration/DictionaryJsonConverter.cs
  14. 1 1
      Terminal.Gui/Configuration/KeyJsonConverter.cs
  15. 2 2
      Terminal.Gui/Configuration/Scope.cs
  16. 1 1
      Terminal.Gui/Configuration/SettingsScope.cs
  17. 2 2
      Terminal.Gui/Configuration/ThemeScope.cs
  18. 4 4
      Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs
  19. 1 1
      Terminal.Gui/Drawing/LineCanvas.cs
  20. 0 2
      Terminal.Gui/Drawing/Ruler.cs
  21. 1 2
      Terminal.Gui/Drawing/Thickness.cs
  22. 0 0
      Terminal.Gui/Drawing/ThicknessEventArgs.cs
  23. 0 0
      Terminal.Gui/Input/Command.cs
  24. 0 0
      Terminal.Gui/Input/ConsoleKeyMapping.cs
  25. 0 0
      Terminal.Gui/Input/EscSeqUtils/EscSeqReq.cs
  26. 0 0
      Terminal.Gui/Input/EscSeqUtils/EscSeqUtils.cs
  27. 0 0
      Terminal.Gui/Input/Event.cs
  28. 0 0
      Terminal.Gui/Input/GrabMouseEventArgs.cs
  29. 0 0
      Terminal.Gui/Input/KeyChangedEventArgs.cs
  30. 0 0
      Terminal.Gui/Input/KeyEventEventArgs.cs
  31. 0 0
      Terminal.Gui/Input/KeystrokeNavigatorEventArgs.cs
  32. 0 0
      Terminal.Gui/Input/MouseEventEventArgs.cs
  33. 0 0
      Terminal.Gui/Input/MouseFlagsChangedEventArgs.cs
  34. 0 0
      Terminal.Gui/Input/PointEventArgs.cs
  35. 0 0
      Terminal.Gui/Input/Responder.cs
  36. 0 0
      Terminal.Gui/Input/ShortcutHelper.cs
  37. 0 0
      Terminal.Gui/MainLoop.cs
  38. 35 14
      Terminal.Gui/README.md
  39. 0 0
      Terminal.Gui/RunStateEventArgs.cs
  40. 0 0
      Terminal.Gui/StackExtensions.cs
  41. 0 0
      Terminal.Gui/Text/Autocomplete/AppendAutocomplete.cs
  42. 0 0
      Terminal.Gui/Text/Autocomplete/Autocomplete.cd
  43. 0 0
      Terminal.Gui/Text/Autocomplete/AutocompleteBase.cs
  44. 0 0
      Terminal.Gui/Text/Autocomplete/AutocompleteContext.cs
  45. 0 0
      Terminal.Gui/Text/Autocomplete/IAutocomplete.cs
  46. 0 0
      Terminal.Gui/Text/Autocomplete/ISuggestionGenerator.cs
  47. 0 0
      Terminal.Gui/Text/Autocomplete/PopupAutocomplete.cs
  48. 0 0
      Terminal.Gui/Text/Autocomplete/SingleWordSuggestionGenerator.cs
  49. 0 0
      Terminal.Gui/Text/Autocomplete/Suggestion.cs
  50. 0 0
      Terminal.Gui/Text/CollectionNavigator.cs
  51. 0 0
      Terminal.Gui/Text/TextFormatter.cs
  52. 0 0
      Terminal.Gui/TimeoutEventArgs.cs
  53. 2 3
      Terminal.Gui/View/Border.cs
  54. 0 1
      Terminal.Gui/View/Frame.cs
  55. 0 0
      Terminal.Gui/View/Layout/PosDim.cs
  56. 0 0
      Terminal.Gui/View/Layout/ResizedEventArgs.cs
  57. 0 0
      Terminal.Gui/View/Layout/SizeChangedEventArgs.cs
  58. 0 0
      Terminal.Gui/View/SuperViewChangedEventArgs.cs
  59. 0 0
      Terminal.Gui/View/TitleEventArgs.cs
  60. 0 0
      Terminal.Gui/View/ToggleEventArgs.cs
  61. 0 0
      Terminal.Gui/View/View.cs
  62. 0 0
      Terminal.Gui/View/ViewEventArgs.cs
  63. 2 2
      Terminal.Gui/Views/Dialog.cs
  64. 0 0
      Terminal.Gui/Views/FileDialog.cs
  65. 1 1
      Terminal.Gui/Views/FrameView.cs
  66. 1 1
      Terminal.Gui/Views/GraphView/Annotations.cs
  67. 1 1
      Terminal.Gui/Views/GraphView/Axis.cs
  68. 1 1
      Terminal.Gui/Views/GraphView/GraphCellToRender.cs
  69. 0 1
      Terminal.Gui/Views/GraphView/GraphView.cs
  70. 1 1
      Terminal.Gui/Views/GraphView/Orientation.cs
  71. 1 1
      Terminal.Gui/Views/GraphView/Series.cs
  72. 0 1
      Terminal.Gui/Views/LineView.cs
  73. 2 2
      Terminal.Gui/Views/MessageBox.cs
  74. 0 0
      Terminal.Gui/Views/ReadOnlyCollectionExtensions.cs
  75. 0 0
      Terminal.Gui/Views/TableView/CellActivatedEventArgs.cs
  76. 0 0
      Terminal.Gui/Views/TableView/SelectedCellChangedEventArgs.cs
  77. 0 0
      Terminal.Gui/Views/TableView/TableView.cs
  78. 0 1
      Terminal.Gui/Views/TextView.cs
  79. 0 1
      Terminal.Gui/Views/TileView.cs
  80. 0 0
      Terminal.Gui/Views/Toplevel.cs
  81. 0 0
      Terminal.Gui/Views/ToplevelEventArgs.cs
  82. 1 1
      Terminal.Gui/Views/TreeView/AspectGetterDelegate.cs
  83. 1 1
      Terminal.Gui/Views/TreeView/Branch.cs
  84. 1 1
      Terminal.Gui/Views/TreeView/DelegateTreeBuilder.cs
  85. 1 1
      Terminal.Gui/Views/TreeView/ITreeBuilder.cs
  86. 1 1
      Terminal.Gui/Views/TreeView/ObjectActivatedEventArgs.cs
  87. 1 1
      Terminal.Gui/Views/TreeView/SelectionChangedEventArgs.cs
  88. 1 1
      Terminal.Gui/Views/TreeView/TreeBuilder.cs
  89. 1 1
      Terminal.Gui/Views/TreeView/TreeNode.cs
  90. 1 1
      Terminal.Gui/Views/TreeView/TreeNodeBuilder.cs
  91. 1 1
      Terminal.Gui/Views/TreeView/TreeStyle.cs
  92. 1 1
      Terminal.Gui/Views/TreeView/TreeView.cs
  93. 2 2
      Terminal.Gui/Views/Window.cs
  94. 0 0
      Terminal.Gui/Views/Wizard/Wizard.cs
  95. 0 0
      Terminal.Gui/Views/Wizard/WizardEventArgs.cs
  96. 0 1
      UICatalog/Scenario.cs
  97. 0 1
      UICatalog/Scenarios/AllViewsTester.cs
  98. 0 1
      UICatalog/Scenarios/ClassExplorer.cs
  99. 1 3
      UICatalog/Scenarios/CollectionNavigatorTester.cs
  100. 0 1
      UICatalog/Scenarios/ComputedLayout.cs

+ 1 - 1
README.md

@@ -48,7 +48,7 @@ _The Documentation matches the most recent Nuget release from the `main` branch
 * **[Flexible Layout](https://gui-cs.github.io/Terminal.Gui/articles/overview.html#layout)** - Supports both *Absolute layout* and an innovative *Computed Layout* system. *Computed Layout* makes it easy to layout controls relative to each other and enables dynamic terminal UIs.
 * **[Configuration & Themes](https://gui-cs.github.io/Terminal.Gui/articles/config.html)** - Terminal.Gui supports a rich configuration system that allows end-user customization of how the UI looks (e.g. colors) and behaves (e.g. key-bindings).
 * **Clipboard support** - Cut, Copy, and Paste of text provided through the [`Clipboard`](https://gui-cs.github.io/Terminal.Gui/api/Terminal.Gui/Terminal.Gui.Clipboard.html) class.
-* **[Arbitrary Views](https://gui-cs.github.io/Terminal.Gui/api/Terminal.Gui/Terminal.Gui.View.html)** - All visible UI elements are subclasses of the `View` class, and these in turn can contain an arbitrary number of sub-views.
+* **[Arbitrary Views](https://gui-cs.github.io/Terminal.Gui/api/Terminal.Gui/Terminal.Gui.ViewTests.html)** - All visible UI elements are subclasses of the `View` class, and these in turn can contain an arbitrary number of sub-views.
 * **Advanced App Features** - The [Mainloop](https://gui-cs.github.io/Terminal.Gui/api/Terminal.Gui/Terminal.Gui.MainLoop.html) supports processing events, idle handlers, timers, and monitoring file
 descriptors. Most classes are safe for threading.
 * **Reactive Extensions** - Use [reactive extensions](https://github.com/dotnet/reactive) and benefit from increased code readability, and the ability to apply the MVVM pattern and [ReactiveUI](https://www.reactiveui.net/) data bindings. See the [source code](https://github.com/gui-cs/Terminal.Gui/tree/master/ReactiveExample) of a sample app in order to learn how to achieve this.

+ 2 - 2
Terminal.Gui/Core/Application.cs → Terminal.Gui/Application.cs

@@ -20,9 +20,9 @@ using System.ComponentModel;
 using System.Globalization;
 using System.Reflection;
 using System.IO;
-using Terminal.Gui.Configuration;
+using Terminal.Gui;
 using System.Text.Json.Serialization;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using static Terminal.Gui.ConfigurationManager;
 
 namespace Terminal.Gui {
 

+ 0 - 2
Terminal.Gui/ClassDiagram1.cd

@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ClassDiagram /> 

+ 0 - 0
Terminal.Gui/Core/Clipboard/Clipboard.cs → Terminal.Gui/Clipboard/Clipboard.cs


+ 0 - 0
Terminal.Gui/Core/Clipboard/ClipboardBase.cs → Terminal.Gui/Clipboard/ClipboardBase.cs


+ 0 - 0
Terminal.Gui/Core/Clipboard/IClipboard.cs → Terminal.Gui/Clipboard/IClipboard.cs


+ 2 - 2
Terminal.Gui/Configuration/AppScope.cs

@@ -5,11 +5,11 @@ using System.Diagnostics;
 using System.Linq;
 using System.Reflection;
 using System.Text.Json.Serialization;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using static Terminal.Gui.ConfigurationManager;
 
 #nullable enable
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 
 	public static partial class ConfigurationManager {
 		/// <summary>

+ 1 - 1
Terminal.Gui/Configuration/AttributeJsonConverter.cs

@@ -3,7 +3,7 @@ using System.Text.Json;
 using System.Text.Json.Serialization;
 using Terminal.Gui;
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Json converter fro the <see cref="Attribute"/> class.
 	/// </summary>

+ 1 - 1
Terminal.Gui/Configuration/ColorJsonConverter.cs

@@ -3,7 +3,7 @@ using System.Text.Json.Serialization;
 using System.Text.Json;
 using System.Text.RegularExpressions;
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Json converter for the <see cref="Color"/> class.
 	/// </summary>

+ 1 - 1
Terminal.Gui/Configuration/ColorSchemeJsonConverter.cs

@@ -2,7 +2,7 @@
 using System.Text.Json;
 using System.Text.Json.Serialization;
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Implements a JSON converter for <see cref="ColorScheme"/>. 
 	/// </summary>

+ 2 - 2
Terminal.Gui/Configuration/ConfigurationManager.cs

@@ -9,11 +9,11 @@ using System.Text;
 using System.Text.Json;
 using System.Text.Json.Serialization;
 using System.Threading.Tasks;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using static Terminal.Gui.ConfigurationManager;
 
 #nullable enable
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Provides settings and configuration management for Terminal.Gui applications. 
 	/// <para>

+ 1 - 1
Terminal.Gui/Configuration/ConfigurationManagerEventArgs.cs

@@ -2,7 +2,7 @@
 
 #nullable enable
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Event arguments for the <see cref="ConfigurationManager"/> events.
 	/// </summary>

+ 1 - 1
Terminal.Gui/Configuration/DictionaryJsonConverter.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Text.Json.Serialization;
 using System.Text.Json;
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 
 	class DictionaryJsonConverter<T> : JsonConverter<Dictionary<string, T>> {
 		public override Dictionary<string, T> Read (ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)

+ 1 - 1
Terminal.Gui/Configuration/KeyJsonConverter.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Text.Json;
 using System.Text.Json.Serialization;
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Json converter for the <see cref="Key"/> class.
 	/// </summary>

+ 2 - 2
Terminal.Gui/Configuration/Scope.cs

@@ -5,12 +5,12 @@ using System.Linq;
 using System.Reflection;
 using System.Text.Json;
 using System.Text.Json.Serialization;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using static Terminal.Gui.ConfigurationManager;
 
 
 #nullable enable
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 	public static partial class ConfigurationManager {
 
 		/// <summary>

+ 1 - 1
Terminal.Gui/Configuration/SettingsScope.cs

@@ -9,7 +9,7 @@ using System.Text.Json.Serialization;
 
 #nullable enable
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 	public static partial class ConfigurationManager {
 		/// <summary>
 		/// The root object of Terminal.Gui configuration settings / JSON schema. Contains only properties 

+ 2 - 2
Terminal.Gui/Configuration/ThemeScope.cs

@@ -5,11 +5,11 @@ using System.Diagnostics;
 using System.Linq;
 using System.Reflection;
 using System.Text.Json.Serialization;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using static Terminal.Gui.ConfigurationManager;
 
 #nullable enable
 
-namespace Terminal.Gui.Configuration {
+namespace Terminal.Gui {
 
 	public static partial class ConfigurationManager {
 		/// <summary>

+ 4 - 4
Terminal.Gui/Core/ConsoleDriver.cs → Terminal.Gui/ConsoleDrivers/ConsoleDriver.cs

@@ -10,8 +10,8 @@ using System.Linq;
 using System.Runtime.CompilerServices;
 using System.Text.Json.Serialization;
 using System.Threading.Tasks;
-using Terminal.Gui.Configuration;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using Terminal.Gui;
+using static Terminal.Gui.ConfigurationManager;
 
 namespace Terminal.Gui {
 	/// <summary>
@@ -187,13 +187,13 @@ namespace Terminal.Gui {
 		/// <summary>
 		/// The foreground color.
 		/// </summary>
-		[JsonConverter (typeof (Configuration.ColorJsonConverter))]
+		[JsonConverter (typeof (ColorJsonConverter))]
 		public Color Foreground { get; }
 
 		/// <summary>
 		/// The background color.
 		/// </summary>
-		[JsonConverter (typeof (Configuration.ColorJsonConverter))]
+		[JsonConverter (typeof (ColorJsonConverter))]
 		public Color Background { get; }
 
 		/// <summary>

+ 1 - 1
Terminal.Gui/Core/Graphs/LineCanvas.cs → Terminal.Gui/Drawing/LineCanvas.cs

@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 
-namespace Terminal.Gui.Graphs {
+namespace Terminal.Gui {
 
 
 	/// <summary>

+ 0 - 2
Terminal.Gui/Drawing/Ruler.cs

@@ -4,8 +4,6 @@ using System.Collections.Generic;
 using System.Data;
 using System.Text;
 using System.Text.Json.Serialization;
-using Terminal.Gui.Configuration;
-using Terminal.Gui.Graphs;
 
 namespace Terminal.Gui {
 	/// <summary>

+ 1 - 2
Terminal.Gui/Core/Thickness.cs → Terminal.Gui/Drawing/Thickness.cs

@@ -3,8 +3,7 @@ using System;
 using System.Collections.Generic;
 using System.Text;
 using System.Text.Json.Serialization;
-using Terminal.Gui.Configuration;
-using Terminal.Gui.Graphs;
+using Terminal.Gui;
 
 namespace Terminal.Gui {
 	/// <summary>

+ 0 - 0
Terminal.Gui/Core/ThicknessEventArgs.cs → Terminal.Gui/Drawing/ThicknessEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/Command.cs → Terminal.Gui/Input/Command.cs


+ 0 - 0
Terminal.Gui/Core/ConsoleKeyMapping.cs → Terminal.Gui/Input/ConsoleKeyMapping.cs


+ 0 - 0
Terminal.Gui/Core/EscSeqUtils/EscSeqReq.cs → Terminal.Gui/Input/EscSeqUtils/EscSeqReq.cs


+ 0 - 0
Terminal.Gui/Core/EscSeqUtils/EscSeqUtils.cs → Terminal.Gui/Input/EscSeqUtils/EscSeqUtils.cs


+ 0 - 0
Terminal.Gui/Core/Event.cs → Terminal.Gui/Input/Event.cs


+ 0 - 0
Terminal.Gui/Core/GrabMouseEventArgs.cs → Terminal.Gui/Input/GrabMouseEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/KeyChangedEventArgs.cs → Terminal.Gui/Input/KeyChangedEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/KeyEventEventArgs.cs → Terminal.Gui/Input/KeyEventEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/KeystrokeNavigatorEventArgs.cs → Terminal.Gui/Input/KeystrokeNavigatorEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/MouseEventEventArgs.cs → Terminal.Gui/Input/MouseEventEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/MouseFlagsChangedEventArgs.cs → Terminal.Gui/Input/MouseFlagsChangedEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/PointEventArgs.cs → Terminal.Gui/Input/PointEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/Responder.cs → Terminal.Gui/Input/Responder.cs


+ 0 - 0
Terminal.Gui/Core/ShortcutHelper.cs → Terminal.Gui/Input/ShortcutHelper.cs


+ 0 - 0
Terminal.Gui/Core/MainLoop.cs → Terminal.Gui/MainLoop.cs


+ 35 - 14
Terminal.Gui/README.md

@@ -4,21 +4,42 @@ All files required to build the **Terminal.Gui** library (and NuGet package).
 
 ## Project Folder Structure
 
-- `Terminal.Gui.sln` - The Visual Studio solution
-- `Core/` - Source files for all types that comprise the core building blocks of **Terminal-Gui** 
-    - `Application` - A `static` class that provides the base 'application driver'. Given it defines a **Terminal.Gui** application it is both logically and literally (because `static`) a singleton. It has direct dependencies on `MainLoop`, `Events.cs` `NetDriver`, `CursesDriver`, `WindowsDriver`, `Responder`, `View`, and `TopLevel` (and nothing else).
-    - `MainLoop` - Defines `IMainLoopDriver` and implements the `MainLoop` class.
-    - `ConsoleDriver` - Definition for the Console Driver API.
-    - `Events.cs` - Defines keyboard and mouse-related structs & classes. 
-    - `PosDim.cs` - Implements *Computed Layout* system. These classes have deep dependencies on `View`.
-    - `Responder` - Base class for the windowing class hierarchy. Implements support for keyboard & mouse input.
-    - `View` - Derived from `Responder`, the base class for non-modal visual elements such as controls.
-    - `Toplevel` - Derived from `View`, the base class for modal visual elements such as top-level windows and dialogs. Supports the concept of `MenuBar` and `StatusBar`.
-    - `Window` - Derived from `TopLevel`; implements toplevel views with a visible frame and Title.
+- `\` - The root folder contains the source code for the library.
+	- `Terminal.Gui.sln` - The Visual Studio solution
+	- `Application.cs` - A `static` class that provides the base 'application driver'. Given it defines a **Terminal.Gui** application it is both logically and literally (because `static`) a singleton. It has direct dependencies on `MainLoop`, `Events.cs` `NetDriver`, `CursesDriver`, `WindowsDriver`, `Responder`, `View`, and `TopLevel` (and nothing else).
+	- `MainLoop.cs` - Defines `IMainLoopDriver` and implements the `MainLoop` class.
+	- A few supporting class files
+
+- `ConsoleDrivers\`
+	- `ConsoleDriver.cs` - Definition for the Console Driver API.
+	- Source files for the three `ConsoleDriver`-based drivers: .NET: `NetDriver`, Unix & Mac: `UnixDriver`, and Windows: `WindowsDriver`.
+
+- `Configuration\` - Classes related the `ConfigurationManager`.
+
+- `Clipboard\` - Classes related to clipboard access.
+
+- `Input\` - Classes relating to keyboard and mouse input. Includes `Responder`, which is the base class for `View`
+	- `Events.cs` - Defines keyboard and mouse-related structs & classes. 
+	- `Responder` - Base class for the windowing class hierarchy. Implements support for keyboard & mouse input.
+	- etc...
+
+- `Text\` - Classes related to text processing
+
+- `Drawing\` - Classes related to drawing 
+
+- `View\` - The `View` class heirarchy, not including any sub-classes
+	- `View.cs` - Derived from `Responder`, the base class for non-modal visual elements such as controls.
+	- `Layout\`	
+		- `PosDim.cs` - Implements *Computed Layout* system. These classes have deep dependencies on `View`.
+
+- `Views\` - Sub-classes of `View` 
+	- `Toplevel` - Derived from `View`, the base class for modal visual elements such as top-level windows and dialogs. Supports the concept of `MenuBar` and `StatusBar`.
+	- `Window` - Derived from `TopLevel`; implements toplevel views with a visible frame and Title.
+	- `Dialog` -
+	- etc...
+
 - `Types/` - A folder (not namespace) containing implementations of `Point`, `Rect`, and `Size` which are ancient versions of the modern `System.Drawing.Point`, `System.Drawing.Size`, and `System.Drawning.Rectangle`.
-- `ConsoleDrivers/` - Source files for the three `ConsoleDriver`-based drivers: .NET: `NetDriver`, Unix & Mac: `UnixDriver`, and Windows: `WindowsDriver`.
-- `Views/` - A folder (not namespace) containing the source for all built-in classes that drive from `View` (non-modals). 
-- `Windows/` - A folder (not namespace) containing the source of all built-in classes that derive from `Window`.
+
 
 ## Version numbers
 

+ 0 - 0
Terminal.Gui/Core/RunStateEventArgs.cs → Terminal.Gui/RunStateEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/StackExtensions.cs → Terminal.Gui/StackExtensions.cs


+ 0 - 0
Terminal.Gui/Core/Autocomplete/AppendAutocomplete.cs → Terminal.Gui/Text/Autocomplete/AppendAutocomplete.cs


+ 0 - 0
Terminal.Gui/Core/Autocomplete/Autocomplete.cd → Terminal.Gui/Text/Autocomplete/Autocomplete.cd


+ 0 - 0
Terminal.Gui/Core/Autocomplete/AutocompleteBase.cs → Terminal.Gui/Text/Autocomplete/AutocompleteBase.cs


+ 0 - 0
Terminal.Gui/Core/Autocomplete/AutocompleteContext.cs → Terminal.Gui/Text/Autocomplete/AutocompleteContext.cs


+ 0 - 0
Terminal.Gui/Core/Autocomplete/IAutocomplete.cs → Terminal.Gui/Text/Autocomplete/IAutocomplete.cs


+ 0 - 0
Terminal.Gui/Core/Autocomplete/ISuggestionGenerator.cs → Terminal.Gui/Text/Autocomplete/ISuggestionGenerator.cs


+ 0 - 0
Terminal.Gui/Core/Autocomplete/PopupAutocomplete.cs → Terminal.Gui/Text/Autocomplete/PopupAutocomplete.cs


+ 0 - 0
Terminal.Gui/Core/Autocomplete/SingleWordSuggestionGenerator.cs → Terminal.Gui/Text/Autocomplete/SingleWordSuggestionGenerator.cs


+ 0 - 0
Terminal.Gui/Core/Autocomplete/Suggestion.cs → Terminal.Gui/Text/Autocomplete/Suggestion.cs


+ 0 - 0
Terminal.Gui/Core/CollectionNavigator.cs → Terminal.Gui/Text/CollectionNavigator.cs


+ 0 - 0
Terminal.Gui/Core/TextFormatter.cs → Terminal.Gui/Text/TextFormatter.cs


+ 0 - 0
Terminal.Gui/Core/TimeoutEventArgs.cs → Terminal.Gui/TimeoutEventArgs.cs


+ 2 - 3
Terminal.Gui/Core/Border.cs → Terminal.Gui/View/Border.cs

@@ -1,6 +1,5 @@
 using NStack;
 using System;
-using Terminal.Gui.Graphs;
 using System.Text.Json.Serialization;
 using System.Data;
 using System.Text;
@@ -63,7 +62,7 @@ namespace Terminal.Gui {
 		/// <summary>
 		/// Gets or sets the <see cref="Color"/> that draws the outer border color.
 		/// </summary>
-		[JsonInclude, JsonConverter (typeof (Configuration.ColorJsonConverter))]
+		[JsonInclude, JsonConverter (typeof (ColorJsonConverter))]
 		public Color ForgroundColor {
 			get => _forgroundColor;
 			set {
@@ -75,7 +74,7 @@ namespace Terminal.Gui {
 		/// <summary>
 		/// Gets or sets the <see cref="Color"/> that fills the area between the bounds of a <see cref="Border"/>.
 		/// </summary>
-		[JsonInclude, JsonConverter (typeof (Configuration.ColorJsonConverter))]
+		[JsonInclude, JsonConverter (typeof (ColorJsonConverter))]
 		public Color BackgroundColor {
 			get => _backgroundColor;
 			set {

+ 0 - 1
Terminal.Gui/Core/Frame.cs → Terminal.Gui/View/Frame.cs

@@ -3,7 +3,6 @@ using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Xml.Linq;
-using Terminal.Gui.Graphs;
 
 namespace Terminal.Gui {
 

+ 0 - 0
Terminal.Gui/Core/PosDim.cs → Terminal.Gui/View/Layout/PosDim.cs


+ 0 - 0
Terminal.Gui/Core/ResizedEventArgs.cs → Terminal.Gui/View/Layout/ResizedEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/SizeChangedEventArgs.cs → Terminal.Gui/View/Layout/SizeChangedEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/SuperViewChangedEventArgs.cs → Terminal.Gui/View/SuperViewChangedEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/TitleEventArgs.cs → Terminal.Gui/View/TitleEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/ToggleEventArgs.cs → Terminal.Gui/View/ToggleEventArgs.cs


+ 0 - 0
Terminal.Gui/Core/View.cs → Terminal.Gui/View/View.cs


+ 0 - 0
Terminal.Gui/Core/ViewEventArgs.cs → Terminal.Gui/View/ViewEventArgs.cs


+ 2 - 2
Terminal.Gui/Windows/Dialog.cs → Terminal.Gui/Views/Dialog.cs

@@ -9,8 +9,8 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text.Json.Serialization;
 using NStack;
-using Terminal.Gui.Configuration;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using Terminal.Gui;
+using static Terminal.Gui.ConfigurationManager;
 
 namespace Terminal.Gui {
 	/// <summary>

+ 0 - 0
Terminal.Gui/Windows/FileDialog.cs → Terminal.Gui/Views/FileDialog.cs


+ 1 - 1
Terminal.Gui/Views/FrameView.cs

@@ -2,7 +2,7 @@
 using System.Linq;
 using System.Text.Json.Serialization;
 using NStack;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using static Terminal.Gui.ConfigurationManager;
 
 namespace Terminal.Gui {
 	/// <summary>

+ 1 - 1
Terminal.Gui/Core/Graphs/Annotations.cs → Terminal.Gui/Views/GraphView/Annotations.cs

@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 
-namespace Terminal.Gui.Graphs {
+namespace Terminal.Gui {
 	/// <summary>
 	/// <para>Describes an overlay element that is rendered either before or
 	/// after a series.</para>

+ 1 - 1
Terminal.Gui/Core/Graphs/Axis.cs → Terminal.Gui/Views/GraphView/Axis.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 
-namespace Terminal.Gui.Graphs {
+namespace Terminal.Gui {
 
 	/// <summary>
 	/// Renders a continuous line with grid line ticks and labels

+ 1 - 1
Terminal.Gui/Core/Graphs/GraphCellToRender.cs → Terminal.Gui/Views/GraphView/GraphCellToRender.cs

@@ -1,6 +1,6 @@
 using System;
 
-namespace Terminal.Gui.Graphs {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Describes how to render a single row/column of a <see cref="GraphView"/> based
 	/// on the value(s) in <see cref="ISeries"/> at that location

+ 0 - 1
Terminal.Gui/Views/GraphView.cs → Terminal.Gui/Views/GraphView/GraphView.cs

@@ -2,7 +2,6 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using Terminal.Gui.Graphs;
 
 namespace Terminal.Gui {
 

+ 1 - 1
Terminal.Gui/Core/Graphs/Orientation.cs → Terminal.Gui/Views/GraphView/Orientation.cs

@@ -1,4 +1,4 @@
-namespace Terminal.Gui.Graphs {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Direction of an element (horizontal or vertical)
 	/// </summary>

+ 1 - 1
Terminal.Gui/Core/Graphs/Series.cs → Terminal.Gui/Views/GraphView/Series.cs

@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Linq;
 
-namespace Terminal.Gui.Graphs {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Describes a series of data that can be rendered into a <see cref="GraphView"/>>
 	/// </summary>

+ 0 - 1
Terminal.Gui/Views/LineView.cs

@@ -1,5 +1,4 @@
 using System;
-using Terminal.Gui.Graphs;
 
 namespace Terminal.Gui {
 	

+ 2 - 2
Terminal.Gui/Windows/MessageBox.cs → Terminal.Gui/Views/MessageBox.cs

@@ -1,8 +1,8 @@
 using NStack;
 using System;
 using System.Collections.Generic;
-using Terminal.Gui.Configuration;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using Terminal.Gui;
+using static Terminal.Gui.ConfigurationManager;
 
 namespace Terminal.Gui {
 	/// <summary>

+ 0 - 0
Terminal.Gui/Core/ReadOnlyCollectionExtensions.cs → Terminal.Gui/Views/ReadOnlyCollectionExtensions.cs


+ 0 - 0
Terminal.Gui/Views/CellActivatedEventArgs.cs → Terminal.Gui/Views/TableView/CellActivatedEventArgs.cs


+ 0 - 0
Terminal.Gui/Views/SelectedCellChangedEventArgs.cs → Terminal.Gui/Views/TableView/SelectedCellChangedEventArgs.cs


+ 0 - 0
Terminal.Gui/Views/TableView.cs → Terminal.Gui/Views/TableView/TableView.cs


+ 0 - 1
Terminal.Gui/Views/TextView.cs

@@ -9,7 +9,6 @@ using System.Text;
 using System.Threading;
 using NStack;
 using Terminal.Gui.Resources;
-using static Terminal.Gui.Graphs.PathAnnotation;
 using Rune = System.Rune;
 
 namespace Terminal.Gui {

+ 0 - 1
Terminal.Gui/Views/TileView.cs

@@ -2,7 +2,6 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using Terminal.Gui.Graphs;
 
 namespace Terminal.Gui {
 

+ 0 - 0
Terminal.Gui/Core/Toplevel.cs → Terminal.Gui/Views/Toplevel.cs


+ 0 - 0
Terminal.Gui/Core/ToplevelEventArgs.cs → Terminal.Gui/Views/ToplevelEventArgs.cs


+ 1 - 1
Terminal.Gui/Core/Trees/AspectGetterDelegate.cs → Terminal.Gui/Views/TreeView/AspectGetterDelegate.cs

@@ -1,5 +1,5 @@
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 
 	/// <summary>
 	/// Delegates of this type are used to fetch string representations of user's model objects

+ 1 - 1
Terminal.Gui/Core/Trees/Branch.cs → Terminal.Gui/Views/TreeView/Branch.cs

@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 	class Branch<T> where T : class {
 		/// <summary>
 		/// True if the branch is expanded to reveal child branches.

+ 1 - 1
Terminal.Gui/Core/Trees/DelegateTreeBuilder.cs → Terminal.Gui/Views/TreeView/DelegateTreeBuilder.cs

@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Implementation of <see cref="ITreeBuilder{T}"/> that uses user defined functions
 	/// </summary>

+ 1 - 1
Terminal.Gui/Core/Trees/ITreeBuilder.cs → Terminal.Gui/Views/TreeView/ITreeBuilder.cs

@@ -1,6 +1,6 @@
 using System.Collections.Generic;
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Interface for supplying data to a <see cref="TreeView{T}"/> on demand as root level nodes
 	/// are expanded by the user

+ 1 - 1
Terminal.Gui/Core/Trees/ObjectActivatedEventArgs.cs → Terminal.Gui/Views/TreeView/ObjectActivatedEventArgs.cs

@@ -1,4 +1,4 @@
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Event args for the <see cref="TreeView{T}.ObjectActivated"/> event
 	/// </summary>

+ 1 - 1
Terminal.Gui/Core/Trees/SelectionChangedEventArgs.cs → Terminal.Gui/Views/TreeView/SelectionChangedEventArgs.cs

@@ -1,6 +1,6 @@
 using System;
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Event arguments describing a change in selected object in a tree view
 	/// </summary>

+ 1 - 1
Terminal.Gui/Core/Trees/TreeBuilder.cs → Terminal.Gui/Views/TreeView/TreeBuilder.cs

@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 
 	/// <summary>
 	/// Abstract implementation of <see cref="ITreeBuilder{T}"/>.

+ 1 - 1
Terminal.Gui/Core/Trees/TreeNode.cs → Terminal.Gui/Views/TreeView/TreeNode.cs

@@ -1,6 +1,6 @@
 using System.Collections.Generic;
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 		
 	/// <summary>
 	/// Interface to implement when you want the regular (non generic) <see cref="TreeView"/>

+ 1 - 1
Terminal.Gui/Core/Trees/TreeNodeBuilder.cs → Terminal.Gui/Views/TreeView/TreeNodeBuilder.cs

@@ -1,6 +1,6 @@
 using System.Collections.Generic;
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 	/// <summary>
 	/// <see cref="ITreeBuilder{T}"/> implementation for <see cref="ITreeNode"/> objects
 	/// </summary>

+ 1 - 1
Terminal.Gui/Core/Trees/TreeStyle.cs → Terminal.Gui/Views/TreeView/TreeStyle.cs

@@ -1,6 +1,6 @@
 using System;
 
-namespace Terminal.Gui.Trees {
+namespace Terminal.Gui {
 	/// <summary>
 	/// Defines rendering options that affect how the tree is displayed.
 	/// </summary>

+ 1 - 1
Terminal.Gui/Views/TreeView.cs → Terminal.Gui/Views/TreeView/TreeView.cs

@@ -7,7 +7,7 @@ using System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Linq;
-using Terminal.Gui.Trees;
+using Terminal.Gui;
 
 namespace Terminal.Gui {
 

+ 2 - 2
Terminal.Gui/Core/Window.cs → Terminal.Gui/Views/Window.cs

@@ -2,8 +2,8 @@
 using System.Collections;
 using System.Text.Json.Serialization;
 using NStack;
-using Terminal.Gui.Configuration;
-using static Terminal.Gui.Configuration.ConfigurationManager;
+using Terminal.Gui;
+using static Terminal.Gui.ConfigurationManager;
 
 namespace Terminal.Gui {
 

+ 0 - 0
Terminal.Gui/Windows/Wizard.cs → Terminal.Gui/Views/Wizard/Wizard.cs


+ 0 - 0
Terminal.Gui/Windows/WizardEventArgs.cs → Terminal.Gui/Views/Wizard/WizardEventArgs.cs


+ 0 - 1
UICatalog/Scenario.cs

@@ -3,7 +3,6 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using Terminal.Gui;
-using Terminal.Gui.Configuration;
 
 namespace UICatalog {
 	/// <summary>

+ 0 - 1
UICatalog/Scenarios/AllViewsTester.cs

@@ -7,7 +7,6 @@ using System.Linq;
 using System.Reflection;
 using System.Text;
 using Terminal.Gui;
-using Terminal.Gui.Configuration;
 
 namespace UICatalog.Scenarios {
 	[ScenarioMetadata (Name: "All Views Tester", Description: "Provides a test UI for all classes derived from View.")]

+ 0 - 1
UICatalog/Scenarios/ClassExplorer.cs

@@ -5,7 +5,6 @@ using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
 using Terminal.Gui;
-using Terminal.Gui.Trees;
 
 namespace UICatalog.Scenarios {
 

+ 1 - 3
UICatalog/Scenarios/CollectionNavigatorTester.cs

@@ -1,8 +1,6 @@
 using System;
-using System.IO;
 using System.Linq;
 using Terminal.Gui;
-using Terminal.Gui.Trees;
 
 namespace UICatalog.Scenarios {
 
@@ -107,7 +105,7 @@ namespace UICatalog.Scenarios {
 			_items.Sort (StringComparer.OrdinalIgnoreCase);
 
 			CreateListView ();
-			var vsep = new LineView (Terminal.Gui.Graphs.Orientation.Vertical) {
+			var vsep = new LineView (Orientation.Vertical) {
 				X = Pos.Right (_listView),
 				Y = 1,
 				Height = Dim.Fill ()

+ 0 - 1
UICatalog/Scenarios/ComputedLayout.cs

@@ -5,7 +5,6 @@ using System.Linq;
 using System.Reflection;
 using System.Text;
 using Terminal.Gui;
-using Terminal.Gui.Configuration;
 
 namespace UICatalog.Scenarios {
 	/// <summary>

Некоторые файлы не были показаны из-за большого количества измененных файлов