Skip to content

NavigationMenu

A disclosure-style navigation surface with animated direction, viewport, and popup parts.

Loading interactive demo…

#Import

Import NavigationMenu from quickgui.

use quickgui::*;

#Usage

let menu = NavigationMenu::new("docs", &state, &items);
menu.root().flex_row()

#Anatomy

  • NavigationMenu::root
  • NavigationMenu::list
  • NavigationMenu::item
  • NavigationMenu::trigger
  • NavigationMenu::icon
  • NavigationMenu::content
  • NavigationMenu::link
  • NavigationMenu::portal
  • NavigationMenu::positioner
  • NavigationMenu::popup
  • NavigationMenu::viewport
  • NavigationMenu::arrow
  • NavigationMenu::backdrop

#API reference

Expand an entry for its description and complete signature. A dash means no declaration default is documented.

NavigationMenu

View source
pub fn new( root_id: impl Into<ElementId>, state: &NavigationMenuState, items: &'a [NavigationMenuItem], ) -> Self

Create a navigation menu over the caller's ordered items. # Panics Panics with more than [`MAX_NAVIGATION_MENU_ITEMS`] items or duplicate item values.

placementpub const fn placement(mut self, placement: AnchorPlacement) -> Self—

Configures placement for this part.

pub const fn placement(mut self, placement: AnchorPlacement) -> Self
View source
loop_focuspub const fn loop_focus(mut self, loop_focus: bool) -> Self—

Wrap from the last trigger to the first. The default is `true`.

pub const fn loop_focus(mut self, loop_focus: bool) -> Self
View source
root_idpub const fn root_id(self) -> ElementId—

Configures root id for this part.

pub const fn root_id(self) -> ElementId
View source
itemspub const fn items(self) -> &'a [NavigationMenuItem]—

Configures items for this part.

pub const fn items(self) -> &'a [NavigationMenuItem]
View source
axispub const fn axis(self) -> NavigationMenuOrientation—

Configures axis for this part.

pub const fn axis(self) -> NavigationMenuOrientation
View source
valuepub const fn value(self) -> Option<ElementId>—

Configures value for this part.

pub const fn value(self) -> Option<ElementId>
View source
roving_valuepub fn roving_value(self) -> Option<ElementId>—

The trigger that owns the bar's single Tab stop. This is the controlled focused value while it names an enabled mounted item, and otherwise the first enabled item, matching the composite-widget convention.

pub fn roving_value(self) -> Option<ElementId>
View source
entrypub fn entry(self, value: impl Into<ElementId>) -> Option<NavigationMenuEntry<'a>>—

Describe one declared item.

pub fn entry(self, value: impl Into<ElementId>) -> Option<NavigationMenuEntry<'a>>
View source
schedulepub fn schedule<V: 'static>(cx: &mut ViewContext<'_, V>, state: &NavigationMenuState)—

Ask for the one repaint an armed open or close deadline needs. Call this while rendering. A settled navigation menu requests nothing, so the window sleeps.

pub fn schedule<V: 'static>(cx: &mut ViewContext<'_, V>, state: &NavigationMenuState)
View source

NavigationMenu::root_with

View source
pub fn root_with(self, root: Element) -> Element

Decorate an application-owned root without adding layout or appearance.

NavigationMenu::root

View source
pub fn root(self) -> Element

Create the unstyled root part. Use [`Self::root_with`] to supply an existing element.

NavigationMenu::list_with

View source
pub fn list_with(self, list: Element) -> Element

Decorate the application-owned list of items.

NavigationMenu::list

View source
pub fn list(self) -> Element

Create the unstyled list part. Use [`Self::list_with`] to supply an existing element.

View source
pub fn link_with(self, id: impl Into<ElementId>, active: bool, link: Element) -> Element

Decorate an application-owned navigation link without adding appearance. `active` marks the link for the current destination; it projects as the native selected state rather than as a visual class.

View source
pub fn link(self, id: impl Into<ElementId>, active: bool) -> Element

Create the unstyled link part. Use [`Self::link_with`] to supply an existing element.