Struct ActionPalette
pub struct ActionPalette { /* private fields */ }Expand description
The unified Ctrl+K palette: a SearchField over a SearchResultsView,
fed by the focused app’s resource/action tree plus any folded-in
SearchProviders.
Implementations§
§impl ActionPalette
impl ActionPalette
pub fn empty_text(&self) -> &str
pub fn empty_text(&self) -> &str
What the empty result list says now, as a person reads it.
pub fn empty_hint(&self) -> Option<&str>
pub fn empty_hint(&self) -> Option<&str>
What the empty result list says to try instead, under that line;
None while it says nothing more.
§impl ActionPalette
impl ActionPalette
pub fn rows(entries: Vec<CommandEntry>) -> ActionPalette
pub fn rows(entries: Vec<CommandEntry>) -> ActionPalette
A palette over rows a host feeds itself, rather than over an app’s published actions.
pub fn set_entries(&mut self, entries: Vec<CommandEntry>)
pub fn set_entries(&mut self, entries: Vec<CommandEntry>)
Replace the rows the host searched. The first is selected.
pub fn visible_entries(&self) -> Vec<&CommandEntry>
pub fn visible_entries(&self) -> Vec<&CommandEntry>
The rows the host fed that the list is showing, in order.
pub fn take_outcome(&mut self) -> Option<CommandOutcome>
pub fn take_outcome(&mut self) -> Option<CommandOutcome>
The chosen row, with the value it asked for if it asked. Drained by the host after it handled input.
pub fn take_adjustment(&mut self) -> Option<(String, i8)>
pub fn take_adjustment(&mut self) -> Option<(String, i8)>
The step ←/→ asked of the selected adjustable row since the last call: its id and the direction (-1 or 1). The host changes the value and refreshes the row.
pub fn take_submitted_argument(&mut self) -> Option<String>
pub fn take_submitted_argument(&mut self) -> Option<String>
The value a host step was confirmed with, once.
pub fn take_argument_cancelled(&mut self) -> bool
pub fn take_argument_cancelled(&mut self) -> bool
Whether a host step was backed out of since the last call.
pub fn open_argument_step(&mut self, id: impl Into<String>, spec: ArgumentSpec)
pub fn open_argument_step(&mut self, id: impl Into<String>, spec: ArgumentSpec)
Ask for one value in the field, for a host that collects an action’s
arguments one step at a time. The list stays where it is underneath.
Enter hands the value to Self::take_submitted_argument and Escape
sets Self::take_argument_cancelled; the host decides what follows.
Neither runs a row, so a step can’t stand in for one.
pub fn cancel_host_step(&mut self)
pub fn cancel_host_step(&mut self)
Leave any host step without running or reporting anything: the host has moved on (to another step, or back to the results).
pub fn argument_buffer(&self) -> Option<&str>
pub fn argument_buffer(&self) -> Option<&str>
The value the open step’s field holds.
pub fn set_scope_token(&mut self, token: Option<String>)
pub fn set_scope_token(&mut self, token: Option<String>)
Show token at the start of the field: the part of the source the
query is narrowed to, removable with Backspace.
pub fn set_scope_token_action(&mut self, action: Option<String>)
pub fn set_scope_token_action(&mut self, action: Option<String>)
What pressing the token does, when it is a control: its accessible
name. None: Backspace alone removes it.
pub fn scope_token(&self) -> Option<&str>
pub fn scope_token(&self) -> Option<&str>
The token the field shows, when one is set.
pub fn scope_token_action(&self) -> Option<&str>
pub fn scope_token_action(&self) -> Option<&str>
What pressing the token does, when it is a control.
pub fn take_scope_token_removed(&mut self) -> bool
pub fn take_scope_token_removed(&mut self) -> bool
Whether Backspace at the start of the field took the token away since the last call: the host widens the search.
pub fn set_field_only_while_empty(&mut self, on: bool)
pub fn set_field_only_while_empty(&mut self, on: bool)
Show the query field alone while nothing is typed: no list and no band, the card a single row until the person types.
pub fn shows_field_only(&self) -> bool
pub fn shows_field_only(&self) -> bool
Whether the card shows its field alone right now.
pub fn filter_band_shown(&self) -> bool
pub fn filter_band_shown(&self) -> bool
Whether the card reserves its band of host-painted controls right now.
pub fn set_filter_band_shown(&mut self, shown: bool) -> bool
pub fn set_filter_band_shown(&mut self, shown: bool) -> bool
Show or hide the band. A host hides it until the results have something to tell apart, so it isn’t standing chrome over every search. Returns whether that changed.
pub fn filter_strip_rect(&self) -> Rect
pub fn filter_strip_rect(&self) -> Rect
The band the host paints its own controls into.
pub fn filter_strip_row_height(&self) -> f64
pub fn filter_strip_row_height(&self) -> f64
One band row’s height, for a host spacing its controls by it.
pub fn set_max_list_height(&mut self, height: f64)
pub fn set_max_list_height(&mut self, height: f64)
The tallest the result list may grow before it scrolls, in logical pixels. The host sets it from the display it shows the palette on.
pub fn set_max_width(&mut self, width: Option<f64>)
pub fn set_max_width(&mut self, width: Option<f64>)
The width the card takes, in logical pixels: the host sets it from
the room it shows the palette in, so the card follows the window or
the display rather than its own size. None leaves it its own
width.
pub fn text_scale(&self) -> f64
pub fn text_scale(&self) -> f64
The text scale layout and host-painted controls share.
pub fn set_query_placeholder(&mut self, placeholder: impl Into<String>)
pub fn set_query_placeholder(&mut self, placeholder: impl Into<String>)
Replace the placeholder the field shows while a step is not using it.
pub fn set_searching(&mut self, searching: bool)
pub fn set_searching(&mut self, searching: bool)
Whether more results are still on their way (an index whose code is still loading): an empty list then says “Searching…” instead of “No results”.
pub fn set_bypass_fuzzy(&mut self, on: bool)
pub fn set_bypass_fuzzy(&mut self, on: bool)
Every row the host fed shows unless the host lets the palette narrow by the query. A host doing its own matching turns narrowing off, so hits whose labels don’t literally spell the query aren’t hidden by fuzzy scoring.
pub fn set_held_modifiers(&mut self, held: ModifiersState) -> bool
pub fn set_held_modifiers(&mut self, held: ModifiersState) -> bool
Tell the palette which modifiers are down, for a host that routes modifier changes itself.
pub fn held_modifier(&self) -> Option<ActivationModifier>
pub fn held_modifier(&self) -> Option<ActivationModifier>
The modifiers held now that name one of a row’s alternatives.
pub fn set_host_facets(&mut self, facets: Vec<Facet>)
pub fn set_host_facets(&mut self, facets: Vec<Facet>)
The chips a host feeding its own rows offers above them: it declared
the facets, so it is the one that can narrow its rows by what is
picked (Self::picked_filters). Unlike the facets an app’s own rows
declare, these are the host’s whole list: what it stops offering is
no longer a chip.
pub fn picked_filters(&self) -> &[FacetFilter]
pub fn picked_filters(&self) -> &[FacetFilter]
The chips picked among a host’s facets: what its rows are narrowed by, as the host reads it to feed the ones that match.
pub fn selected_id(&self) -> Option<&str>
pub fn selected_id(&self) -> Option<&str>
The selected row’s id; None while nothing is shown.
pub fn set_selected_status(
&mut self,
badge: impl Into<String>,
description: impl Into<String>,
)
pub fn set_selected_status( &mut self, badge: impl Into<String>, description: impl Into<String>, )
Show host feedback on the selected row using the shared status pill and description, keeping the query, the order and the selection so an unsuccessful invocation can be corrected or retried.
pub fn row_rect(&self, i: usize) -> Option<Rect>
pub fn row_rect(&self, i: usize) -> Option<Rect>
The row i of the list, in window coordinates; None when it is
scrolled out of view.
pub fn input_row_rect(&self) -> Rect
pub fn input_row_rect(&self) -> Rect
The field’s row, inside the card’s padding.
pub fn set_rect(&mut self, rect: Rect)
pub fn set_rect(&mut self, rect: Rect)
Hand the card a rect, for a host that positions its overlays itself.
pub fn desired_size(&self) -> (f64, f64)
pub fn desired_size(&self) -> (f64, f64)
The size the card asks for: the rows it holds, up to the tallest list the host allows.
pub fn chrome_height(&self) -> f64
pub fn chrome_height(&self) -> f64
The card’s height less its result list: the field, the band and the padding around them.
pub fn entry_row_capacity(&self) -> usize
pub fn entry_row_capacity(&self) -> usize
How many result rows a full list holds: what a host asks its sources for, so the first screen is full.
pub fn entry_row_capacity_with(&self, groups: usize) -> usize
pub fn entry_row_capacity_with(&self, groups: usize) -> usize
How many result rows a full list holds under the headers of groups
groups: a header takes room a row would have held, so a list with
four groups holds fewer rows than one with two.
pub fn entry_row_capacity_for(&self, groups: usize, two_line: bool) -> usize
pub fn entry_row_capacity_for(&self, groups: usize, two_line: bool) -> usize
How many rows a full list holds under the headers of groups groups
when its rows are two_line tall: for the rows a query is about to
put there, which the palette does not hold yet.
pub fn entries_fit(&self, entries: &[CommandEntry], groups: usize) -> bool
pub fn entries_fit(&self, entries: &[CommandEntry], groups: usize) -> bool
Whether the rows entries stand inside the list, under the headers
of groups groups: every line at its own band, against the cap the
card gives its rows. A list that holds more is cut at the card’s
edge, so a host asks this before it hands its rows over.
pub fn handle_list_key(&mut self, key: &Key, shift: bool, ctrl: bool) -> bool
pub fn handle_list_key(&mut self, key: &Key, shift: bool, ctrl: bool) -> bool
Moves through the results; true when the key moved the selection or
belonged to the list.
§impl ActionPalette
impl ActionPalette
pub fn result_labels(&self) -> Vec<String>
pub fn result_labels(&self) -> Vec<String>
The labels currently shown, in display order (for tests / diagnostics).
pub fn result_rows(&self) -> Vec<(String, Option<String>)>
pub fn result_rows(&self) -> Vec<(String, Option<String>)>
The rows currently shown as a person reads them, label and the line under it, in display order (for tests / diagnostics).
pub fn result_hits(&self) -> Vec<SearchResult>
pub fn result_hits(&self) -> Vec<SearchResult>
The rows currently shown as the list paints them, in display order: their titles, underlines, pictures and shortcuts (for tests and diagnostics).
§impl ActionPalette
impl ActionPalette
pub fn place_in(&mut self, window: Rect, theme: &Theme) -> (Point, f64)
pub fn place_in(&mut self, window: Rect, theme: &Theme) -> (Point, f64)
Stand in window, the part of the app’s window under its bar: the
card where placement puts it, the modal scrim over the rest of
window, and the bar left clear and live. Returns the card’s origin
and width for Self::layout.
pub fn scrim_rect(&self) -> Option<Rect>
pub fn scrim_rect(&self) -> Option<Rect>
The scrim the palette dims its window with, while it is shown.
§impl ActionPalette
impl ActionPalette
pub fn asking(&self) -> Option<(&ActionAddress, &str)>
pub fn asking(&self) -> Option<(&ActionAddress, &str)>
The action the palette is asking the person to confirm, and the question it asks, while it asks.
pub fn confirming_target(&self) -> Option<String>
pub fn confirming_target(&self) -> Option<String>
The published semantic target of the question’s own action button (named for the verb it confirms), while the palette asks. Activating it goes ahead, as the person’s click or assistive technology does; a destructive question starts on Cancel, so Enter never confirms it.
pub fn asking_why(&self) -> Option<&str>
pub fn asking_why(&self) -> Option<&str>
Why the palette asks, when the workspace’s grants ask rather than the action itself: who decides, said to the person asked.
pub fn new() -> ActionPalette
pub fn new() -> ActionPalette
A closed palette. Load resources / providers, then open.
pub fn with_text_renderer(renderer: TextRenderer) -> ActionPalette
pub fn with_text_renderer(renderer: TextRenderer) -> ActionPalette
A closed palette that owns an explicitly configured layout renderer.
pub fn load_open_resources(&mut self, resources: &[ResourceSpec])
pub fn load_open_resources(&mut self, resources: &[ResourceSpec])
Populate from the focused instance’s open-resource forest. Each exported action becomes an Actions row; rebuilds the result set + index.
pub fn refresh_open_resources(&mut self, resources: &[ResourceSpec])
pub fn refresh_open_resources(&mut self, resources: &[ResourceSpec])
Replace only the authority snapshot, without moving the visible result rows or cursor. The host calls this immediately before handling input; a selected row can then disappear/refuse safely instead of changing the user’s selection to a different action during the same key press.
pub fn refresh_visible_resources(&mut self, resources: &[ResourceSpec])
pub fn refresh_visible_resources(&mut self, resources: &[ResourceSpec])
Refresh displayed authority asynchronously without moving an existing selection onto a different control. Argument/confirmation fields retain their original address; dispatch still rechecks the fresh authority.
pub fn referenced_action_resource_ids(&self) -> Vec<String>
pub fn referenced_action_resource_ids(&self) -> Vec<String>
Resource ids referenced by the current canonical search rows.
The host uses these inert ids to resolve lazy resources through the owning widget. Providers deliberately cannot supply authority.
pub fn set_ambient_context(&mut self, context: Option<ActionContext>)
pub fn set_providers(&mut self, providers: Vec<Box<dyn SearchProvider>>)
pub fn set_providers(&mut self, providers: Vec<Box<dyn SearchProvider>>)
Fold in searchable-content sources. Canonically addressed hits dispatch through the resource/action path; legacy opaque hits remain navigable.
pub fn is_open(&self) -> bool
pub fn open(&mut self)
pub fn set_scope(&mut self, scope: Option<ScopeDecl>)
pub fn set_scope(&mut self, scope: Option<ScopeDecl>)
Narrow the palette to one part of the app, or widen it to the whole
app with None. The field shows the scope as a removable token.
pub fn select_query(&mut self)
pub fn select_query(&mut self)
Select the query, so typing replaces a pre-filled search.
pub fn search_query(&self) -> &SearchQuery
pub fn search_query(&self) -> &SearchQuery
The query providers receive, with its parsed filters and scope.
pub fn toggle_facet(&mut self, filter: &FacetFilter)
pub fn toggle_facet(&mut self, filter: &FacetFilter)
Pick or unpick a facet value, as clicking its chip does. A value that
was typed as a key:value token is removed from the text.
pub fn close(&mut self)
pub fn query(&self) -> &str
pub fn set_query(&mut self, q: &str)
pub fn set_query(&mut self, q: &str)
Set the query programmatically and rebuild the result set (for tests / hand-off from another surface).
While the palette asks for a name to be typed, this is what stands in its plain field instead: it searches nothing.
pub fn query_field(&self, key: &[u8; 32]) -> Option<QueryField>
pub fn query_field(&self, key: &[u8; 32]) -> Option<QueryField>
The palette’s query field while it takes typing, as text committed
from outside the keyboard may write into it: the field a dictation
binds before it listens. None while the palette is closed, while
something else on it takes the keyboard, and while an input method
composes.
pub fn commit_query_text(&mut self, text: &str) -> bool
pub fn commit_query_text(&mut self, text: &str) -> bool
Write committed text (an input method’s, or a dictation’s) into the query field at the caret, as the input method’s commit does, and search what it now holds. Returns whether the field took the text: it does not while it asks for a typed name, takes a secret, or is not focused.
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn advance_search_page(&mut self) -> SearchAdvance
pub fn advance_search_page(&mut self) -> SearchAdvance
Advance one bounded query page or one finite retained-validation step. A completed-query external redraw may start a fresh validation pass; its final step returns pending=false so it never schedules another pass.
pub fn take_search_announcement(&mut self) -> Option<String>
pub fn take_search_announcement(&mut self) -> Option<String>
Drain the polite live-region text produced by progressive search.
pub fn set_cursor(&mut self, index: usize)
pub fn set_cursor(&mut self, index: usize)
Move the highlight to a flat row index (clamped).
pub fn select_resource(&mut self, resource: &str) -> bool
pub fn select_resource(&mut self, resource: &str) -> bool
Put the row that acts on resource under the cursor, so pressing
Enter acts on it: what a search opened on a resource of the app’s
does (SearchRequest::on). A row of it, else a row inside it (its
item view); false when the search lists none, which leaves the
palette as it was.
pub fn in_argument_mode(&self) -> bool
pub fn activate_selected(&mut self)
pub fn activate_selected(&mut self)
Activate the highlighted row, exactly as pressing Enter would.
pub fn activate_address(&mut self, resource: &str, action: &str) -> bool
pub fn activate_address(&mut self, resource: &str, action: &str) -> bool
Enter the argument/confirmation flow for an exact domain address. Used by accessibility activation so consequential resource nodes cannot jump around the palette’s policy flow.
pub fn take_operation(&mut self) -> Option<PendingOperation>
pub fn take_operation(&mut self) -> Option<PendingOperation>
Drain the resolved operation without assuming it is a document edit. The application host uses this to route effects/views to the owning widget and document operations to the deterministic executor.
Drain a completed content activation: the opaque action_id of the
chosen search-provider row, for the app to navigate to.
pub fn layout(&mut self, theme: &Theme, origin: Point, width: f64)
pub fn layout(&mut self, theme: &Theme, origin: Point, width: f64)
Position the palette at origin with width. Called each frame
before draw.
§Panics
Internal host-text palettes must use layout_with_text with their owning renderer.
pub fn draw(
&mut self,
scene: &mut Scene,
transform: Affine,
text_renderer: &mut TextRenderer,
theme: &Theme,
presence: &PresenceCtx,
)
pub fn draw( &mut self, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )
Draw the field + results overlay. layout must have run this frame.
pub fn handle_key(
&mut self,
event: &WindowEvent,
modifiers: &Modifiers,
doc: &mut Edits<'_>,
path: &ExId,
) -> bool
pub fn handle_key( &mut self, event: &WindowEvent, modifiers: &Modifiers, doc: &mut Edits<'_>, path: &ExId, ) -> bool
Feed a keyboard event to the open palette; returns whether consumed. While open, the palette is modal: it swallows every key so nothing leaks to the app behind it.
Trait Implementations§
§impl Default for ActionPalette
impl Default for ActionPalette
§fn default() -> ActionPalette
fn default() -> ActionPalette
§impl Widget for ActionPalette
impl Widget for ActionPalette
§fn test_id(&self) -> Option<&str>
fn test_id(&self) -> Option<&str>
The registry key a host resolves the card by: the query field’s rect, as the shell’s overlay hosts look the search card up.
§fn is_layout_dirty(&self) -> bool
fn is_layout_dirty(&self) -> bool
Sized by its style alone: nothing a host row changes needs taffy to measure it again.
§fn needs_redraw(&self) -> bool
fn needs_redraw(&self) -> bool
false (clean). A widget is clean until something it reads
changes: a leaf that keeps state says so by tracking a dirty: bool
(set in handle_event/sync, cleared in mark_drawn()), and one
that paints from the people on the document reads the frame’s
presence (crate::presence::frame::frame). Containers MUST
forward: dirty iff any descendant is.§fn mark_drawn(&mut self)
fn mark_drawn(&mut self)
dirty flag. Default forwards to children.fn name(&self) -> &str
fn is_focusable(&self) -> bool
fn is_focused(&self) -> bool
fn set_focus(&mut self, focused: bool)
§fn traps_focus(&self) -> bool
fn traps_focus(&self) -> bool
true, the host restricts Tab/directional
focus to this subtree (wrapping at the ends) and restores the prior
focus once it goes back to false. Default false.§fn modal_capture(&self) -> Option<Rect>
fn modal_capture(&self) -> Option<Rect>
Some(rect) when this subtree holds an open modal, its panel box.
While any widget reports Some, the host suppresses its own global
focus shortcuts and swallows unhandled pointer presses so nothing
behind the modal is clickable. Containers MUST forward (the default
does, via first Some among children).fn build_layout( &mut self, tree: &mut TaffyTree, theme: &Theme, nodes: &mut HashMap<NodeId, *mut dyn Widget>, ) -> NodeId
§fn apply_layout(&mut self, tree: &TaffyTree, node: NodeId, origin: Point)
fn apply_layout(&mut self, tree: &TaffyTree, node: NodeId, origin: Point)
§fn take_structure_dirty(&mut self) -> bool
fn take_structure_dirty(&mut self) -> bool
§fn set_platform_conventions(&mut self, conventions: PlatformConventions)
fn set_platform_conventions(&mut self, conventions: PlatformConventions)
§fn get_rect(&self) -> Rect
fn get_rect(&self) -> Rect
§fn draw(
&mut self,
scene: &mut Scene,
transform: Affine,
text: &mut TextRenderer,
theme: &Theme,
presence: &PresenceCtx,
)
fn draw( &mut self, scene: &mut Scene, transform: Affine, text: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )
scene. The default paints nothing.§fn handle_event(&mut self, event: &WindowEvent, ctx: &mut EventCtx<'_>)
fn handle_event(&mut self, event: &WindowEvent, ctx: &mut EventCtx<'_>)
§fn cursor_shape(&self, point: Point) -> Option<CursorIcon>
fn cursor_shape(&self, point: Point) -> Option<CursorIcon>
point is logical coords, same space as Widget::get_rect;
None defers to the default arrow. The host hit-tests the whole
tree via node_map and picks the smallest-area claim, so containers
need not override this.§fn ime_cursor_rect(&self) -> Option<Rect>
fn ime_cursor_rect(&self) -> Option<Rect>
Some enables IME for the focused widget and
positions its candidate window; non-text controls keep the default
None and therefore disable IME.§fn ime_content(&self) -> Option<InputContent>
fn ime_content(&self) -> Option<InputContent>
text-input-v3, native IMEs elsewhere). None is intentionally the
default: enabling an IME for buttons, canvas tools or games makes the
compositor raise an on-screen keyboard over content that cannot accept
the committed text. Read more§fn ime_edit_fingerprint(&self, key: &[u8; 32]) -> Option<[u8; 32]>
fn ime_edit_fingerprint(&self, key: &[u8; 32]) -> Option<[u8; 32]>
Self::accessibility reports this subtree hidden, for a
host that asks it of every node to prune focus traversal. Widgets
whose node is costly to build (text values, per-block children, a
translated name) answer without building it: the focus walk asks
every widget in the window on every recomputation. Any override must
agree with accessibility(); debug builds check it in the walk.§fn synthetic_accessibility_rect(&self, path: &[usize]) -> Option<Rect>
fn synthetic_accessibility_rect(&self, path: &[usize]) -> Option<Rect>
AccessNode::children. The path is
its child-index path beneath this widget’s accessibility node. Returning
a rect lets AccessKit activation inject the same click as pointer input.§fn focus_synthetic_accessibility(&mut self, path: &[usize]) -> bool
fn focus_synthetic_accessibility(&mut self, path: &[usize]) -> bool
§fn accessibility(&self) -> Option<AccessNode>
fn accessibility(&self) -> Option<AccessNode>
AccessState. Default None means
presentational: the node is skipped and children reparent onto the
parent. State must be derived, not stored so it can’t drift from
draw; names must already be i18n!-resolved.§fn perform_semantic_action(
&mut self,
target: &str,
action: &Action,
doc: &mut Edits<'_>,
path: &(dyn Any + 'static),
) -> bool
fn perform_semantic_action( &mut self, target: &str, action: &Action, doc: &mut Edits<'_>, path: &(dyn Any + 'static), ) -> bool
target is the opaque stable value supplied through
AccessNode::with_action_target. Read more§fn native_input_snapshot(
&self,
_state: &(dyn Any + 'static),
_path: &(dyn Any + 'static),
) -> Option<Value>
fn native_input_snapshot( &self, _state: &(dyn Any + 'static), _path: &(dyn Any + 'static), ) -> Option<Value>
§fn view_only_scroll(&self, _event: &WindowEvent) -> bool
fn view_only_scroll(&self, _event: &WindowEvent) -> bool
sync. The runner still lays out, paints and refreshes accessibility
geometry; unknown handlers stay on the full path.§fn primary_vertical_scroll(&self) -> Option<PrimaryScrollRegion>
fn primary_vertical_scroll(&self) -> Option<PrimaryScrollRegion>
fn apply_primary_vertical_scroll( &mut self, _action: PrimaryScrollAction, ) -> PrimaryScrollResult
§fn callback_binding(&self) -> Option<CallbackBinding>
fn callback_binding(&self) -> Option<CallbackBinding>
§fn has_separate_document_owner(&self) -> bool
fn has_separate_document_owner(&self) -> bool
§fn history_owner(&self) -> Option<HistoryOwner>
fn history_owner(&self) -> Option<HistoryOwner>
§fn record_owners(&self) -> Vec<HistoryOwner>
fn record_owners(&self) -> Vec<HistoryOwner>
crate::record::person). They take no part in this
widget’s history or controls.§fn provide<'a>(&'a self, _request: &mut Request<'a, '_>)
fn provide<'a>(&'a self, _request: &mut Request<'a, '_>)
capability). Declare capabilities with crate::provides!.§fn provide_mut<'a>(&'a mut self, _request: &mut RequestMut<'a, '_>)
fn provide_mut<'a>(&'a mut self, _request: &mut RequestMut<'a, '_>)
Widget::provide.§fn mount_native_views(&mut self, host: &NativeViewHost<'_>)
fn mount_native_views(&mut self, host: &NativeViewHost<'_>)
§fn unmount_native_views(&mut self)
fn unmount_native_views(&mut self)
§fn native_view_frame_start(&mut self)
fn native_view_frame_start(&mut self)
§fn set_interaction_environment(&mut self, environment: InteractionEnvironment)
fn set_interaction_environment(&mut self, environment: InteractionEnvironment)
§fn set_window_bar_control(&mut self, in_bar: bool)
fn set_window_bar_control(&mut self, in_bar: bool)
§fn sync(&mut self, state: &(dyn Any + 'static), path: &(dyn Any + 'static))
fn sync(&mut self, state: &(dyn Any + 'static), path: &(dyn Any + 'static))
Widget::children_mut returns; a widget overrides it only to
read state of its own, or to sync children it does not expose there.§fn update(
&mut self,
state: &(dyn Any + 'static),
path: &(dyn Any + 'static),
) -> bool
fn update( &mut self, state: &(dyn Any + 'static), path: &(dyn Any + 'static), ) -> bool
Widget::children_mut returns without short-circuiting, so a container never freezes its
descendants; an override checks state of its own and forwards.§fn settle(&mut self, edits: &mut Edits<'_>, path: &ExId)
fn settle(&mut self, edits: &mut Edits<'_>, path: &ExId)
edits;
the host syncs again when the document changed. The default settles the returned children.fn measure( &mut self, _known: Size<Option<f32>>, _available: Size<AvailableSpace>, _text_renderer: &mut TextRenderer, ) -> Size<f32>
§fn layout_info(&self) -> Option<LayoutInfo>
fn layout_info(&self) -> Option<LayoutInfo>
None means the widget has no such policy; ordinary manual widgets remain
valid. Values are available after build/settlement and carry real origins.§fn adjust_layout_style(
&mut self,
_taffy: &mut TaffyTree,
_node: NodeId,
_text: &mut TextRenderer,
) -> bool
fn adjust_layout_style( &mut self, _taffy: &mut TaffyTree, _node: NodeId, _text: &mut TextRenderer, ) -> bool
§fn observe_physical_input(&mut self, _input: PhysicalInput)
fn observe_physical_input(&mut self, _input: PhysicalInput)
fn children(&self) -> Vec<&dyn Widget>
§fn for_each_child(&self, visitor: &mut dyn FnMut(&dyn Widget))
fn for_each_child(&self, visitor: &mut dyn FnMut(&dyn Widget))
Self::children; toolkit
containers override this to walk their retained storage directly.§fn for_each_child_in_clip(&self, visitor: &mut dyn FnMut(&dyn Widget))
fn for_each_child_in_clip(&self, visitor: &mut dyn FnMut(&dyn Widget))
Self::for_each_child that may paint inside the layout_clip in
effect: what a scroll view’s damage and copy plan need. Every child by default; a long
column visits only those near the clip, so a frame costs what is shown, not what the column
holds.§fn for_each_hosted_child(&self, _visitor: &mut dyn FnMut(&dyn Widget))
fn for_each_hosted_child(&self, _visitor: &mut dyn FnMut(&dyn Widget))
Self::children lists, so what is walked
there keeps the paths, sibling indices and registry entries it had.§fn for_each_layout_child(&self, _visitor: &mut dyn FnMut(&dyn Widget)) -> bool
fn for_each_layout_child(&self, _visitor: &mut dyn FnMut(&dyn Widget)) -> bool
Self::build_layout gives a layout node,
also those Self::for_each_child keeps from routing (a hidden
pane, a title, a spacer). A retained layout is checked against this
walk before it is called through again, so a widget that replaced a
child without reporting it gets a new layout instead of a call into
freed memory. A child missing here cannot be checked, so debug builds
stop on it. A wrapper that stands for its inner widget’s node visits
the inner widget itself. Read morefn children_mut(&mut self) -> Vec<&mut dyn Widget>
§fn window_slot(&self, _id: String) -> Option<ToolbarAction>
fn window_slot(&self, _id: String) -> Option<ToolbarAction>
id
(crate::window_toolbar::ToolbarAction): a button’s icon and name.
None for anything that is not a button.§fn as_any(&self) -> Option<&(dyn Any + 'static)>
fn as_any(&self) -> Option<&(dyn Any + 'static)>
dyn Widget. Default None (a widget may borrow
and so not be 'static); a widget opts in with Some(self), and a
Decorator answers itself.fn as_any_mut(&mut self) -> Option<&mut (dyn Any + 'static)>
§fn stands_for(&self, address: *const ()) -> bool
fn stands_for(&self, address: *const ()) -> bool
address, or stands in the tree
for it: a Decorator stands for every widget it wraps, so a
scroller drawn inside one is found where the decorator is
(crate::scroll_copy::offer).§fn focus_reveal_context(&self) -> Option<Rect>
fn focus_reveal_context(&self) -> Option<Rect>
§fn reveal_descendant(&mut self, target: *const dyn Widget) -> bool
fn reveal_descendant(&mut self, target: *const dyn Widget) -> bool
§fn test_rects(&self) -> Vec<(String, Rect)>
fn test_rects(&self) -> Vec<(String, Rect)>
Widget::get_rect; zero-area entries are dropped.§fn child_clip_rect(&self) -> Option<Rect>
fn child_clip_rect(&self) -> Option<Rect>
§fn snap_points(&self, axis: ScrollAxis, out: &mut Vec<f32>)
fn snap_points(&self, axis: ScrollAxis, out: &mut Vec<f32>)
axis that this widget, as a scroll view’s content,
offers it to settle on, measured from its own leading edge: a board’s
lanes (crate::widget::Board). None leaves a scroller stopping
wherever the hand left it.§fn take_action_palette_request(&mut self) -> Option<ActionAddress>
fn take_action_palette_request(&mut self) -> Option<ActionAddress>
resources().§fn take_search_request(&mut self) -> bool
fn take_search_request(&mut self) -> bool
§fn claims_raw_touch(&self, _point: Point) -> bool
fn claims_raw_touch(&self, _point: Point) -> bool
point (logical coords, same space as Widget::get_rect). Read more§fn touch_claim(&self, _point: Point) -> TouchClaim
fn touch_claim(&self, _point: Point) -> TouchClaim
point (logical coords)
means here, when a drag moves something rather than scrolling. Read more§fn tooltip(&self) -> Option<&str>
fn tooltip(&self) -> Option<&str>
crate::widget::tooltip::TooltipHost),
hit-tested like cursor_shape so containers
need not forward it. An icon-only control should also use this as
its accessible name.§fn tooltip_side(&self) -> TooltipSide
fn tooltip_side(&self) -> TooltipSide
fn tooltip_target_at(&self, point: Point) -> Option<(Rect, String)>
§fn is_default_keyboard_focus(&self) -> bool
fn is_default_keyboard_focus(&self) -> bool
§fn keyboard_input_scope(&self) -> Option<u64>
fn keyboard_input_scope(&self) -> Option<u64>
§fn set_full_bleed(&mut self, _full_bleed: bool)
fn set_full_bleed(&mut self, _full_bleed: bool)
§fn set_invalid(&mut self, _invalid: bool)
fn set_invalid(&mut self, _invalid: bool)
Field::with_error: an invalid control edges itself in danger ink
and reports invalid to assistive technology. Controls without a
field face ignore it.§fn focus_requested(&mut self, target: Option<NodeId>, tree: &TaffyTree)
fn focus_requested(&mut self, target: Option<NodeId>, tree: &TaffyTree)
None leaves the menu to stand under
the focused widget’s own box.§fn wants_tab_input(&self) -> bool
fn wants_tab_input(&self) -> bool
§fn scopes_keyboard_focus(&self) -> bool
fn scopes_keyboard_focus(&self) -> bool
Self::traps_focus it moves no focus when it starts or ends, and
pointer input is unaffected. Default false.§fn take_app_activation(&mut self) -> Option<u64>
fn take_app_activation(&mut self) -> Option<u64>
§fn take_focus_request(&mut self) -> Option<String>
fn take_focus_request(&mut self) -> Option<String>
Self::accessibility with its synthetic children shared, for a
widget that keeps them between frames: each child it did not change
is handed over as the very Arc of the last frame, which the
semantic tree takes as unchanged without copying or comparing it. Read more§fn accessibility_root(&self) -> Option<AccessNode>
fn accessibility_root(&self) -> Option<AccessNode>
Self::accessibility’s own node with its children left empty:
its role, identity (semantic_key) and state. Focus capture and focus
order read only these, for every node on every frame, so a widget
whose node carries a large subtree (a document exporting its every
block) answers without building it. An override must equal
accessibility() with children cleared.§fn accessibility_child_parent(&self, _child_index: usize) -> Option<usize>
fn accessibility_child_parent(&self, _child_index: usize) -> Option<usize>
children entry beneath a
synthetic child returned by accessibility.
The returned index addresses AccessNode::children for this frame.
Collections use this to place a real interactive row delegate inside
its virtual ListItem/TreeItem instead of exporting a duplicate.§fn accessibility_child_path(&self, child_index: usize) -> Option<Vec<usize>>
fn accessibility_child_path(&self, child_index: usize) -> Option<Vec<usize>>
children entry beneath a
nested path of synthetic children returned by
accessibility. Read more§fn accessibility_represents_child(&self, _child_index: usize) -> bool
fn accessibility_represents_child(&self, _child_index: usize) -> bool
children entry is already
represented in this widget’s own synthetic
accessibility tree, so the bridge must not
export it a second time. A host that publishes a child’s semantics
itself (to add its own controls inside the same dialog) answers true
for that child; assistive technology then sees one copy, not two.§fn lays_out_child(&self, _child_index: usize) -> bool
fn lays_out_child(&self, _child_index: usize) -> bool
§fn accessibility_child_description(&self, _child_index: usize) -> Option<String>
fn accessibility_child_description(&self, _child_index: usize) -> Option<String>
children entry to
assistive technology, when this widget holds the words for it: a
row’s secondary line is its trailing switch’s description. The
bridge sets it as that child’s node’s description unless the child
describes itself.§fn perform_action(
&mut self,
_action: &Action,
_key_path: &[u64],
_state: &mut Edits<'_>,
_path: &(dyn Any + 'static),
) -> bool
fn perform_action( &mut self, _action: &Action, _key_path: &[u64], _state: &mut Edits<'_>, _path: &(dyn Any + 'static), ) -> bool
Action on this
widget, or on one of its synthetic accessibility nodes. May mutate
the CRDT like handle_event. Read more§fn is_enabled(&self) -> bool
fn is_enabled(&self) -> bool
false) widget is excluded from focus traversal, must
reject input in handle_event, and renders dimmed (see
DISABLED_ALPHA).§fn ime_requires_deferred_ack(&self) -> bool
fn ime_requires_deferred_ack(&self) -> bool
§fn ime_refuses_ordinary_commits(&self) -> bool
fn ime_refuses_ordinary_commits(&self) -> bool
§fn start_deferred_text(&mut self) -> Option<Receipt>
fn start_deferred_text(&mut self) -> Option<Receipt>
§fn commit_deferred_text(&mut self, text: &str) -> Option<Receipt>
fn commit_deferred_text(&mut self, text: &str) -> Option<Receipt>
§fn ime_multiline(&self) -> bool
fn ime_multiline(&self) -> bool
§fn presented(&self) -> bool
fn presented(&self) -> bool
true; false only for a widget standing in for a window’s
content whose first frame has not drawn. Must latch: once true,
never false again for the same content.§fn arrives_from(&self) -> Source
fn arrives_from(&self) -> Source
presented: this device (an app starting here),
another device or a host. A frame from this device may hold the
window’s first frame up to one frame budget; any other reserves the
window’s place and says where it comes from after a while.§fn arrival_progress(&self) -> Option<Progress>
fn arrival_progress(&self) -> Option<Progress>
§fn arrival_shape(&self) -> SkeletonShape
fn arrival_shape(&self) -> SkeletonShape
§fn text_review(&self) -> Option<(usize, String)>
fn text_review(&self) -> Option<(usize, String)>
(caret_byte, text), byte offset on a char boundary. The host diffs
this before/after an event so caret-only moves (arrows, Home/End)
get announced, not just typing.§fn on_external_event(
&mut self,
_payload: &str,
_state: &mut Edits<'_>,
_root: &(dyn Any + 'static),
)
fn on_external_event( &mut self, _payload: &str, _state: &mut Edits<'_>, _root: &(dyn Any + 'static), )
crate::app::UserEvent::External (e.g. a worker thread streaming
output into a status log). Default no-op; the App redraws and
re-syncs after dispatch, so mutating state here is enough.crate::gesture::NavGestureRecognizer and delivered to the whole
tree; return true once consumed. Default forwards to children, so
a widget that owns history becomes swipe-navigable for free.Self::on_nav_gesture would consume now. A widget
that owns history overrides this beside on_nav_gesture.§fn take_focus_reset(&mut self) -> bool
fn take_focus_reset(&mut self) -> bool
crate::app::App::autofocus_on_structure_change;
a wizard raises it on step transitions.§fn take_accessibility_request(&mut self) -> Option<AccessibilityRequest>
fn take_accessibility_request(&mut self) -> Option<AccessibilityRequest>
§fn dev_route(&self) -> Option<RouteSnapshot>
fn dev_route(&self) -> Option<RouteSnapshot>
§fn restore_dev_route(&mut self, route: &RouteSnapshot) -> bool
fn restore_dev_route(&mut self, route: &RouteSnapshot) -> bool
route back. Returns whether a router in this subtree accepted it. Read more§fn appearance_intent(&self) -> Option<AppearanceIntent>
fn appearance_intent(&self) -> Option<AppearanceIntent>
crate::app::App::appearance_reconcile — how a settings pane
re-themes the running app live without a back-channel.
Level-triggered; the App recurses Self::children itself, so
containers need not forward it. First Some wins.§fn minimum_window_width(&self) -> Option<f64>
fn minimum_window_width(&self) -> Option<f64>
NavShell answers with one column
at a time). The host states it to the window system, so the desktop
stops a resize there. None: no opinion. The host walks the tree
itself (minimum_window_width), so containers need not forward
it; the first Some wins.§fn preferred_window_size(&self) -> Option<(f64, f64)>
fn preferred_window_size(&self) -> Option<(f64, f64)>
None: the
window is the user’s and the app lays itself out in whatever it gets.§fn set_motion_reduced(&mut self, reduced: bool)
fn set_motion_reduced(&mut self, reduced: bool)
§fn needs_idle_sync(&self) -> bool
fn needs_idle_sync(&self) -> bool
sync still needs to run on idle frames without input or
collab events — e.g. waiting out a document-adoption grace window.fn wants_pointer_capture(&self) -> bool
§fn disclosing(&self) -> Option<Disclosing>
fn disclosing(&self) -> Option<Disclosing>
motion::Disclosure: an in-window banner arriving or leaving), or a
content-sized container one moves in, how far what follows it is
drawn from where it is laid out. A moving band stands out of the
layout; its container places it (Self::place_disclosing) and
draws the widgets after it lower by transform, so they move with the
band’s edge instead of being laid out again every frame. None at
rest (the default).§fn place_disclosing(&mut self, _slot: Rect)
fn place_disclosing(&mut self, _slot: Rect)
Disclosing::Band) stands while it is
out of the layout: its slot’s top and width (slot’s height is
zero), set by its container after each layout.§fn is_band(&self) -> bool
fn is_band(&self) -> bool
widget::Disclosing). Its column leaves it out of its identity
across rebuilds.§fn note_placement(&mut self, _placement: Placement)
fn note_placement(&mut self, _placement: Placement)
§fn animation_detail(&self) -> Option<String>
fn animation_detail(&self) -> Option<String>
None when it has nothing
to add to its name and geometry.§fn needs_animation_frame(&self) -> bool
fn needs_animation_frame(&self) -> bool
App polls this in Event::AboutToWait; without it a curve would
freeze until an unrelated event woke it.§fn next_wake_deadline(&self) -> Option<Instant>
fn next_wake_deadline(&self) -> Option<Instant>
§fn holds_frame_until(&self, now: Instant) -> Option<Instant>
fn holds_frame_until(&self, now: Instant) -> Option<Instant>
crate::arriving): a local read that has
not answered and is still inside its frame budget. The host keeps
the frame on screen until then, or until the data lands, so the
person never sees the space empty and then filled. Containers
forward (the default does).§fn serve_deadline(&mut self, _now: Instant) -> bool
fn serve_deadline(&mut self, _now: Instant) -> bool
Self::next_wake_deadline) is
due at now: do the work it was for, and say whether anything
changed. The default says it did.§fn dismiss_presented_modal(&mut self) -> bool
fn dismiss_presented_modal(&mut self) -> bool
§fn presents_modal(&self) -> bool
fn presents_modal(&self) -> bool
Widget::dismiss_presented_modal.§fn take_structure_change(&mut self) -> StructureChange
fn take_structure_change(&mut self) -> StructureChange
Self::take_structure_dirty, saying whether the frame’s damage can
still describe the rebuild (StructureChange::Described). Reading
clears what take_structure_dirty clears; the two must agree on
whether there is a change. The default is the flag, as
a StructureChange::Rebuild: only a widget that knows every pixel its
change touches lands in its own damage says less, and a container
forwards a child’s StructureChange::Described only by overriding
this.§fn remount_children(&mut self, remount: &mut Remount<'_>) -> bool
fn remount_children(&mut self, remount: &mut Remount<'_>) -> bool
StructureChange::Children this widget or one under it
reported, in the retained layout tree, through remount (see
remount). Returns false when it cannot be
carried out in place: the host then rebuilds its tree, and the change
is carried out by Self::build_layout. A widget reports such a
change until either has carried it out. The default carries out its
children’s.§fn has_pending_visual_work(&self) -> bool
fn has_pending_visual_work(&self) -> bool
§fn has_transient_feedback(&self) -> bool
fn has_transient_feedback(&self) -> bool
§fn collect_damage(&self, regions: &mut Vec<Rect>)
fn collect_damage(&self, regions: &mut Vec<Rect>)
§fn damage_covers_own_box(&self) -> bool
fn damage_covers_own_box(&self) -> bool
Self::collect_damage covers every pixel a relayout changed by
moving or resizing its layout box: a host that repaints where moved
widgets were and are may then leave this widget’s box to it (its
children’s boxes still count). A block editor that grew by a
paragraph says where its blocks were and are; the default does not
claim it.§fn mark_children_drawn(&mut self)
fn mark_children_drawn(&mut self)
§fn release_scene_cache(&mut self)
fn release_scene_cache(&mut self)
§fn composition_follows_allocation(&self) -> bool
fn composition_follows_allocation(&self) -> bool
take_structure_dirty themselves when a new allocation changes what
they show, keep the default: a resize re-solves the retained tree in
place instead of recomposing all of it.§fn layout_needs_measure(&self) -> bool
fn layout_needs_measure(&self) -> bool
layout_dirty frame needs taffy to re-solve sizes
(compute_layout) rather than just reposition already-solved boxes.
Scrollable is the motivating override: it translates its origin
in apply_layout without changing any taffy size, so re-solving on
every scroll frame is pure waste.§fn paint_bounds(&self) -> Rect
fn paint_bounds(&self) -> Rect
draw_child
skips the draw when it misses the viewport. Override for widgets
that paint past their own rect.§fn draw_overlay(
&mut self,
scene: &mut Scene,
transform: Affine,
text_renderer: &mut TextRenderer,
theme: &Theme,
presence: &PresenceCtx,
)
fn draw_overlay( &mut self, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )
draw
recursion, so anything emitted here composites above every sibling
regardless of tree order — the toolkit’s overlay mechanism for
content that escapes its layout box (an open Dropdown, a
popover). Default recurses children_mut.Auto Trait Implementations§
impl !Freeze for ActionPalette
impl !RefUnwindSafe for ActionPalette
impl !Send for ActionPalette
impl !Sync for ActionPalette
impl Unpin for ActionPalette
impl UnsafeUnpin for ActionPalette
impl !UnwindSafe for ActionPalette
Blanket Implementations§
§impl<T> AsDynWidget for Twhere
T: Widget,
impl<T> AsDynWidget for Twhere
T: Widget,
§fn as_dyn_widget(&self) -> &dyn Widget
fn as_dyn_widget(&self) -> &dyn Widget
§impl<T> AudiencePresentationWidgetExt for T
impl<T> AudiencePresentationWidgetExt for T
fn audience_presentation_request(&self) -> Option<AudiencePresentationRequest>
fn on_audience_presentation_changed(&mut self, active: bool)
fn draw_audience_presentation( &mut self, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, rect: Rect, ) -> bool
fn handle_audience_presentation_event( &mut self, event: &WindowEvent, state: &mut Edits<'_>, path: &ExId, ) -> bool
fn on_audience_presentation_closed(&mut self)
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<T> CompleteContentWidgetExt for T
impl<T> CompleteContentWidgetExt for T
fn complete_content_size(&self) -> Option<Size>
fn draw_complete_content( &mut self, scene: &mut Scene, bounds: Rect, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, ) -> bool
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> FloatingSurfaceWidgetExt for T
impl<T> FloatingSurfaceWidgetExt for T
fn on_floating_surface_focus_changed(&mut self, id: Option<&str>, focused: bool)
fn on_floating_surface_ime_source_changed(&mut self, id: Option<&str>)
fn on_floating_surface_event_source(&mut self, id: Option<&str>)
fn floating_surface_event( &mut self, id: &str, event: &WindowEvent, ctx: &mut EventCtx<'_>, ) -> bool
fn floating_surface_accessibility(&self, id: &str) -> Option<AccessNode>
fn perform_floating_surface_accessibility_action( &mut self, id: &str, target: &str, action: &Action, state: &mut Edits<'_>, path: &ExId, ) -> bool
fn floating_surface_ime(&self, id: &str) -> Option<(InputContent, Rect)>
fn take_floating_surface_request(&mut self) -> Option<FloatingSurfaceRequest>
fn take_capture_studio_request(&mut self) -> Option<CaptureMode>
fn take_floating_surface_source_updates(&mut self) -> Vec<(String, Rect)>
fn draw_floating_surfaces( &mut self, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )
fn draw_floating_surface( &mut self, id: &str, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, ) -> bool
fn floating_surface_presentations(&self) -> Vec<FloatingSurfacePresentation>
fn active_floating_surface_ids(&self) -> Vec<String>
fn set_floating_surface_bounds(&mut self, bounds: Rect)
fn on_floating_surface_host_message( &mut self, message: &FloatingSurfaceHostMessage, )
§impl<T> FullscreenWidgetExt for T
impl<T> FullscreenWidgetExt for T
fn fullscreen_intent(&self) -> Option<bool>
fn fullscreen_params(&self) -> FullscreenRequest
fn on_fullscreen_changed(&mut self, active: bool)
Source§impl<W> HostDelivery for W
impl<W> HostDelivery for W
Source§fn start_encoded(
&mut self,
kind: OperationKind,
type_id: &str,
payload: &[u8],
doc: &mut AutoCommit,
path: &ExId,
) -> Result<Option<Effected>, String>
fn start_encoded( &mut self, kind: OperationKind, type_id: &str, payload: &[u8], doc: &mut AutoCommit, path: &ExId, ) -> Result<Option<Effected>, String>
type_id, payload) of kind.Source§fn deliver_control(
&mut self,
kind: OperationKind,
control: &str,
doc: &mut AutoCommit,
path: &ObjId,
) -> Result<Option<Effected>, String>
fn deliver_control( &mut self, kind: OperationKind, control: &str, doc: &mut AutoCommit, path: &ObjId, ) -> Result<Option<Effected>, String>
control (its id,
as its tilo.control: resource names it).§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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