* Initial plan
* Refactor tests to use modern ApplicationImpl.Coordinator architecture instead of legacy Application.RunIteration
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Changes before error encountered
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Replace Application.RunIteration implementation to use modern ApplicationImpl.Coordinator architecture
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Simplify Application.RunIteration to directly delegate to ApplicationImpl.Coordinator without legacy infrastructure
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Update multitasking.md documentation to use Application.AddTimeout/RemoveTimeout instead of deprecated Application.MainLoop methods
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Refactor contribution guidelines and documentation
- Consolidated all contribution-related instructions into `CONTRIBUTING.md` as the single source of truth.
- Updated `copilot-instructions.md` and `AGENTS.md` to reference `CONTRIBUTING.md`.
- Enhanced build, test, and CI/CD workflow documentation.
- Updated repository structure documentation in `README.md` and `CONTRIBUTING.md`.
- Reinforced coding conventions and streamlined testing requirements.
- Documented GitHub Actions workflows and provided local CI replication steps.
- Refined API documentation requirements and PR guidelines.
- Simplified `.sln` file and removed redundant content.
- Updated links to point to the latest documentation resources.
* Revamp bug report template for clarity and detail
Updated the bug report template to improve structure, readability, and comprehensiveness:
- Specified "Terminal.Gui" in the `about` section.
- Replaced bold headings with Markdown heading syntax.
- Enhanced "To Reproduce" with placeholders for code and behavior details.
- Added an "Environment" section to collect OS, terminal, PowerShell, .NET, and `Terminal.Gui` version details.
- Expanded "Screenshots" to include GIFs and terminal output instructions.
- Removed outdated "Desktop" and "Smartphone" sections, consolidating relevant details.
- Improved "Additional Context" with prompts for consistency, prior behavior, and error messages.
- Streamlined "For Maintainers" instructions for setting project and milestone.
These changes aim to make bug reports more actionable and easier to reproduce.
* Remove [Obsolete] attribute and pragma warnings from Application.RunIteration - method now uses modern architecture internally
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Refactor Application.Run.cs for clarity and cleanup
Removed debug assertions and unused/commented-out code to simplify logic and improve maintainability. Renamed `forceDraw` to `forceRedraw` in `LayoutAndDraw` for better clarity. Removed the internal `OnNotifyStopRunState` method and its associated logic, indicating a refactor of the stop notification mechanism.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Tig <tig@users.noreply.github.com>
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Initial plan
* Refactor Application.Mouse - Create IMouse interface and Mouse implementation
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Add enhanced documentation for Application.Mouse property
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Add parallelizable unit tests for IMouse interface
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Refactor Application.Mouse for decoupling and parallelism
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Move HandleMouseGrab method to IMouseGrabHandler interface
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Add parallelizable tests for IMouse and IMouseGrabHandler interfaces
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Add MouseEventRoutingTests - 27 parallelizable tests for View mouse event handling
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Fix terminology: Replace parent/child with superView/subView in MouseEventRoutingTests
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Fix coding standards: Use explicit types and target-typed new() in test files
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Update coding standards documentation with explicit var and target-typed new() guidance
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Refactor Application classes and improve maintainability
Refactored `Sixel` property to be immutable, enhancing thread safety.
Cleaned up `ApplicationImpl` by removing redundant fields, restructuring
methods (`CreateDriver`, `CreateSubcomponents`), and improving exception
handling. Updated `Run<T>` and `Shutdown` methods for consistency.
Standardized logging/debugging messages and fixed formatting issues.
Reorganized `IApplication` interface, added detailed XML documentation,
and grouped related methods logically.
Performed general code cleanup, including fixing typos, improving
readability, and removing legacy/unnecessary code to reduce technical debt.
* Code cleanup
* Remove unreferenced LayoutAndDraw method from ApplicationImpl
* Code cleanup and TODOs
- Updated namespaces to reflect the new structure.
- Added `Driver`, `Force16Colors`, and `ForceDriver` properties.
- Introduced `Sixel` collection for sixel image management.
- Added lifecycle methods: `GetDriverTypes`, `Shutdown`, and events.
- Refactored `Init` to support legacy and modern drivers.
- Improved driver event handling and screen abstraction.
- Updated `Run` method to align with the application lifecycle.
- Simplified `IConsoleDriver` documentation.
- Removed redundant methods and improved code readability.
* Refactor LayoutAndDraw logic for better encapsulation
Refactored `Application.Run` to delegate `LayoutAndDraw` to
`ApplicationImpl.Instance.LayoutAndDraw`, improving separation
of concerns. Renamed `forceDraw` to `forceRedraw` for clarity
and moved `LayoutAndDraw` implementation to `ApplicationImpl`.
Added a new `LayoutAndDraw` method in `ApplicationImpl` to
handle layout and drawing, including managing `TopLevels`,
handling active popovers, and refreshing the screen. Updated
the `IApplication` interface to reflect the new method and
improved its documentation.
Implemented `RequestStop` in `ApplicationImpl` and fixed
formatting inconsistencies in `Run<T>`. Added TODOs for future
refactoring to encapsulate `Top` and `TopLevels` into an
`IViewHierarchy` and move certain properties to `IApplication`.
* Refactor ApplicationImpl to enhance mouse and keyboard support
Added a new `Mouse` property to the `ApplicationImpl` class,
replacing its previous declaration, to improve mouse
functionality. Updated `MouseGrabHandler` to initialize with
a default instance of `MouseGrabHandler`.
Added comments to ensure the preservation of existing keyboard
settings (`QuitKey`, `ArrangeKey`, `NextTabKey`) for backward
compatibility. These changes enhance clarity, functionality,
and maintainability of the class.
* Merge IMouseGrabHandler into IMouse - consolidate mouse handling into single interface
Co-authored-by: tig <585482+tig@users.noreply.github.com>
* Rename Mouse to MouseImpl and Keyboard to KeyboardImpl for consistency
Co-authored-by: tig <585482+tig@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: tig <585482+tig@users.noreply.github.com>
Co-authored-by: Tig <tig@users.noreply.github.com>