Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trying fixing #518. Almost functions work on both Windows and Unix with the NetDriver. #1014

Merged
merged 3 commits into from
Nov 18, 2020

Conversation

BDisp
Copy link
Collaborator

@BDisp BDisp commented Nov 17, 2020

  • To run this PR is needed passing the -usc argument in the UICatalog project or uncomment the Application.UseSystemConsole = true; in the Example or UICatalog projects. On the UICatalog trying select "Use System Console" from the menu item "Diagnostics", which is bad spelled, won't work because a driver must be setted on startup and not after driver was being created. To open the menu press F9 or Alt+hotkey.
  • Interestingly, it runs faster on WSL than on CMD.
  • Consumes more CPU stress than the WindowsDriver or CursesDriver may be due the workaround with the WaitWinChange loop method to capture window resizing.
  • It could be a good alternative to use a common platform for both OS with the new Net5.0 version fusion of the Net Core and Net Framework in only one tool. But we need to wait a long time yet :-)
  • I think that the CSI (Control Sequence Introducer) could be a cross reference to achieve most of the common functions cross platform OS compatible.
  • Control keys, like Ctrl, Alt, Shift, Capslock and Numlock, aren't detected alone without combinations with other keys.
  • In WSL Shift+End prints "1;2F" on a TextField instead selecting the characters on the right.
  • I think mouse interaction could be achieved with CSI code and developers with more knowledge with code sequences would be a very good help.
  • I would prefer convert the buffer size with current window size but I couldn't achieve and that why I created the new abstract property Top to only display from the current windows top unto the window height. Unfortunately in the WSL the Top is always equal to 0 no matter where the position of the vertical scroll bar.
  • The good news is that all events like timers, events actions methods, thread events, all work without any problems. Try run the Threading scenario and you will see that.
  • On WSL the terminal does not hangs with the Net5.0 unlike using ncurses.
  • The UICatalog "Diagnostics" menu was changed to use all the Enum ConsoleDriver.DiagnosticFlags and was removed the "Use _System Console" which has nothing to do with these diagnostics.

@tig
Copy link
Collaborator

tig commented Nov 17, 2020

Almost? What doesn't work?

@BDisp
Copy link
Collaborator Author

BDisp commented Nov 17, 2020

For now only the mouse. I only used Console properties and functions that work on both.

@tig tig merged commit 8905dd9 into gui-cs:master Nov 18, 2020
@BDisp BDisp deleted the net-driver-improvements branch November 18, 2020 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants