-
Notifications
You must be signed in to change notification settings - Fork 702
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
Fixes #3692++ - Rearchitects drivers #3837
Open
tznind
wants to merge
190
commits into
gui-cs:v2_develop
Choose a base branch
from
tznind:v2-drivers
base: v2_develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
190 commits
Select commit
Hold shift + click to select a range
efbdfbe
Add simple loop input classes for Net and Win32
tznind 8000c8d
Add scaffolding
tznind b0fe7a4
Adjust layout
tznind 43418b5
Add Drivers2 test project and make everything public. Also add output
tznind 77febd8
Launch with "win"
tznind 6a535b4
Merge branch 'v2_develop' into v2-drivers
tig e24d06f
Deal with strange thread requirements of Win32 apis
tznind d267a0b
Merge branch 'v2-drivers' of https://github.com/tznind/gui.cs into v2…
tznind 4cd73c7
WIP output buffer
tznind eb61350
Merge branch 'v2_develop' into v2-drivers
tznind 0655f0d
WIP try to exercise new buffer for hello world
tznind 15c9c07
Merge branch 'v2-drivers' of https://github.com/tznind/gui.cs into v2…
tznind aaef87d
Hello world appeared!
tznind ea3468e
Rainbows!
tznind d98a841
suppress suspicious check
tznind 584a2ab
Add props and random render for fun
tznind c6b9c28
Starting on input processing
tznind 6124deb
WIP : mouse support
tznind 9f6e23a
Fix not reseting state after releasing mouse events
tznind 24c2a5a
Refactor InputProcessor to be abstract with typed inheritors
tznind 4c63297
WindowsOutput and InputProcessor working ish
tznind 485be29
Add window size support
tznind d081b4d
Fix WindowsInputProcessor to handle mouse properly
tznind be8c339
Merge branch 'v2_develop' into v2-drivers
tznind a066f23
Merge branch 'v2_develop' into v2-drivers
tznind 5e202b0
Add IConsoleDriver
tznind ee335bd
WIP: trying to implement IConsoleDriver facade
tznind 90b5836
WIP Implement more of facade
tznind 68f39a8
Building with new facacde
tznind e46b2a5
Tests passing
tznind 02d1a7c
Set Application.Driver to facade when building main loop via coordinator
tznind d0ae141
Start working towards integrating View/Application with v2
tznind f1f9c95
Add key up and mouse handler
tznind e7b40a3
Update class diagram to show scheduler and facade
tznind 04c467e
WIP mouse state machine - commented out for now
tznind 12edf58
Merge branch 'v2_develop' into v2-drivers
tznind 231270d
Click event getting raised
tznind 27165e9
Merge branch 'v2-drivers' of https://github.com/tznind/gui.cs into v2…
tznind e9b8264
Working on hit tracking
tznind 0fd0f15
Ability to switch focus
tznind 7dead87
Update class diagram
tznind 1214a96
merge ansi-parser into branch
tznind f280048
fix for 0 based seq
tznind 59a7479
Update class diagram
tznind 889e426
Update class diagram
tznind d91a87f
Merge branch 'ansi-parser' into v2-drivers
tznind e2fd4fe
More conservative version of IApplication
tznind cd65e0d
Add ChangeInstance method
tznind 0592f5f
Merge branch 'iapplication-2' into v2-drivers
tznind b504e0f
WIP: how to create a v2 application
tznind 280f288
WIP net driver working for Top (but not subviews)
tznind 3785171
Merge branch 'v2_develop' into v2-drivers
tznind d418847
Add RequestStop to IApplication
tznind 4fe25e3
Add IsLegacy field to IApplication so we can turn off janky code in a…
tznind 3a09c2f
WIP trying to get exit to work
tznind 9744041
Update class diagram
tznind ede6b43
Merge branch 'v2_develop' into v2-drivers
tznind 2360ed8
WIP can exit with 2x Esc (bug) and can open scenario
tznind 9007caa
Merge branch 'v2-drivers' of https://github.com/tznind/gui.cs into v2…
tznind d8ac1c4
Can switch between apps but have lost keybindings somehow
tznind f2497ef
Add esc timeout into InputProcessor
tznind 8405ef1
Fix event wiring
tznind d0dd43a
Move Idles/Timeouts into their own self contained class TimedEvents b…
tznind 634693a
WIP try to resolve the fact that timeouts/locks are deadlock city
tznind 00990ba
Revert "WIP try to resolve the fact that timeouts/locks are deadlock …
tznind 4482c21
Fix reverted TimedEvents to operate the same as before - we can refac…
tznind 3ea02ca
V2 TimedEvents support
tznind 2650e36
Add timed events to class diagram
tznind be7d8df
WIP: Trying to get windows driver to work
tznind cea3e77
WIP WindowsConsole / WindowsOutput
tznind 9a72628
Make input infinite thread in WindowsConsole constructor optional
tznind 25968c1
Remove dependency on WindowsConsole
tznind ac58ed1
Fledgling mouse support for windows input
tznind da533f1
Merge branch 'v2_develop' into v2-drivers
tznind 4c667f3
Fix for new names
tznind 650a075
Use LayoutAndDraw on iteration
tznind a1dcb08
How we would like draw loop to be
tznind 6d4f6c0
Menu working
tznind adceea8
Revert removal of Suspend
tznind 128b219
Revert changes to PositionCursor
tznind 32aa24b
Revert lots of little changes to accessibility etc in main codebase
tznind e832d61
Remove debug only reference
tznind 293fe4e
Do not deadlock in Stop if invoked
tznind f0a5e04
Support specify v2net or v2win
tznind 13de24b
Update launch settings for new v2 options
tznind 124ab9a
Move v2 driver bootstrap logic into Application and out of UICatalog
tznind 74dc894
Add IWindowSizeMonitor
tznind c31d11d
Make sleep wait in input loop conditional
tznind c01f974
Create first test for Application2
tznind 55fb132
Add shutdown call
tznind 8216597
Allow DI of input/output
tznind ba09cd2
Fix wrong lock in TimedEvents
tznind 52a0dec
tests for AnsiResponseParser HandleMouse
tznind e0f6643
Switch to established method EscSeqUtils.MapKey
tznind efd6b97
ConsoleInput test
tznind 0a0da59
Add try/catch for the two main loops
tznind 2e35203
Make MainLoop<T> execute as part of Application2.Run instead of in it…
tznind 7dacacc
Add clipboards
tznind c6e96dc
Simplify branching structure of clipboard construction
tznind 4354712
Add mouse button narratives for all buttons not just 1
tznind 83b60d2
Refactor MouseInterpreter
tznind 151f528
Add logging to Terminal.Gui
tznind e4d07d5
Change to DiagnosticSource for metrics
tznind 7327a86
Switch to Meter and Histogram for metrics
tznind 2101849
Fix verbose logging to work correctly and add some
tznind 0a2cddf
Logging, metrics and fix performance issue in new ConsoleInput class
tznind 31cec86
Log screen size changes
tznind 8866b73
Fix net resizing not redrawing
tznind 72a80bb
Log crit if net input boot goes badly - even if unit tests
tznind 35e9b3e
Add metric for invokes etc
tznind 1913154
Rewrite test for Theory
tznind cf1e789
Work on MouseInterpreter
tznind 617e9d9
Vastly simplify MouseInterpreter
tznind db8942d
AnsiResponseParser now handles net event keyboard inputs for cursor keys
tznind 587c5a4
Log what type of driver is being created and fix 'bug' where v2net wo…
tznind 26e4776
warning fixes
tznind 5ca3c39
warnings and xml doc
tznind 3aae346
warnings and xmldoc
tznind 0bfcdca
Code Cleanup
tznind 3929feb
nullability
tznind db99056
xml doc and NRT
tznind 513ef2a
Tidy up
tznind cfc59b9
tidy up and nrt
tznind f97812b
Add todo
tznind c800fa6
Fix unit test
tznind 2a7b391
Fix for unit tests
tznind d9a05c7
unit test fixes
tznind 263e66c
Warnings and nrt
tznind 75f0f0a
warnings and xmldoc
tznind e8efe80
Work on shift+ctrl+etc with arrow keys as escape sequences
tznind 4cd54ac
Fix keyboard parser to work correctly with shift/alt etc
tznind 3c20bc5
Add test for keyboard event in AnsiResponseParser
tznind 4b88f71
Restore Run/Shutdown test
tznind 4fbd00e
Harden ApplicationV2 boot process
tznind 4f80d74
Add test for explicitly requesting net
tznind 445b302
Fix not disposing output
tznind e8815dc
Fix GetSupportedCultures not called
tznind 4d2d5f1
Emit click separate and after release events
tznind 2a8dc6e
fix test
tznind 99bdd84
Add trace logging when we create an 'extra' event - for mouse clicks
tznind 7f83873
Brute force fix for #3881
tznind aa8bdd7
Use helper function MapConsoleKeyInfo to support backspace etc
tznind 6c55e11
Fix windows right click etc mouse buttons
tznind 7fd6268
Add default case
tznind 39a4748
Log the view type that triggers redraw
tznind 57ef88d
Log redraws as a Counter metric and log Trace of who is causing redraws.
tznind 664dfeb
Fix cursor not showing in NetOutput and NetInputProcessor dealing wit…
tznind a0b9635
Merge branch 'v2_develop' into v2-drivers
tznind 8027078
Fix cursor logic and win close/dispose
tznind 7a557ce
Merge branch 'v2-drivers' of https://github.com/tznind/gui.cs into v2…
tznind bc27f5c
Ignore repeated calls to Stop on the same MainLoopCoordinator
tznind d8bd12c
Use mostFocused.PositionCursor return value for post drawing cursor p…
tznind c4aa1bb
Make ConsoleKeyInfo to Key public static for testing
tznind 715754c
Add ConsoleKeyInfoToKey test cases
tznind f2fcd6d
Add escape and backspace tests
tznind 1060489
Fix esc definition
tznind a521a2a
Update GetVersionInfo to show which version of ConsoleDriverFacade is…
tznind 511140b
Updated class diagram
tznind 8a62266
Update MouseInterpreterTests to cover double click
tznind e0f81e8
Only raise double click in same pos
tznind 5bbf6ec
Function key support
tznind d6c5bf6
Function key support including SS3 format (F1-F4 on some terminals).
tznind 3d99627
Add mouse wheel to windriver
tznind b18ef29
Fix AllViewsTester
tznind 98a870d
Fix not loading config manager in v2
tznind 4ad95ee
Hack for stale layout/draw when a child view is closed (e.g. modal Ab…
tznind 8689fe9
Fix WindowsInputProcessor to use the full key mapping code from Windo…
tznind a7f13d3
Move the 'convert to Key' bit of InputProcessor to seperate class for…
tznind 5a74887
Update class diagram
tznind a46d56e
Do not call for layout just because Top changed
tznind d711131
Log more info about click events being raised
tznind 706c9fa
Merge branch 'v2_develop' into v2-drivers
tznind f45ecd0
Add report mouse position to all win mouse events
tznind 71b4127
Merge branch 'v2-drivers' of https://github.com/tznind/gui.cs into v2…
tznind 181b0f7
More tests for ApplicationV2
tznind e7fb30a
Tests for generic Run in Application2 and add/remove idle
tznind 28a7110
Tests for MainLoop<T> access properties before init
tznind 8b02f2d
Add main loop coordinator test for input crash on boot
tznind 407c549
Click tests for mouse interpreter buttons 2-4
tznind cc23dd4
Add test for NetInputProcessor ProcessQueue
tznind eff1fe1
Added WindowSizeMonitorTests
tznind 2a9da50
Fix typo in test
tznind 2f0d329
Add WindowsInputProcessorTests
tznind 250cefe
Add more WindowsInputProcessorTests
tznind cc96920
Fix for never raising Released
tznind c80c796
tidy
tznind e24ba69
Fix not processing windows rightmost button after last commit
tznind 299855b
Add tests for mouse flag processing in WindowsInputProcessor
tznind 0bc58a1
Add more tests for corner cases
tznind 6b9367f
Fix for Ready event not being raised on top levels changing
tznind File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right. That must be an
Application
job.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Somehow, it seems to work with the original drivers but not the v2 ones.
V2 drivers only listen to these properties (needs layout/draw). There are no manual or triggered draws, so possibly that is why this hack is needed for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand, but I think that if you do the same thing in the
Application.LayoutAndDraw
method you'll will obtain the same result, but I could be wrong.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my code, layout and draw is only called if a subview of Top wants redrawn or layed out... I will look into it some more later