NeoMutt  2022-04-29-215-gc12b98
Teaching an old dog new tricks
DOXYGEN
Root Window

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.

Definitions

Every window in the hierarchy is struct MuttWindow, however in these docs they're often given different descriptions.

  • Window: A region of the screen. A Window can be: fixed size; set to maximise (as limited by its parent); set to minimise (around its children). Everything below is also a Window.
  • Dialog: A set of nested Windows that form an interactive component. This is the main way that users interact with NeoMutt. e.g. Index Dialog, Compose Email Dialog.
  • Panel A small sub-division of a Dialog. The Panels are sets of Windows that can be reused in other Dialogs.
  • Container: An invisible non-interactive Window used for shaping, aligning or limiting the size of its children.
  • Bar: A one-line high Window used for displaying help or status info, e.g. Help Bar Window, Index Bar (status).

Windows

Name Type Constructor
Root Window WT_ROOT rootwin_new()

Parent

  • None

Children

Data

The Root Window has no data.

Events

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

Data Description Links
RootWindow Parent of all Windows

Functions

Function Description Links
rootwin_config_observer() Notification that a Config Variable has changed observer_t, observer_api
rootwin_free() Free all the default Windows
rootwin_new() Create the default Windows
rootwin_set_size() Set the dimensions of the Root Window
rootwin_window_observer() Notification that a Window has changed observer_t, observer_api