State for the bottom panel container.
The bottom panel is a resizable Messages container below the editor surface (above the status bar) in GUI frontends. The BEAM sends declarative state each frame; frontends render it with their native toolkit.
Visibility state machine
The panel opens only through explicit user actions. Logging a warning or error never changes its visibility or focus.
visibletracks whether the panel is shown.filterrecords an optional user-selected preset, including:warningsfor the View Warnings command.
Summary
Functions
Clears panel focus without changing visibility.
Filter preset byte for protocol encoding.
Focuses the visible panel. Hidden panels stay unfocused.
Returns true when the panel is visible and focused.
Hide the panel.
Update panel height (clamped to 10-60%).
Show the Messages panel with an optional filter preset.
Toggle panel visibility. Clears filters on explicit open.
Types
@type filter_preset() :: :warnings | nil
@type t() :: %MingaEditor.BottomPanel{ filter: filter_preset(), focused: boolean(), height_percent: non_neg_integer(), visible: boolean() }
Functions
Clears panel focus without changing visibility.
@spec filter_byte(filter_preset()) :: non_neg_integer()
Filter preset byte for protocol encoding.
Focuses the visible panel. Hidden panels stay unfocused.
Returns true when the panel is visible and focused.
Hide the panel.
@spec resize(t(), non_neg_integer()) :: t()
Update panel height (clamped to 10-60%).
@spec show(t(), filter_preset()) :: t()
Show the Messages panel with an optional filter preset.
Toggle panel visibility. Clears filters on explicit open.