NeoMutt  2021-02-05-666-ge300cd
Teaching an old dog new tricks
DOXYGEN
Root Window

Overview

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, 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().

| Function | Description | | :----— | :-------— |