Terminal.Gui.csproj 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <Project Sdk="Microsoft.NET.Sdk">
  2. <PropertyGroup>
  3. <TargetFrameworks>net472;netstandard2.0;net5.0</TargetFrameworks>
  4. <RootNamespace>Terminal.Gui</RootNamespace>
  5. <AssemblyName>Terminal.Gui</AssemblyName>
  6. <DocumentationFile>bin\Release\Terminal.Gui.xml</DocumentationFile>
  7. <GenerateDocumentationFile Condition=" '$(Configuration)' == 'Release' ">true</GenerateDocumentationFile>
  8. <GeneratePackageOnBuild Condition=" '$(Configuration)' == 'Release' ">true</GeneratePackageOnBuild>
  9. <PackageId>Terminal.Gui</PackageId>
  10. <PackageLicenseExpression>MIT</PackageLicenseExpression>
  11. <PackageProjectUrl>https://github.com/migueldeicaza/gui.cs/</PackageProjectUrl>
  12. <PackageTags>csharp, terminal, c#, f#, gui, toolkit, console</PackageTags>
  13. <Description>Console user interface toolkit for .NET applications.</Description>
  14. <Owners>Miguel de Icaza</Owners>
  15. <Summary>Application framework for creating modern console applications using .NET</Summary>
  16. <Title>Terminal.Gui is a framework for creating console user interfaces</Title>
  17. <PackageReleaseNotes>
  18. v1.0.0-RC.1
  19. * Added Dependabot support and updated dependencies
  20. * Renamed master branch to main
  21. * Fixes #1211. Added support to TextView for word based operations Ctrl+Del and Ctrl+Backspace
  22. * Fixes #1208. Now the selected text is overwritten if SelectedStart is greater than CursorPosition.
  23. * Fixes #1206. NetDriver now print the selected text. Attribute struct now create a valid Value for the current driver. Insert key is detected by NetDriver.
  24. * Fixes #1202. CheckBox now deals with a functional '_' underscore hotkey.
  25. * Fixes #1199. Normalize views constructors and did some typo fixing.
  26. * Fixes #1197. Prevents width negative value if added directly to the A
  27. * Added Vertical Alignment and Text Direction + UICatalog Demo (thanks @jmprricone!)
  28. * Fixes #1193. A non auto size default Button now preserves his width and thus the text alignment now work.
  29. * Fixes #1187. Prevents WordBackward throwing an exception if point is greater than the text length
  30. * Fixes #1185. Button click is only processed if there are no mouse mov
  31. * Fixes #1183. ListView now return true on the handled keys
  32. * Fixes #1179. TextView does not copy to the clipboard on deleting
  33. * Fixes #1177. Now is possible to copy or cut on the TextView with the...
  34. * Fixes #1175. demo.cs editor now implement "Copy", "Cut" and "Paste".
  35. * Fixes #1173. TextField only need to handle a single line.
  36. * Fixes #1171. Delete and Backspace now deletes the selected text
  37. * Fixes #1167. Application.Run method with #DEBUG can be simplified.
  38. * Fixes #1165. Changing the directory name label or the field name crashes
  39. * Fixes #1159. Dialog must have a default button if none is provided.
  40. v1.0.0-beta.11
  41. * NEW CONTROL: Tabview - thanks @tznind!
  42. * UI Catalog now shows correct Terminal.gui.dll version
  43. * Fixes #939 - README sample does not compile - thanks @buzzfrog!
  44. * Fixes #1154 - FileDialog blank constructor results in unstable window
  45. * Fixes #1155 - MoveForward/MoveBackward not bound on Text controls.
  46. * Fixes #1152 - Generic TreeView`1 breaks upon selection in All Views Tester)
  47. * Fixes #1148 - TextFormatter.Format does not keep the end spaces on wrapped text.
  48. * Fixes #134 - (HUGE) TextView: Add line wrapping.
  49. * Fixes #1145 - ScrollBar down arrow is not showing.
  50. * Fixes #1143 - Cannot change the MenuBar's background color.
  51. * Fixes #1141 - Cannot change the StatusBar's background color.
  52. * Fixes #1048 - BrighCyan to BrightCyan spelling
  53. * Fixes #1130 - Broken Table/TreeView links in docs.
  54. v1.0.0-beta.8
  55. * Now using MinVer to generate version numbers from git tags.
  56. * Updated publish-to-nuget to work with minver
  57. v1.0.0-pre.9
  58. * NEW CONTROL: TreeView - Thanks @tznind!
  59. * Fixes #1066. View sizing across the various terminals has been fixed; works in Windows Terminal again - thanks @bdisp
  60. * Fixes #1117. Newfile Modal.
  61. v1.0.0-pre.8
  62. * NOTE: Windows Terminal is broken - see #1099
  63. * NEW CONTROL: TableView - Thanks @tznind!
  64. * NetDriver is signficantly imporved - thanks @bdisp!
  65. * Fixes #1016. Window is drawing its frame over the menu.
  66. * Fixes #1018. Since childNeedsDisplay is used outside the View class it must to be a property.
  67. * Fixes #1024. TextView is printing theFixes #1030. Getting colors from the Attributes of a ColorScheme. new line character "\n" with a symbol
  68. * Fixes #1030. Getting colors from the Attributes of a ColorScheme.
  69. * Fixes #1034. The NuGet packages need to be updated.
  70. * Fixes #1043. The menu separator is being printed in the wrong place.
  71. * Fixes #93. Audit TextView just like we did TextField to ensure proper treatment of Unicode.
  72. * Fixes #1050. ScrollView takes too long to scroll enormous content size.
  73. * BREAKING CHANGE - Fixes #1052. Application.CurrentView looks unused.
  74. * Fixes #1053. ProcessMouseEvent seems to initialize MouseEvent incorrectly.
  75. * Fixes #1056. Window doesn't redraw his SuperView properly.
  76. * Fixes #1061. ComputerLayout scenario does not drawn correctly.
  77. * Added unhandled exception handling in Application.Run (#1063)
  78. * Fixes #1068. The ResizeView doesn't handle the AutoSize properly.
  79. * Fixes #1071. Toplevel.GetTopLevelSubviews (). Changed from HashSet to IList.
  80. * Fixes #1073, #1058, #480 #1049. Provides more automation to the ScrollBarView, allowing easily implement on any view.
  81. * Application.Shutdown() does not reset SynchronizationContext (#1085).
  82. * Fixes #1088. On WindowsDriver moving the mouse with a button pressed, when it is released, the button clicked event is fired, causing an unintentional event.
  83. * Fixes #1091. Continuous button pressed not working properly on Linux.
  84. * Fixes #1100. TextFormatter doesn't handle ColumnWidth greater than 1.
  85. * Cursor shape and visibility #1102
  86. v1.0.0-pre.6
  87. * If StatusBar.Visible is set to false, TopLevel resizes correctly enabling hiding/showing of a StatusBar. UICatalog demonstrates.
  88. * New sample/demo app - ReactiveExample - Shows how to use reactive extensions and ReactiveUI with gui.cs. (Thanks @worldbeater)
  89. * BREAKING API CHANGE - Removed IEnumerable from View and Window. Use Subviews property instead. See #950.
  90. * Fixes #998. Added a cancelable TextChanging event to prevent the TextChanged event being called if the changing is canceled.
  91. * Fixes #1002. Added a AutoSize property to the View class.
  92. * Fixes #1009. AutoHideScrollBars is causing ScrollView always redrawing.
  93. * Update to .NET 5 RTM
  94. * Fixes #995. Improving TextField to work properly with Unicode characters
  95. * Fixes #999. Toplevel should only redraw the subviews if !NeedDisplay.IsEmpty or layoutNeeded.
  96. * Fixes #992. TextFormatter class now respect the view dimensions. Some typo fixing too.
  97. * Fixes #990. Pos and Dim only can be properly used when all the views are totally initialized.
  98. * Fixes #979. Force call LayoutSubviews to perform layout.
  99. * Fixes #988. Update NStack.Core to version 0.15.0
  100. * Fixes #41 and #949. Unit test to compare the difference between System.Rune and System.Text.Rune.
  101. * Fixes #881, #928. Allowing more key combinations.
  102. * Fixes #976. Mouse prints sequence characters on the terminal and the screen is not fully cleared. Only for netcoreapp3.1.
  103. * BREAKING API CHANGE - #950 - Remove IEnumerable from View and Window
  104. * Fixes #959. CursorPosition with hotkeys.
  105. * Fixes #963. Added support for Unicode in TextField.
  106. * Fixes #961. Recreates the Frame when necessary.
  107. * Fixes #957. Terminal.Gui nuget package in Reactive example version.
  108. * Fixes #933. Updated to work with libncurses 6.2
  109. * Fixes #225 and maybe #41. Allowing Rune.ColumnWidth greater than one.
  110. * Use glyphs for checkmarks and selection.
  111. v0.90 - "Feature Complete" pre-release of Terminal.Gui (aka gui.cs) 1.0. This release is a signficant upgrade from the previous published release (0.81). Most of the major changes and bug fixes are listed below. NOTE: This release includes breaking changes to the API; we will strive to avoid any more breaking changes before 1.0.
  112. What's new:
  113. * New sample/demo app - UI Catalog - Replaces demo.cs with an easy to use and extend set of demo scenarios. (Thanks @tig!)
  114. * The API documentation is completely revamped and updated. Readme upated. Contributors guide added (Thanks @tig!)
  115. * MenuBar can now have MenuItems directly (enables top-level menu items with no submenu). (Thanks @tig!)
  116. * API semantics are much more consistent across classes. For example, all events are now defined in terms of event Action instead of EventHanlder. BREAKING CHANGE. (Thanks @bdisp, @worldbeater, and @tig!)
  117. * The project has been refactored an reorganized to reduce risk of bugs and make it easier to contribute.
  118. * Symbols are now included with the nuget package.
  119. Fixes/Improvements (partial list; see Github issues for complete list):
  120. * Fixes #396 - Text alignnment issues. (Thanks @tig!)
  121. * Fixes #423 - Fix putting results of ocgv on command line erases cursor. (Thanks @tig!)
  122. * Apps can now get KeyUp/KeyDown events. (Thanks @tig!)
  123. * Example/Designer csproj files updated to latest Visual Studio model. (Thanks @tig!)
  124. * Adjusted the default colors for Windows to make more readable. (Thanks @tig!)
  125. * Toplevel.Ready event - Fired once the Toplevel's MainLoop has started (#445). (Thanks @tig!)
  126. * All compile warnings fixed. (Thanks @tig!)
  127. * Fixed a crash in EnsureVisibleBounds. (Thanks @tig!)
  128. * Application.Init/Shutdown are more robust. (Thanks @tig!)
  129. * New "Draw Window Frame" code; consistent across Window, FrameView, and Menu. Fixes many drawing bugs. (Thanks @tig!)
  130. * Fixes #522 - Last view of Frameview not drawn. (Thanks @tig!)
  131. * Clipping has been fixed/restored - it now works properly. (#586) (Thanks @tig!)
  132. * Added a View.LayoutComplete event (#569). (Thanks @tig!)
  133. * Fixes #299 - MessageBox now auto sizes. (Thanks @tig!)
  134. * Fixes #557 - MessageBoxes on small screens. (Thanks @tig!)
  135. * Fixes #432 - MessageBox does not deal with long text; width/height params are goofy. (Thanks @tig!)
  136. * Fixes #35 - Dialog should have 1 char padding. (Thanks @tig!)
  137. * `MessageBox.Query` called with `width` and `height` == 0 get auto-size behavior. A new constructor is added making this easy to use. (Thanks @tig!)
  138. * Multi-line `MessageBox`es are now supported. Just use `\n` to add lines. The height of the MessageBox will adjust automatically. (Thanks @tig!)
  139. * The `MessageBoxes` Scenario in UI Catalog provides a full demo/test-case. (Thanks @tig!)
  140. * `Dialog` called with `width` and `height` == 0 are sized to 85% container. A new constructor is added making this easy to use. (Thanks @tig!)
  141. * Dialog (and MessageBox `Buttons` are now dynamically laid out using Computed layout. (Thanks @tig!)
  142. * A `Dialogs` Scenario has been added to UI Catalog making it easy to test the API. (Thanks @tig!)
  143. * `Button` now supports BOTH specifying a hotkey with '_' and the old behavior of using the first uppercase char (if '_' is not found). (Thanks @tig!)
  144. * All UI Catalog scenarios that use `Dialog` or `MessageBox` now use the simplified API. (Thanks @tig!)
  145. * `Terminal.Gui.dll` now has version metadata and UI Catalog's about box displays it as a test case. (Thanks @tig!)
  146. * Button, Dialog, and MessageBox API documentation has been updated/revised. (Thanks @tig!)
  147. * `View`, `Window`, `FrameView`, and `Dialog` have been upgraded to use the new `ConsoleDriver.DrawFrameWindow` API directly. (Thanks @tig!)
  148. * New ComboBox control (Thanks @fergusonr!)
  149. * ConsoleDriver now supports improved KeyModifers (shift keys) with an expanded Keys Sceanrio in UI Catalog. (Thanks @bdisp!)
  150. * Tons of mouse handling improvements. (Thanks @bdisp!)
  151. * Fsharp sample updated. (Thanks @bdisp!)
  152. * Fixes #562 - Background drawing issue. (Thanks @bdisp!)
  153. * Fixes #517 - Focus and mouse handlers enahced (BREAKING CHANGE). (Thanks @bdisp!)
  154. * Fixed resizing update and correct Toplevel colors without colors. (Thanks @bdisp!)
  155. * Fixed #515, #518, #536, #540. (Thanks @bdisp!)
  156. * Added Threading Scenario to UI catalog. (Thanks @bdisp!)
  157. * Added support for F11 and F12 keys. (Thanks @bdisp!)
  158. * Multiple improvements to Date/TimeField. (Thanks @bdisp!)
  159. * Fixes #409 - Invoke does not cause Wakeup #501. (Thanks @bdisp!)
  160. * Fixed Label text alignment. (Thanks @bdisp!)
  161. * Added mouse features in the Unix version. Supports xterm-1006. (Thanks @bdisp!)
  162. * Several StatusBar fixes. (Thanks @bdisp!)
  163. * Tons of mouse improvements including mouse wheel support (e.g. #404, #409). (Thanks @bdisp!)
  164. * Added a CloseFile method to the TextView as stated in #452. (Thanks @bdisp)
  165. * Added a OpenSelectedItem event to the ListView #429. (Thanks @bdisp!)
  166. * Fixes the return value of the position cursor in the TextField. (Thanks @bdisp!)
  167. * Updates screen on Unix window resizing. (Thanks @bdisp!)
  168. * Fixes the functions of the Edit-Copy-Cut-Paste menu for the TextField that was not working well. (Thanks @bdisp!)
  169. * More robust error handing in Pos/Dim. Fixes #355 stack overflow with Pos based on the size of windows at startup. Added a OnResized action to set the Pos after the terminal are resized. (Thanks @bdisp!)
  170. * Fixes #389 Window layouting breaks when resizing. (Thanks @bdisp!)
  171. * Fixes #557 MessageBox needs to take ustrings (BREAKING CHANGE). (Thanks @tig!)
  172. * Fixes ScrollView in several key ways. (Thanks @tig!)
  173. * Now supports Computed layout and has constructors that don't require parameters.
  174. * ScrollBarViews are now positioned using Computed layout versus error prone absolute
  175. * ScrollBarViews now correctly position themselves when one, either, or both are on/off.
  176. * IsVertical is now a public property that does the expected thing when changed
  177. * Mouse handling is better; there's still a bug where the mouse doesn't get grabbed by the ScrollView initially but I think this is a broader problem. I need @BDisp's help on this.
  178. * Supports "infinite scrolling" via the new OnDrawContent/DrawContent event on the View class.
  179. * The Scrolling Scenario was enhanced to demo dynamically adding/removing horizontal/vertical scrollbars (and to prove it was working right).
  180. * The Checkbox.Toggled event is now an EventHandler event and passes previous state. (Thanks @tig!)
  181. * Fixes #102 All Views now support parameterless constructors. (Thanks @Bdisp and @tig!)
  182. * Fixes #583 Button can now be sized. Button now supports TextAlignment. (Thanks @Bdisp!)
  183. * Fixes #421 Now builds on Linux with "dotnet build". (Thanks @AArnott!)
  184. * MenuItem now supports checked/selected items. (Thanks @tig!)
  185. * Label no longer incorreclty displays formfeed char. (Thanks @tig!)
  186. * Fixes #645 - RadioGroup now supports unicode. (Thanks @tig!)
  187. * Fixes #573 - RadioGroup supports Computed Layout. (Thanks @tig!)
  188. * RadioGroup now uses a single, good looking, glyph. (Thanks @tig!)
  189. * RadioGroup now supportrs the Action-based event pattern correctly. BREAKING CHANGE. (Thanks @tig!)
  190. * ConsoleDriver and Drivers have new standard glyph definitions for things like right arrow. (Thanks @tig!)
  191. * ScrollView updated to use pretty glyphs. (Thanks @tig!)
  192. * Menubar now uses pretty arrow glyph for sub-menus. (Thanks @tig!)
  193. * View now has a Text property, implemented via the new TextFormatting class. (Thanks @tig!)
  194. * TextAlignment is implemented once across all Views that support it.
  195. * Unicode support is now much more robust and complete; dozens of bugs fixed.
  196. * Any view dervied from View now has a Text property with multi-line text formatting, including word-wrap and hotkey support.
  197. * Label is now mostly just an alias for View; supports Clicked
  198. * Button is now a very thin class derived from View (no API changes).
  199. * Dozens of unit tests for TextAlignment are provided reducing the chance of regressions.
  200. * Fixes #351. Added a horizontal display for RadioGroup. (Thanks @bidsp!)
  201. * Fixes #644. Added a UICatalog Scenario for a dynamic menu bar. (Thanks @bidsp!)
  202. * Fixes #838. Added a Visible property to the View. (Thanks @bidsp!)
  203. </PackageReleaseNotes>
  204. </PropertyGroup>
  205. <PropertyGroup>
  206. <IncludeSymbols>true</IncludeSymbols>
  207. <SymbolPackageFormat>snupkg</SymbolPackageFormat>
  208. </PropertyGroup>
  209. <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  210. <DebugType></DebugType>
  211. </PropertyGroup>
  212. <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  213. <DefineConstants>TRACE;DEBUG_IDISPOSABLE</DefineConstants>
  214. </PropertyGroup>
  215. <ItemGroup>
  216. <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="true" />
  217. <PackageReference Include="NStack.Core" Version="0.16.0" />
  218. <PackageReference Include="MinVer" Version="2.5.0">
  219. <PrivateAssets>all</PrivateAssets>
  220. <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
  221. </PackageReference>
  222. </ItemGroup>
  223. <PropertyGroup>
  224. <MinVerTagPrefix>v</MinVerTagPrefix>
  225. </PropertyGroup>
  226. <ItemGroup>
  227. <None Remove="ConsoleDrivers\#ConsoleDriver.cs#" />
  228. </ItemGroup>
  229. </Project>