Copilot dd12df7fb7 Fixes #4176. Removes View.MouseClick (#4450)
* Initial plan

* Add comprehensive MouseClick removal analysis

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Fix code review feedback on analysis document

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Add actual line numbers to analysis document

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Final polish on analysis document - clarify TextView

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Phase 3: Port 6 simple Views from MouseClick to Selecting/MouseBindings

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Phase 2: Port 10 Scenarios from MouseClick to Selecting/remove

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Update analysis document - Phases 2 & 3 complete

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Fix failing tests - Button multi-button support and Label focus handling

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Phase 4: Port ScrollBar from OnMouseClick to OnSelecting; remove analysis doc

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Phase 5: Update/remove tests that explicitly test MouseClick API

Co-authored-by: tig <585482+tig@users.noreply.github.com>

* Code cleanup

* Remove MouseClick event

Consolidated mouse event handling by removing the `MouseClick`
event and integrating its functionality into the `MouseEvent`
event. Simplified `MouseEventArgs` documentation and added
support for invoking commands bound to mouse events.

Reorganized code by removing `Mouse Pressed Events` and
`Mouse Click Events` regions, introducing a new `WhenGrabbed
Handlers` region. Updated tests to replace `MouseClick` with
`MouseEvent`, adjusted test logic, and improved variable
naming for clarity.

Removed redundant assertions and unused code related to
`MouseClick`. Improved event propagation logic to ensure
proper handling of unhandled events. Performed general code
cleanup to enhance readability and maintainability.

* Updated deep dives.

---------

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>
2025-12-06 14:41:20 -07:00
2024-06-25 05:53:19 -07:00
2025-06-12 12:16:54 -06:00
2025-05-31 19:25:30 -06:00
2025-12-01 13:33:13 -07:00
2025-05-31 19:25:30 -06:00

Version codecov Downloads License Bugs

Terminal.Gui v2

Cross-platform UI toolkit for building sophisticated terminal UI (TUI) applications on Windows, macOS, and Linux/Unix.

logo

  • v2 Alpha (Current): NuGet Version - Recommended for new projects
  • v1 (Legacy): Version - Maintenance mode only

Important:

  • v1 is in maintenance mode - only critical bug fixes accepted
  • v2 Alpha is recommended for new projects - API is stable with comprehensive features
  • Breaking changes possible before Beta, but core architecture is solid

Sample app

Quick Start

Install the Terminal.Gui.Templates, create a new TUI app, and run it:

dotnet new --install Terminal.Gui.templates
dotnet new tui -n myproj
cd myproj
dotnet run

Press Esc to exit (the default QuitKey).

Run the comprehensive UI Catalog demo to explore all controls:

dotnet run --project Examples/UICatalog/UICatalog.csproj

Simple Example

using Terminal.Gui;

using IApplication app = Application.Create ();
app.Init ();

using Window window = new () { Title = "Hello World (Esc to quit)" };
Label label = new ()
{
    Text = "Hello, Terminal.Gui v2!",
    X = Pos.Center (),
    Y = Pos.Center ()
};
window.Add (label);

app.Run (window);

See the Examples directory for more.

Build Powerful Terminal Applications

Terminal.Gui enables building sophisticated console applications with modern UIs:

  • Rich Forms and Dialogs - Text fields, buttons, checkboxes, radio buttons, and data validation
  • Interactive Data Views - Tables, lists, and trees with sorting, filtering, and in-place editing
  • Visualizations - Charts, graphs, progress indicators, and color pickers with TrueColor support
  • Text Editors - Full-featured text editing with clipboard, undo/redo, and Unicode support
  • File Management - File and directory browsers with search and filtering
  • Wizards and Multi-Step Processes - Guided workflows with navigation and validation
  • System Monitoring Tools - Real-time dashboards with scrollable, resizable views
  • Configuration UIs - Settings editors with persistent themes and user preferences
  • Cross-Platform CLI Tools - Consistent experience on Windows, macOS, and Linux
  • Server Management Interfaces - SSH-compatible UIs for remote administration

See the Views Overview for available controls and What's New in v2 for architectural improvements.

Documentation

Comprehensive documentation is at gui-cs.github.io/Terminal.Gui.

Getting Started

Migration & Deep Dives

See the documentation index for all topics.

Installing

dotnet add package Terminal.Gui --version "2.0.0-alpha.*"

v2 Develop (Latest)

dotnet add package Terminal.Gui --version "2.0.0-develop.*"

v1 Legacy

dotnet add package Terminal.Gui --version "1.*"

Or use the Terminal.Gui.Templates.

Contributing

Contributions welcome! See CONTRIBUTING.md.

History

See gui-cs for project history and origins.

Languages
C# 99.4%
PowerShell 0.6%