What the desktop's screens look like, as items Cauldron2D.Wx.Text draws: the title,
the connect form, the lobby, the settings, the leaders, the summary and the serve form
(the start or stop first, the settings under it), from the window's state.
ExPilot.Wx.Screens.draw(state, {width, height})An item is {x, y, text, colour, size, action}, x a left edge or {:centre, x},
size one of :small, :normal, :big, :title, and action what a click on the
item does — {:key, code} as if that key went down, {:row, index}, {:where, index},
{:field, index}, {:choose, index}, {:setting, index}, {:step, index, -1 | 1},
{:period, index}, {:metric, index}, {:found, index}, :serve — or nil. Pure:
nothing here touches wx.
Summary
Functions
The items for the screen the state is on.
The leaders screen's metrics, in order, with their titles: ExPilot.Ledger.metrics/0.
The leaders screen's periods, in order, as Cauldron2D.Ledger names them with their titles.
The settings screen's rows, top to bottom: the fields of Cauldron2D.Drafter.Client.Settings it changes.
How many arenas the lobby lists at once.
Types
Functions
@spec draw(map(), {pos_integer(), pos_integer()}) :: [item()]
The items for the screen the state is on.
The leaders screen's metrics, in order, with their titles: ExPilot.Ledger.metrics/0.
@spec periods() :: [{Cauldron2D.Ledger.period(), String.t()}]
The leaders screen's periods, in order, as Cauldron2D.Ledger names them with their titles.
@spec settings_rows() :: [:sfx | :music | :pointer]
The settings screen's rows, top to bottom: the fields of Cauldron2D.Drafter.Client.Settings it changes.
@spec window() :: pos_integer()
How many arenas the lobby lists at once.