NeoMutt is built from a set of nested windows.
Each window defines a region of the screen which is responsible for a single concept. This could be a high-level component like the Compose Email Dialog, or a single element like the Index Bar (status).
The Root Window is (grand-)parent of all those windows.
The Root Window is container window and not visible.
Every window in the hierarchy is struct MuttWindow, however in these docs they're often given different descriptions.
Name | Type | Constructor |
---|---|---|
Root Window | WT_ROOT | rootwin_new() |
Parent
Children
The Root Window has no data.
Once constructed, it is controlled by the following events:
Event Type | Handler |
---|---|
NT_CONFIG | rootwin_config_observer() |
NT_WINDOW | rootwin_window_observer() |
SIGWINCH | rootwin_set_size() (called by mutt_resize_screen()) |
The Root Window does not implement MuttWindow::recalc() or MuttWindow::repaint().
Data | Description | Links |
---|---|---|
RootWindow | Parent of all Windows |
Function | Description | Links |
---|---|---|
rootwin_cleanup() | Free all the default Windows | |
rootwin_config_observer() | Notification that a Config Variable has changed | observer_t, observer_api |
rootwin_new() | Create the default Windows | |
rootwin_resize_observer() | Notification that the terminal has been resized | observer_t, observer_api |
rootwin_set_size() | Set the dimensions of the Root Window | |
rootwin_window_observer() | Notification that a Window has changed | observer_t, observer_api |