Skip to main content

Module app

Module app 

Source
Expand description

The app around the table: the event loop and the terminal, background jobs, the overlay and the dialogs it opens, and the keys of the screens without a directory of their own.

Modules§

applied
What a dialog or prompt asks of the app once it is answered: one event, AppEvent::Applied, carries every such result back into the loop, so the frame that closes the dialog is drawn before the work starts.
context_menu
The menu a right click on a table cell opens: the keys that act on a cell, each line naming its key. A line chosen closes the menu and presses its key, so the menu does exactly what typing the key does. A menu is not a dialog: a click anywhere else closes it.
event_pump
The main loop, minus the terminal.
form
One focus convention for every form and dialog.
help
The help overlay: one screen’s keys from the key registry (datui_cli::keys), grouped by task, the keys of every screen last.
hex_view
The hex view: any local file as its bytes, a row of them at a time.
link_open
A documentation link handed to the system’s browser: o in the Documentation view.
modals
State of the table’s dialogs and sidebars, each drawn by render/ or widgets/.
pointer
The mouse, as shortcuts to keys (nothing here changes what a key does): the wheel presses arrows, a footer key click presses it, a form row click focuses and presses Space, a tab click selects it, a table or home click moves the cursor (double click: Enter), a plot click places the crosshair. Header drag moves a column (H/L), dragging the gap after sets width (</>); header double click sorts ([/]), gap double click fits (=); right click opens a cell’s key menu. Mouse input is never held: where a key would wait, it is dropped (crate::app::event_pump::EventPump::terminal_mouse). Click targets are recorded while drawing (record) by the widgets that lay them out.
startup
What run reads before it can build the app, read behind the first frame.
table_switch
T at the table: the other tables of the source on screen, to open one in its place. Listed from what the open already holds (a workbook’s or a database’s tab of the Info panel, a spec’s record types, a cache’s splits), so nothing is read to list them; opening one is an open of the file with --table, as home’s row for it is.
terminal_input
The one reader of the terminal.