View Deep Dive
View Lexicon & Taxonomy
Hierarchy
View - The base class for implementing higher-level visual/interactive Terminal.Gui elements. Implemented in the View base class.
SubView - A View that is contained in another view and will be rendered as part of the containing view's ContentArea. SubViews are added to another view via the Add(View?) method. A View may only be a SubView of a single View. Each View has a Subviews property that is a list of all Subviews that have been added.
SuperView - The View that is a container for SubViews. Each View has a SuperView property that references it's SuperView after it has been added.
Child View - A view that holds a reference to another view in a parent/child relationship. Terminal.Gui uses the terms "Child" and "Parent" sparingly. Generally Subview/SuperView is preferred.
Parent View - A view that holds a reference to another view in a parent/child relationship, but is NOT a SuperView of the child. Terminal.Gui uses the terms "Child" and "Parent" sparingly. Generally Subview/SuperView is preferred.
Layout
See the Layout Deep Dive and the Arrangement Deep Dive.
Drawing
See the Drawing Deep Dive.
Navigation
See the Navigation Deep Dive.
Application Concepts
TopLevel - The v1 term used to describe a view that can have a MenuBar and/or StatusBar. In v2, we will delete the
TopLevel
class and ensure ANY View can have a menu bar and/or status bar (viaAdornments
).- NOTE: There will still be an
Application.Top
which is the View that is the root of theApplication
's view hierarchy.
- NOTE: There will still be an
Runnable - TBD
Modal - Modal - The term used when describing a View that was created using the
Application.Run(view)
orApplication.Run<T>
APIs. When a View is running as a modal, user input is restricted to just that View untilApplication.Run
exits. AModal
View has its ownRunState
.- In v1, classes derived from
Dialog
were originally thought to only work modally. However,Wizard
proved that aDialog
-based class can also work non-modally. - In v2, we will simplify the
Dialog
class, and let any class be run viaApplicaiton.Run
. TheModal
property will be set byApplication.Run
so the class can detect it is running modally if it needs to.
- In v1, classes derived from