arkui

Menu

What can be done about one thing: a dropdown at the pointer or under a control on the desktop, a sheet from the foot of a phone.

Desktop

arkui::menu · arkui::context · arkui::panel

A row's menu, opened at the pointer, its cursor resting on an entry with a submenu.A row's menu, opened at the pointer, its cursor resting on an entry with a submenu.
A row's menu, opened at the pointer, its cursor resting on an entry with a submenu.
A panel: its title, and entries with and without a glyph.A panel: its title, and entries with and without a glyph.
A panel: its title, and entries with and without a glyph.

A right click opens a row's menu at the pointer (Anchor::Pointer); a control's menu, a dropdown, hangs under the control (Anchor::RightEdge).

Resting on an entry with a submenu shows it beside the entry; j, k, l, h and <Esc> walk the menu and its submenu.

arkui::menu

The dropdown: a title and entries, as wide as its longest entry, opened at the pointer or lined up under a control, with submenus beside it.

Rules

rust/arkui/src/menu.rs

arkui::context

A menu, its submenu, or a picker alone, and the rules for them together: which one has the keys, the dwell, l in and h out, <Esc>.

Rules

rust/arkui/src/context.rs

arkui::panel

The shape every context window is: a bordered panel, a title, and fixed-height entries with a glyph column that is there whether or not it has a glyph.

Rules

rust/arkui/src/panel.rs

Mobile

Asking for the latest capture…

Screenshot · A sheet's entries.

Where

  • ui/Components.kt: SheetRow, MoreButton

How

  • SheetRow(icon, label, onClick, trailing = {}, emphasis = false) is one entry of a sheet.
  • MoreButton(about, origin, onMore) opens it from a row.

Nothing shared for this on iOS yet.