pub struct QuestionnaireState { /* private fields */ }Expand description
Owns questionnaire answers, validation, navigation and focus state.
Implementations§
Source§impl QuestionnaireState
impl QuestionnaireState
pub fn new( items: Vec<QuestionnaireItemDefinition>, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<QuestionnaireState, QuestionnaireSchemaError>
pub fn with_current_item( self, name: impl Into<SharedString>, ) -> Result<QuestionnaireState, QuestionnaireSchemaError>
pub fn with_shortcuts( self, mode: QuestionnaireShortcutMode, ) -> QuestionnaireState
pub fn current_item(&self) -> Option<&SharedString>
pub fn current_ix(&self) -> Option<usize>
pub fn total(&self) -> usize
pub fn progress(&self) -> QuestionnaireProgressState
pub fn item_definition( &self, name: &str, ) -> Option<&QuestionnaireItemDefinition>
pub fn choice_definition( &self, item: &str, value: &str, ) -> Option<&QuestionnaireChoiceDefinition>
pub fn item_state(&self, name: &str) -> Option<QuestionnaireItemState>
pub fn choice_state( &self, item: &str, value: &str, ) -> Option<QuestionnaireChoiceState>
Sourcepub fn choice_position(&self, item: &str, value: &str) -> Option<(usize, usize)>
pub fn choice_position(&self, item: &str, value: &str) -> Option<(usize, usize)>
One-based position of a choice among its item’s enabled choices, with the enabled total. Assistive technology announces the pair.
pub fn answer(&self, name: &str) -> Option<QuestionnaireAnswer>
pub fn answers(&self) -> QuestionnaireAnswers
Sourcepub fn error(&self, name: &str) -> Option<&QuestionnaireValidationError>
pub fn error(&self, name: &str) -> Option<&QuestionnaireValidationError>
The active validation failure for an item, if any. Base reports the reason; the presentation layer turns a built-in reason into text.
pub fn is_complete(&self) -> bool
pub fn input_state( &self, name: &str, ) -> Option<Entity<InputBaseState<InputMode>>>
pub fn focus_handle(&self) -> &FocusHandle
pub fn item_focus_handle(&self, name: &str) -> Option<&FocusHandle>
pub fn choice_focus_handle( &self, item: &str, value: &str, ) -> Option<&FocusHandle>
pub fn is_current_input_focused(&self, window: &Window) -> bool
Sourcepub fn current_input_has_text(&self, cx: &App) -> bool
pub fn current_input_has_text(&self, cx: &App) -> bool
Whether the active item’s freeform input currently holds text. The skin needs it to decide whether an arrow key moves focus or edits the draft.
pub fn focused_current_choice(&self, window: &Window) -> Option<&SharedString>
pub fn shortcut_mode(&self) -> Option<QuestionnaireShortcutMode>
pub fn shortcut_for_choice( &self, item: &str, value: &str, ) -> Option<SharedString>
pub fn choice_for_shortcut( &self, item: &str, key: &str, ) -> Option<&SharedString>
pub fn activate_shortcut( &mut self, key: &str, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
pub fn set_current_item( &mut self, name: &str, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
pub fn set_answer( &mut self, item: &str, answer: QuestionnaireAnswer, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
pub fn set_input_value( &mut self, item: &str, value: impl Into<SharedString>, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
pub fn set_item_disabled( &mut self, name: &str, disabled: bool, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
pub fn set_choice_disabled( &mut self, item: &str, value: &str, disabled: bool, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
pub fn set_external_error( &mut self, item: &str, error: impl Into<SharedString>, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
pub fn clear_external_error( &mut self, item: &str, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
pub fn reset( &mut self, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, )
Sourcepub fn activate_choice(
&mut self,
item: &str,
value: &str,
cx: &mut Context<'_, QuestionnaireState>,
) -> Result<(), QuestionnaireSchemaError>
pub fn activate_choice( &mut self, item: &str, value: &str, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
Selects a choice, or toggles it on a multiple-answer item, without
confirming the item. Arrow-key movement inside a radio group uses this;
a person’s click, Space, Enter or shortcut goes through Self::choose.
Sourcepub fn choose(
&mut self,
item: &str,
value: &str,
window: &mut Window,
cx: &mut Context<'_, QuestionnaireState>,
) -> Result<(), QuestionnaireSchemaError>
pub fn choose( &mut self, item: &str, value: &str, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> Result<(), QuestionnaireSchemaError>
Applies a person’s activation of a choice: a click, Space or Enter on the focused choice, or its shortcut.
A multiple-answer item only toggles the choice. A single-answer item
selects it and then confirms the current item as Self::confirm_current
does: it moves to the next enabled item, or submits on the last one,
unless validation fails. A choice that changes the answer stays selected
on screen for a moment before the confirm runs, so the person sees what
they picked; with reduced motion the confirm runs as soon as the answer
change has been delivered. Choosing the selected answer again confirms
at once. Disabled items and choices ignore activation.
Arrow-key movement inside a radio group uses Self::activate_choice
and never confirms.
pub fn confirm_current( &mut self, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
pub fn go_previous( &mut self, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
pub fn go_next( &mut self, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
pub fn skip_current( &mut self, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
pub fn submit( &mut self, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
pub fn focus_current_item(&self, window: &mut Window, cx: &mut App) -> bool
pub fn focus_invalid_item( &self, item: &str, window: &mut Window, cx: &mut App, ) -> bool
pub fn focus_choice( &self, item: &str, value: &str, window: &mut Window, cx: &mut App, ) -> bool
pub fn focus_input(&self, item: &str, window: &mut Window, cx: &mut App) -> bool
pub fn focus_previous_answer( &mut self, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
pub fn focus_next_answer( &mut self, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
pub fn move_current_radio( &mut self, direction: isize, window: &mut Window, cx: &mut Context<'_, QuestionnaireState>, ) -> bool
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for QuestionnaireState
impl !Send for QuestionnaireState
impl !Sync for QuestionnaireState
impl !UnwindSafe for QuestionnaireState
impl Freeze for QuestionnaireState
impl Unpin for QuestionnaireState
impl UnsafeUnpin for QuestionnaireState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more