Skip to content

Calendar

A keyboard-navigable month grid for single-date selection.

Loading interactive demo…

#Import

Import Calendar from quickgui.

use quickgui::*;

#Usage

let calendar = Calendar::new("month");
calendar.root().flex_col()

#Anatomy

  • Calendar::root
  • Calendar::week
  • Calendar::day

#API reference

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

Calendar

View source
pub fn new(root_id: impl Into<ElementId>) -> Self
root_idpub const fn root_id(self) -> ElementId—

Configures root id for this part.

pub const fn root_id(self) -> ElementId
View source
week_idpub fn week_id(self, index: usize) -> ElementId—

Configures week id for this part.

pub fn week_id(self, index: usize) -> ElementId
View source
day_idpub fn day_id(self, day: CivilDate) -> ElementId—

Configures day id for this part.

pub fn day_id(self, day: CivilDate) -> ElementId
View source

Calendar::grid_with

View source
pub fn grid_with(self, state: CalendarState, grid: Element) -> Element

Decorate an application-owned month grid without adding layout or appearance.

Calendar::grid

View source
pub fn grid(self, state: CalendarState) -> Element

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

Calendar::week_with

View source
pub fn week_with(self, index: usize, week: Element) -> Element

Decorate an application-owned week row without adding layout or appearance.

Calendar::week

View source
pub fn week(self, index: usize) -> Element

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

Calendar::day_with

View source
pub fn day_with(self, state: CalendarState, day: CivilDate, cell: Element) -> Element

Decorate an application-owned day cell without adding layout or appearance. Exactly one day carries the grid's Tab stop; the rest are reached with the arrow keys. QuickGUI sets the cell's accessible value to the ISO date; call `.accessibility_label(...)` afterwards to replace it with localized product text.

Calendar::day

View source
pub fn day(self, state: CalendarState, day: CivilDate) -> Element

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

Calendar::key_with

View source
pub fn key_with<V: 'static>( self, cx: &mut ViewContext<'_, V>, day: CivilDate, cell: Element, access: fn(&mut V) -> &mut CalendarState, ) -> Element

Attach QuickGUI's typed calendar actions and click selection to one day cell. Install [`calendar_key_bindings`] once on the application keymap.

Calendar::key

View source
pub fn key<V: 'static>( self, cx: &mut ViewContext<'_, V>, day: CivilDate, access: fn(&mut V) -> &mut CalendarState, ) -> Element

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

Calendar::key_with_accessor

View source
pub fn key_with_accessor<V: 'static>( self, cx: &mut ViewContext<'_, V>, day: CivilDate, cell: Element, access_source: StateAccessor<V, CalendarState>, ) -> Element

Attach the typed calendar actions against a per-instance state accessor. A host that renders many declared calendars through one view passes an accessor that captures which [`CalendarState`] this day cell belongs to.