DomUI
Welcome to DomUI Components
Navigation and menus

Navigation and menus

Getting somewhere else, and choosing what to do. The components in this group are the visible handles on two things the framework does underneath: the page stack, which remembers where the user came from, and the action, which knows its own name, icon and whether it may be done at all.

The components

Where you are, and how you get somewhere else:

Component What it is for
BreadCrumb2 the path that led here, as steps you can click
AppPageTitleBar the bar at the top of a page: icon, title, back button, buttons
ALink a link to another page of the application

...and the two menus:

Component What it is for
PopupMenu2 a small menu that opens at a component and closes when it is done
HamburgerMenu the list of actions behind a three-bar button

Moving is not this group's job

None of these decides what a move does. Whether the page you leave is shelved, replaced or thrown away is the MoveMode of the move, and what happens to the page object, its fields and its conversation is described once, in the walkthrough under page navigation.

An ALink and a UIGoto make the same move; the link is the one you can click, right-click and open in a new window. A BreadCrumb2 made with createPageCrumb() is that same page stack, drawn.

The page stack, and the components that show it

A menu is made of actions

Both menus take their entries from IUIAction: the name, the tooltip, the icon and the reason the entry cannot be used right now all come from the action rather than from the menu. That is why the same operation can sit on a button, in a popup menu and behind a hamburger without being described three times.

PopupMenu2 can also be filled by hand, item by item, when there is nothing to reuse. HamburgerMenu cannot: it is a list of actions and nothing else.

Neither menu is a component you keep. Both are built when the button is pressed, put on the page, and removed again the moment something is chosen or the mouse goes elsewhere. Do not hold on to one, and do not put one in a field.

Last modified: 2026/09/05