* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Fixes culture info of DataField from pr #250
* Fixes the rectangle drawing issue
* Fixes#290 issue "Redraw issue when setting coordinates of label"
* Added sub menus into menu bar with mouse and key navigation
* Needed to assume color for the Disable attribute
* Added Colors.Menu.Disabled to CursesDriver.cs
* Mouse text selection with cut, copy and paste on text fields
* Change sepChar from char to string in DateField
* Adding a disabled menu item in the demo file
* Adding a disabled menu item in the demo file
* Fixes Button repainting issue when changing the text length to one smaller
* Fixes#290 issue "Redraw issue when setting coordinates of label"
* Only demonstration of issue # 308 that even though the cursor is gray on a gray background can be viewed.
* Fixes issue #163 "ScrollView does not render some content"
* Fixed bug in Button that caused a loop redraw calling TerminalResized
* Fixes#282 "Repaint Issue"
* Removed white space
* Mouse features added to FileDialog including wheel support.
* Forget to delete this commented method.
* Changing back to MouseFlags.AllEvents in case some mouse event is not triggering.
* Add documentation on ISupportInitialize/ISupportInitializeNotification (#286)
* Switch netcoreapp target to netstandard2.0 (#284)
Fixes#283
Instead of adding another target framework to the list, switch from netcoreapp2.0 to netstandard2.0, as ns2.0 is a subset of netcoreapp.
* Added TextView.TextChanged event (#264)
* Fixed key events traversal for modal dialogs (#288)
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Prepare for 0.25
* Remove travis link
* Revert Daniel's change 00c5997daa as it prevents the solution from building on Mac
* Prepare for 0.26
* Restore some files that were deleted by Daniel's commit that I had not restored
* Fixed out of range exception and text redraw when navigate backward (#320)
* Typo fix (#321)
* Fixes issue #306 async/await hang (#312)
* Fixed async/await hang
* Fixed async/await hang with calling Wakeup
* Moved Wake Up into lock statement
* Support menu items that are null so they can be drawn as a menu separator (#304)
* Fixed and Enabled Library reinitialization (#291)
- Replaced static driver initialization with property getter for reference passing in Core.cs::View class, this allows the library to be reinitialized at any time.
- Made the Shutdown method on Core.cs::Application class public, since there is no reason to keep it private. Applications can shutdown the library and revert the console to the initial stage by calling it.
- Fixed a memory-leak on Drivers/WindowsDriver class by destroying the generated screen buffers at library shutdown by calling CloseHandle.
- Minor change to Core.cs::Application.Init(Func<Toplevel>) for better initialization status tracking, via backend property instead of relying on the Top field.
* Moved `ListView.ListWrapper` out of `ListView` migueldeicaza/gui.cs#313` (#315)
* Resizing the MessageBox width to accommodate all message text (#299)
* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Resizing the MessageBox width to accommodate all message text
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
* Timefield format with bounds values (#303)
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* extract methods on ListView to make it controlable from other controls (#310)
* moveup
* MoveDown
* MovePageDown
* MovePageUp
* MarkUnmarkRow
* Allowing list items selection (#302)
* Prepare for 0.26
* Restore some files that were deleted by Daniel's commit that I had not restored
* Fixed out of range exception and text redraw when navigate backward (#320)
* Typo fix (#321)
* Fixes issue #306 async/await hang (#312)
* Fixed async/await hang
* Fixed async/await hang with calling Wakeup
* Moved Wake Up into lock statement
* Support menu items that are null so they can be drawn as a menu separator (#304)
* Fixed and Enabled Library reinitialization (#291)
- Replaced static driver initialization with property getter for reference passing in Core.cs::View class, this allows the library to be reinitialized at any time.
- Made the Shutdown method on Core.cs::Application class public, since there is no reason to keep it private. Applications can shutdown the library and revert the console to the initial stage by calling it.
- Fixed a memory-leak on Drivers/WindowsDriver class by destroying the generated screen buffers at library shutdown by calling CloseHandle.
- Minor change to Core.cs::Application.Init(Func<Toplevel>) for better initialization status tracking, via backend property instead of relying on the Top field.
* Moved `ListView.ListWrapper` out of `ListView` migueldeicaza/gui.cs#313` (#315)
* Resizing the MessageBox width to accommodate all message text (#299)
* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Resizing the MessageBox width to accommodate all message text
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
* Timefield format with bounds values (#303)
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* extract methods on ListView to make it controlable from other controls (#310)
* moveup
* MoveDown
* MovePageDown
* MovePageUp
* MarkUnmarkRow
* Allowing list items selection (#302)
* Add documentation on ISupportInitialize/ISupportInitializeNotification (#286)
* Switch netcoreapp target to netstandard2.0 (#284)
Fixes#283
Instead of adding another target framework to the list, switch from netcoreapp2.0 to netstandard2.0, as ns2.0 is a subset of netcoreapp.
* Added TextView.TextChanged event (#264)
* Fixed key events traversal for modal dialogs (#288)
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Prepare for 0.25
* Remove travis link
* Revert Daniel's change 00c5997daa as it prevents the solution from building on Mac
* Prepare for 0.26
* Restore some files that were deleted by Daniel's commit that I had not restored
* Fixed out of range exception and text redraw when navigate backward (#320)
* Typo fix (#321)
* Fixes issue #306 async/await hang (#312)
* Fixed async/await hang
* Fixed async/await hang with calling Wakeup
* Moved Wake Up into lock statement
* Support menu items that are null so they can be drawn as a menu separator (#304)
* Fixed and Enabled Library reinitialization (#291)
- Replaced static driver initialization with property getter for reference passing in Core.cs::View class, this allows the library to be reinitialized at any time.
- Made the Shutdown method on Core.cs::Application class public, since there is no reason to keep it private. Applications can shutdown the library and revert the console to the initial stage by calling it.
- Fixed a memory-leak on Drivers/WindowsDriver class by destroying the generated screen buffers at library shutdown by calling CloseHandle.
- Minor change to Core.cs::Application.Init(Func<Toplevel>) for better initialization status tracking, via backend property instead of relying on the Top field.
* Moved `ListView.ListWrapper` out of `ListView` migueldeicaza/gui.cs#313` (#315)
* Resizing the MessageBox width to accommodate all message text (#299)
* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Resizing the MessageBox width to accommodate all message text
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
* Timefield format with bounds values (#303)
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* extract methods on ListView to make it controlable from other controls (#310)
* moveup
* MoveDown
* MovePageDown
* MovePageUp
* MarkUnmarkRow
* Allowing list items selection (#302)
* Switch netcoreapp target to netstandard2.0 (#284)
Fixes#283
Instead of adding another target framework to the list, switch from netcoreapp2.0 to netstandard2.0, as ns2.0 is a subset of netcoreapp.
* Added TextView.TextChanged event (#264)
* Prepare for 0.25
* Remove travis link
* Revert Daniel's change 00c5997daa as it prevents the solution from building on Mac
* Prepare for 0.26
* Restore some files that were deleted by Daniel's commit that I had not restored
* Fixed out of range exception and text redraw when navigate backward (#320)
* Typo fix (#321)
* Fixes issue #306 async/await hang (#312)
* Fixed async/await hang
* Fixed async/await hang with calling Wakeup
* Moved Wake Up into lock statement
* Fixed and Enabled Library reinitialization (#291)
- Replaced static driver initialization with property getter for reference passing in Core.cs::View class, this allows the library to be reinitialized at any time.
- Made the Shutdown method on Core.cs::Application class public, since there is no reason to keep it private. Applications can shutdown the library and revert the console to the initial stage by calling it.
- Fixed a memory-leak on Drivers/WindowsDriver class by destroying the generated screen buffers at library shutdown by calling CloseHandle.
- Minor change to Core.cs::Application.Init(Func<Toplevel>) for better initialization status tracking, via backend property instead of relying on the Top field.
* Moved `ListView.ListWrapper` out of `ListView` migueldeicaza/gui.cs#313` (#315)
* Resizing the MessageBox width to accommodate all message text (#299)
* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Resizing the MessageBox width to accommodate all message text
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
* Timefield format with bounds values (#303)
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* extract methods on ListView to make it controlable from other controls (#310)
* moveup
* MoveDown
* MovePageDown
* MovePageUp
* MarkUnmarkRow
* Allowing list items selection (#302)
* Added sub menus into menu bar with mouse and key navigation
* Fetch from upstream/master
* Fetch from upstream/master
* Fetch from upstream/master
* Fetch from upstream/master
* Fetch from upstream/master
* Add documentation on ISupportInitialize/ISupportInitializeNotification (#286)
* Switch netcoreapp target to netstandard2.0 (#284)
Fixes#283
Instead of adding another target framework to the list, switch from netcoreapp2.0 to netstandard2.0, as ns2.0 is a subset of netcoreapp.
* Added TextView.TextChanged event (#264)
* Fixed key events traversal for modal dialogs (#288)
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Prepare for 0.25
* Remove travis link
* Revert Daniel's change 00c5997daa as it prevents the solution from building on Mac
* Prepare for 0.26
* Restore some files that were deleted by Daniel's commit that I had not restored
* Fixed out of range exception and text redraw when navigate backward (#320)
* Typo fix (#321)
* Fixes issue #306 async/await hang (#312)
* Fixed async/await hang
* Fixed async/await hang with calling Wakeup
* Moved Wake Up into lock statement
* Support menu items that are null so they can be drawn as a menu separator (#304)
* Fixed and Enabled Library reinitialization (#291)
- Replaced static driver initialization with property getter for reference passing in Core.cs::View class, this allows the library to be reinitialized at any time.
- Made the Shutdown method on Core.cs::Application class public, since there is no reason to keep it private. Applications can shutdown the library and revert the console to the initial stage by calling it.
- Fixed a memory-leak on Drivers/WindowsDriver class by destroying the generated screen buffers at library shutdown by calling CloseHandle.
- Minor change to Core.cs::Application.Init(Func<Toplevel>) for better initialization status tracking, via backend property instead of relying on the Top field.
* Moved `ListView.ListWrapper` out of `ListView` migueldeicaza/gui.cs#313` (#315)
* Resizing the MessageBox width to accommodate all message text (#299)
* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Resizing the MessageBox width to accommodate all message text
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
* Timefield format with bounds values (#303)
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* extract methods on ListView to make it controlable from other controls (#310)
* moveup
* MoveDown
* MovePageDown
* MovePageUp
* MarkUnmarkRow
* Allowing list items selection (#302)
* Fetch from upstream/master
* Fetch from upstream/master
* Fetch from upstream/master
* Add documentation on ISupportInitialize/ISupportInitializeNotification (#286)
* Switch netcoreapp target to netstandard2.0 (#284)
Fixes#283
Instead of adding another target framework to the list, switch from netcoreapp2.0 to netstandard2.0, as ns2.0 is a subset of netcoreapp.
* Added TextView.TextChanged event (#264)
* Fixed key events traversal for modal dialogs (#288)
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Prepare for 0.25
* Remove travis link
* Revert Daniel's change 00c5997daa as it prevents the solution from building on Mac
* Prepare for 0.26
* Restore some files that were deleted by Daniel's commit that I had not restored
* Fixed out of range exception and text redraw when navigate backward (#320)
* Typo fix (#321)
* Fixes issue #306 async/await hang (#312)
* Fixed async/await hang
* Fixed async/await hang with calling Wakeup
* Moved Wake Up into lock statement
* Support menu items that are null so they can be drawn as a menu separator (#304)
* Fixed and Enabled Library reinitialization (#291)
- Replaced static driver initialization with property getter for reference passing in Core.cs::View class, this allows the library to be reinitialized at any time.
- Made the Shutdown method on Core.cs::Application class public, since there is no reason to keep it private. Applications can shutdown the library and revert the console to the initial stage by calling it.
- Fixed a memory-leak on Drivers/WindowsDriver class by destroying the generated screen buffers at library shutdown by calling CloseHandle.
- Minor change to Core.cs::Application.Init(Func<Toplevel>) for better initialization status tracking, via backend property instead of relying on the Top field.
* Moved `ListView.ListWrapper` out of `ListView` migueldeicaza/gui.cs#313` (#315)
* Resizing the MessageBox width to accommodate all message text (#299)
* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Resizing the MessageBox width to accommodate all message text
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
* Timefield format with bounds values (#303)
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* extract methods on ListView to make it controlable from other controls (#310)
* moveup
* MoveDown
* MovePageDown
* MovePageUp
* MarkUnmarkRow
* Allowing list items selection (#302)
* Fetch from upstream/master
* Switch netcoreapp target to netstandard2.0 (#284)
Fixes#283
Instead of adding another target framework to the list, switch from netcoreapp2.0 to netstandard2.0, as ns2.0 is a subset of netcoreapp.
* Added TextView.TextChanged event (#264)
* Prepare for 0.25
* Remove travis link
* Revert Daniel's change 00c5997daa as it prevents the solution from building on Mac
* Prepare for 0.26
* Restore some files that were deleted by Daniel's commit that I had not restored
* Fixed out of range exception and text redraw when navigate backward (#320)
* Typo fix (#321)
* Fixes issue #306 async/await hang (#312)
* Fixed async/await hang
* Fixed async/await hang with calling Wakeup
* Moved Wake Up into lock statement
* Support menu items that are null so they can be drawn as a menu separator (#304)
* Fixed and Enabled Library reinitialization (#291)
- Replaced static driver initialization with property getter for reference passing in Core.cs::View class, this allows the library to be reinitialized at any time.
- Made the Shutdown method on Core.cs::Application class public, since there is no reason to keep it private. Applications can shutdown the library and revert the console to the initial stage by calling it.
- Fixed a memory-leak on Drivers/WindowsDriver class by destroying the generated screen buffers at library shutdown by calling CloseHandle.
- Minor change to Core.cs::Application.Init(Func<Toplevel>) for better initialization status tracking, via backend property instead of relying on the Top field.
* Moved `ListView.ListWrapper` out of `ListView` migueldeicaza/gui.cs#313` (#315)
* Resizing the MessageBox width to accommodate all message text (#299)
* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Resizing the MessageBox width to accommodate all message text
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
* Timefield format with bounds values (#303)
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* extract methods on ListView to make it controlable from other controls (#310)
* moveup
* MoveDown
* MovePageDown
* MovePageUp
* MarkUnmarkRow
* Allowing list items selection (#302)
* Fetch from upstream/master
* Fixes#342 and improves color change interaction.
Usage:
Colors.Base.Normal = new Terminal.Gui.Attribute (Color.Green, Color.Black);
* Inserted new line at the end of file .
Changed method name to SetAttribute in the ColorScheme class.
* Prepare for 0.70
* Prepare for 0.70
* Prepare for 0.70
* Prepare for 0.70
* Prepare for 0.70
* Prepare for 0.70
* Prepare for 0.70
* Prepare for 0.70
* Timefield format with bounds values (#303)
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* Prepare for 0.70
* Removed duplicated Attribute Disabled property
* Fixed some bugs with the mouse event and text selection, copy, cut and paste. There is still a random failure in the mouse events that lock on button released and only trigger button clicked after moving the mouse.
* Failure behavior solved. It was a threading safe issue. Driver.Wakeup () moved to the Post method on MainLoopSyncContext class solved it.
* Changed the default for RightmostButtonPressed to Button4 and enabled clicked-drag
* Added support for Button Triple Clicked too. FileDialog changed to deal with ButtonClicked.
* Fixed a bug with the timer when dragging.
* Fixes#343 - Added AllowsMultipleSelection to the ListView
* Fixes#346 issue with enhancers characters, but it only could be apply after the pull requests at NStack are merged because of the Rune.ColumnWidth error.
* Fixes code format.
* Enabled Button Pressed with ReportMousePosition simultaneously.
* Dragging is already working. TODO: optimize, only SetNeedsDisplay on the before/after regions.
* Fixes the extra characters that remains in case the new text length is smaller than the older.
* Fixes#349 TextField user typed input no longer fires Changed event.
* Includes ControlKeyState for all the buttons events.
* Added SetSourceAsync to ListView
* Menu enhancement that works well, even if the top level has no other views. Working in further feature that if clicked outside of the menu it will closed.
* Some more features in mouse and in core.
* Added more mouse events flags, drag features, toplevel color and more...
* Remove unnecessary SetNeedsDisplay.
* Fixes a bug in the label
* Added StatusBar from pr #201 with a little change.
* Added features to TextField like mouse selection with copy, cut and paste shortcut keys. Now it's possible to use the combination of the Alt+Control+delta keys. It also be possible use special characters like €.
* Simplifying the menu with better performance.
* Private keyword dropped in all files and added some documentation.
* Changed demo to reflect the added and changes features.
* Added csproj and config files to verify if it won't trigger errors from Travis.
* Demo with the StatusBar.
* Patch for position of the StatusBar
* Removed unnecessary nugget packages.
* It looks like packages.config files are obsolete. Travis verification test.
* Update Designer.csproj
Use Stack 0.14
* Use NStack 0.14
* Use NStack 0.14
* Use NStack 0.14
* Use NStack 0.14
* Changed the NStack.Core and System.ValueTuple versions.
* Added System.ValueTuple to Example project.
* Remove System.ValueTuple and added NETStandard.Library to Example project.
* Try to restore the nuget packages.
* Revert "Try to restore the nuget packages."
This reverts commit 3957e022c3.
* Added NETStandard.Library ti the root packages.config
* Upgrade to "Microsoft.NETCore.Platforms" version="
2.0.1"
* Added <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
* Targeting framework 472.
* Removed "System.ValueTuple" Version="4.5.0" from Terminal.Gui project.
* More cleaning to the projects.
* I guess you don't need this.
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
Co-authored-by: Daniel Cazzulino <daniel@cazzulino.com>
Co-authored-by: Marius Ungureanu <teromario@yahoo.com>
Co-authored-by: miguel <miguel.de.icaza@gmail.com>
Co-authored-by: Miguel de Icaza <miguel@gnome.org>
Co-authored-by: imaras <imaras@net.hr>
Co-authored-by: Kasper B. Graversen <kbilsted@users.noreply.github.com>
Co-authored-by: Fabian R <kderazorback@me.com>
Co-authored-by: Timothy <timothyparez@gmail.com>
* Switch to stable version of .NET framework reference assemblies
* Bump dotnet to get fix to nuget restore for unsigned packages
Related to https://github.com/NuGet/Home/issues/7574
* Update .travis.yml
* Update .travis.yml
* Update .travis.yml
Bump to latest stable
* Implemented lower and upper bounds to TimeField
* Passing old text to the Changed event handler
* Change sepChar from char to string in TimeField
* Changing comparison from ':' to sepChar.ToCharArray () [0]
* Fixed key events traversal for modal dialogs
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
* Resizing the MessageBox width to accommodate all message text
Co-authored-by: Adrian Alonso <adrianalonso@gmail.com>
- Replaced static driver initialization with property getter for reference passing in Core.cs::View class, this allows the library to be reinitialized at any time.
- Made the Shutdown method on Core.cs::Application class public, since there is no reason to keep it private. Applications can shutdown the library and revert the console to the initial stage by calling it.
- Fixed a memory-leak on Drivers/WindowsDriver class by destroying the generated screen buffers at library shutdown by calling CloseHandle.
- Minor change to Core.cs::Application.Init(Func<Toplevel>) for better initialization status tracking, via backend property instead of relying on the Top field.
The key must be propagated initially to the first chain element
before evaluating if we should stop because of the handled or
the Modal condition. Otherwise the modal dialog
won't get any process key notification.
This fixes c072e29a68
It's quite common for key events to flow up the containment hierarchy in
UI frameworks. This could simplify management of global hotkeys that can
be placed in a top-level "App" and have all views shown subsequently just
"inherit" that behavior as long as they let the key event flow.
Propagating keys upwards is typically undesirable in modal dialogs, so we
set it to true in the `Dialog` base class.
Make sure we make a copy of the items since a key handler could modify the
top-level collection (i.e. by closing a dialog in between this processing).
`indent_size` came before `tab_width` and the latter is basically a fallback for the former,
as far as I can understand https://github.com/microsoft/vscode-editorconfig/blob/master/src/editorConfigMain.ts#L248.
However, VS behaves weirdly when one is defined and not the other. It gets the tabs
completely wrong. If both have the same value, however, it works as expected. So make
it easy for contributors on VS to contribute by adding this value.
Hopefully, this will be a no-op on VSM.
When building UIs, it's quite common to separate the UI/control building code
from the interaction logic by placing it all in a single method, usually
`InitializeComponent` or similar. This also allows other tooling to generate
such a method from potentially other UI languages (XML/Json/Yaml/whatever)
at build-time.
Even if no codegen is involved, having the UI building in a single place
allows for creating base views that provide some common boilerplate that
derived views can subsequently extend by overriding the base "initialize"
method.
The tricky part is that the base class cannot provide (at least that's
against the .NET guidelines and it certainly makes for some confusing and
potentially hard to reason bugs) a *virtual* method to do so and invoke
it from the constructor, since the base class constructor is called and
finishes *before* the derived class constructor does. This means that
fields that may be required by the derived view to build its UI in its
override of the "initialize" method would not be available by the time
the base class calls it.
Which is why the best place to handle such an approach is in the library
itself, which controls the exact time when a view is about to be shown.
Since no other method is provided for "initialize once before showing
for the first time" scenario, a good trade-off is to simply enable this
mechanism as totally opt-in by allowing views to implement `ISupportInitialize`
(which provides the `BeginInit`/`EndInit` pair) or `ISupportInitializeNotification`
(which adds `IsInitialized`/`Initialized` property/event). If the former
is implemented, the Begin/End will be called on every `Run`, since the
library has no way of knowing if the view has already been initialized
before. In these cases, the views could just clear all its controls in
the `BeginInit` and reconstruct the UI entirely in `EndInit`. The
`ISupportInitializeNotification` interface allows more control for views
that require that Begin/End init are called exactly once.
* Unify projects in SDK-style and PackageReference
* Add a note on the known issue about dlls not being copied
* Bump CI to a more recent stable version of Mono
This adds support for .net472, the first version of .NET
with full support for netstandard2.0
The existing property is now considered legacy and results in a build warning:
```
##[warning]C:\Program Files\dotnet\sdk\3.0.100\Sdks\NuGet.Build.Tasks.Pack\buildCrossTargeting\NuGet.Build.Tasks.Pack.targets(198,5): Warning NU5125: The 'licenseUrl' element will be deprecated. Consider using the 'license' element instead.
```
When invoking an action in the main loop, the token will be cancelled (see
`MainLoop.Invoke` and `WindowsDriver.Wakeup`). At this point when the
EventsPending is running we must avoid throwing by waiting using a cancelled token:
`eventReady.Wait(waitTimeout, tokenSource.Token)`
And make sure we reach the disposal of the token source. Otherwise we keep throwing
over and over and cause a severe performance problem for the running app.
In more "modern" app programming models (such as WPF/UWP/XF), the "app" is a
derived class that contains the UI building behavior and is the entry point.
Typically in the constructor of such a class, you'd build the main UI, menus,
etc. In the context of gui.cs, that would mean the `Main` method would typically
be:
```
Application.Init();
Application.Run(new App());
```
In order to make the code flow consistent with the existing behavior, the existing
`Init` implementation was moved to a private method that now receives a `Func<TopLevel>`
to create the top level view upon initialization. The existing behavior is unchanged
since the new `Init` just invokes the previous `TopLevel.Create` as before.
The new `Run<T>` allows the `Main` method to simply be:
```
Application.Run<App>();
```
NOTE: this was added since doing `Application.Run(new App());` failed in the
`Window`-derived class when trying to access the static `Colors` since those were
initialized as part of `Init` and creating the `App` class was too early, preventing
this slightly simpler model.
* added a public api function called SetTerminalResized for drivers
* bugfix: overflow exception has occurred on (Rune)c when c is an integer => casting to uint solved the problem
* Apply suggestions from code review
Co-Authored-By: Marius Ungureanu <teromario@yahoo.com>