Fixes #4331 - Use Application.Screen and ScreenContents to reduce Driver coupling (#4336)

* Initial plan

* Replace direct Driver access with ViewBase helper methods

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

* Update documentation to reference View methods instead of Driver

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

* Fix documentation wording to avoid driver reference

* Fix missed Driver accesses in Slider.cs

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

* Use Application.Screen instead of ScreenRows/ScreenCols, keep MoveToScreen/FillRectScreen internal for ViewBase only

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

* Remove MoveToScreen and FillRectScreen helper methods, use Driver directly in ViewBase classes

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

* Improve documentation clarity and grammar per CONTRIBUTING.md guidelines

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

* Add MoveToScreenPosition helper to eliminate Driver.Move calls in View subclasses

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

* Remove MoveToScreenPosition helper method, Menu.cs accesses Driver directly

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

* Replace Driver.Move with View.Move in Menu.cs

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

* Update documentation to reflect Driver encapsulation changes

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

* Add PR warnings policy to CONTRIBUTING.md

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 <tig@users.noreply.github.com>
Co-authored-by: tig <585482+tig@users.noreply.github.com>
This commit is contained in:
Copilot
2025-10-26 09:48:30 -06:00
committed by GitHub
parent aef88ad4bb
commit f068709d13
25 changed files with 137 additions and 93 deletions

View File

@@ -36,6 +36,8 @@ See the [Layout Deep Dive](layout.md) and the [Arrangement Deep Dive](arrangemen
See the [Drawing Deep Dive](drawing.md).
Views should use viewport-relative coordinates for all drawing operations. The `View.Move(col, row)` method positions the cursor using viewport-relative coordinates. For screen dimensions, use @Terminal.Gui.App.Application.Screen instead of accessing the driver directly.
### Navigation
See the [Navigation Deep Dive](navigation.md).