Struct TileHost
pub struct TileHost {
pub focused: bool,
/* private fields */
}Fields§
§focused: boolImplementations§
§impl TileHost
impl TileHost
pub fn window_search(&self, doc: &AutoCommit) -> WindowPublication
pub fn window_search(&self, doc: &AutoCommit) -> WindowPublication
What this tile’s app publishes for the search of its window: what
its host reads through its widgets, or what an app keeping its own
document says it publishes
(AppWidget::window_search).
§impl TileHost
impl TileHost
pub fn content_shift(&self) -> f64
pub fn content_shift(&self) -> f64
How far the content is drawn from where it was laid out
(Self::offset_layout): what its app placed at x shows at
x + content_shift().
pub fn take_host_intent(&mut self) -> Option<AppHostIntent>
pub fn mount_component(
component: AppComponent,
sink: impl Fn(WakeEvent) + Send + Sync + 'static,
) -> Result<TileHost, LaunchError>
pub fn mount_component( component: AppComponent, sink: impl Fn(WakeEvent) + Send + Sync + 'static, ) -> Result<TileHost, LaunchError>
Bind a prepared component’s wake lifetime before mounting it in a group. Setup failure retains the component’s record and recovery reports.
pub fn from_component(component: AppComponent) -> TileHost
pub fn set_window_presents_history(&mut self, tab_presents: bool)
pub fn set_window_presents_history(&mut self, tab_presents: bool)
A desktop window hosts this tile; tab_presents says whether the
window’s tab row shows (and so presents the History control). The
tile then never draws a History band of its own: closed, History is
opened from the tab row, or from the app’s header row while the tab
row is hidden.
pub fn queue_control(
&mut self,
invocation: ControlInvocation,
) -> Result<(), ControlInvocation>
pub fn queue_control( &mut self, invocation: ControlInvocation, ) -> Result<(), ControlInvocation>
Queue invocation as one of the hosted app’s own controls: an action
the person chose over this window (its in-app search) runs inside the
app, under the app’s custody and permissions, exactly as clicking the
control in it would. The outer document never resolves an app’s
actions by address, so this is the only way such a choice reaches
the app.
pub fn visit_search_root(
&mut self,
visit: &mut dyn FnMut(&mut dyn Widget) -> bool,
) -> Option<bool>
pub fn visit_search_root( &mut self, visit: &mut dyn FnMut(&mut dyn Widget) -> bool, ) -> Option<bool>
Run visit on the root of this tile’s app, where the window’s search
finds a document or a list (crate::widget::WindowSearch); visit
says whether it changed what the app shows. None for a tile with no
app (a placeholder, a notice).
pub fn in_place_search(&mut self) -> InPlace
pub fn in_place_search(&mut self) -> InPlace
What the window’s search can act on in this tile’s app.
pub fn register_document_history( &mut self, definition: &'static HistoryDefinition, ) -> Result<(), HistoryRegistrationError>
pub fn new(content: TileContent) -> TileHost
pub fn asking_for_input(&self) -> bool
pub fn asking_for_input(&self) -> bool
Whether the app in this tile is asking the person to type: a text
field of it holds the keyboard (Widget::ime_content). A stub, a
notice, a window whose code is on its way, or another device’s page
asks nothing.
pub fn with_arrival_shape(self, shape: SkeletonShape) -> TileHost
pub fn with_arrival_shape(self, shape: SkeletonShape) -> TileHost
What the app whose code is on its way declared its window shows
meanwhile (crate::widget::SkeletonShape): the shape the app’s
manifest declares, read from the registry before its code is in. A
tile told nothing shows its ground alone, as a window that declared
no shape does.
pub fn arriving_from(self, from: Source) -> TileHost
pub fn arriving_from(self, from: Source) -> TileHost
Content whose first frame comes from from: an TileContent::Arriving
place for an app whose code a host serves.
pub fn arrival_step(&self, now: Instant) -> Option<Step>
pub fn arrival_step(&self, now: Instant) -> Option<Step>
The placeholder step standing in the tile at now, while one does:
the content’s first frame is not shown yet.
pub fn is_arriving(&self) -> bool
pub fn is_arriving(&self) -> bool
Whether the tile still stands for content whose first frame is not shown: its placeholder (or the ground it reserves) is what is there.
pub fn holds_first_frame_until(&self, now: Instant) -> Option<Instant>
pub fn holds_first_frame_until(&self, now: Instant) -> Option<Instant>
Until when the window’s first frame waits for this tile’s content: a first frame from this device, inside its frame budget.
pub fn set_panic_scope(&self, tab: u64)
pub fn set_panic_scope(&self, tab: u64)
Name tab to a panic hook while this tile’s application runs: see
panic_scope.
pub fn set_hosted_window(&mut self, window: HostedWindow)
pub fn set_hosted_window(&mut self, window: HostedWindow)
Show this tile’s app in window: while the app runs, its
crate::window_toolbar calls act on window, where the host reads
its slots for the window’s bar and hands back what the person did with
them (crate::window_slots::WindowSlots). For a host that runs
several apps in its own process and draws their bars.
pub fn hosted_window(&self) -> Option<&HostedWindow>
pub fn hosted_window(&self) -> Option<&HostedWindow>
The window this tile’s app is shown in, if the host gave it one.
pub fn take_place_of(&mut self, next: TileHost)
pub fn take_place_of(&mut self, next: TileHost)
Stand where this tile stands from now on: next, built for the same
window (an app whose code or record arrived where a placeholder held
its place), goes on with the arrival (Self::continue_arrival)
and takes this tile’s retained layout node: the app is laid out under
that node in place and the rest of the host’s tree is kept, unless a
History around it is busy.
pub fn continue_arrival(&mut self, previous: &TileHost)
pub fn continue_arrival(&mut self, previous: &TileHost)
Built in place of previous (an app whose code or record just
arrived, in the window that reserved its place): while previous
still stood for content not shown, this host goes on with that
arrival, so its placeholder keeps its timing and the app cross-fades
in over it instead of the window cutting or starting over.
pub fn record_transition_error(&self) -> Option<&str>
pub fn kind_string(&self) -> String
pub fn app_mut(&mut self) -> Option<&mut (dyn AppWidget + 'static)>
pub fn app_mut(&mut self) -> Option<&mut (dyn AppWidget + 'static)>
The hosted app, to reach a capability or concrete type of it in place. Unlike replacing the content, this leaves the tile’s record, History and layout alone: a change inside the app reports its own structure.
pub fn replace_component(
&mut self,
component: AppComponent,
) -> Vec<ComponentCloseReport>
pub fn replace_component( &mut self, component: AppComponent, ) -> Vec<ComponentCloseReport>
Replace a component after its complete closed-owner cleanup. The caller retains returned reports until recovery is durably resolved.
pub fn replace_content(&mut self, content: TileContent)
pub fn replace_content(&mut self, content: TileContent)
Used when a window announced before it existed (a place reserved for it)
becomes the app; replacing the tab instead would hand focus
elsewhere. Flags a structural rebuild since App and the card
variants have different taffy shapes.
pub fn content(&self) -> &TileContent
pub fn set_focused(&mut self, focused: bool)
pub fn start_spawn_animation(&mut self)
pub fn start_spawn_animation(&mut self)
A call mid-animation restarts the curve.
pub fn spawn_in_flight(&self) -> bool
pub fn complete_content_rect(&self) -> Option<Rect>
pub fn complete_content_rect(&self) -> Option<Rect>
Desktop-space card rect for an app-provided complete semantic canvas. The provider reports tile-content size; the shell card grows from the live tile’s top-left and never shrinks below the live window surface.
pub fn draw_complete_content_capture(
&mut self,
scene: &mut Scene,
transform: Affine,
tr: &mut TextRenderer,
theme: &Theme,
presence: &PresenceCtx,
) -> Option<Rect>
pub fn draw_complete_content_capture( &mut self, scene: &mut Scene, transform: Affine, tr: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, ) -> Option<Rect>
Paint a complete app-provided canvas in the ordinary window card. The app owns only its semantic pixels; shared clipping, corner radius and focus edge remain toolkit code, exactly as on screen.
§impl TileHost
impl TileHost
pub fn set_square_bottom(&mut self, square: bool)
pub fn set_square_bottom(&mut self, square: bool)
The tile’s bottom edge is the display’s: square its lower corners.
§impl TileHost
impl TileHost
pub fn hold_content(
&mut self,
tr: &mut TextRenderer,
theme: &Theme,
presence: &PresenceCtx,
)
pub fn hold_content( &mut self, tr: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )
Hold this window still as it is now, under the hold
hold_windows began: from here on it draws what it draws now,
wherever it moves, until release_windows. Without a hold, or
already held under this one, nothing changes.
pub fn content_held(&self) -> bool
pub fn content_held(&self) -> bool
Whether this window is held still under the hold in place.
§impl TileHost
impl TileHost
pub fn history_control(&self) -> Option<HistoryControl>
pub fn history_control(&self) -> Option<HistoryControl>
The History control the window’s tab row shows for this tile: open
or closed, or None where the tile has no History to open.
pub fn invoke_history_control(
&mut self,
control: HistoryControl,
) -> Result<(), String>
pub fn invoke_history_control( &mut self, control: HistoryControl, ) -> Result<(), String>
Press the window’s History control for this tile: open History, or close it while it shows, through the same History door the History shortcut and the palette use.
§Errors
The tile has no History, or its door refused the operation.
Trait Implementations§
§impl ActionControls for TileHost
impl ActionControls for TileHost
§fn install_control_custody(
&mut self,
domain: &ControlDomain,
attachment: CustodyAttachment,
)
fn install_control_custody( &mut self, domain: &ControlDomain, attachment: CustodyAttachment, )
§fn take_control_invocation(&mut self) -> Option<ControlInvocation>
fn take_control_invocation(&mut self) -> Option<ControlInvocation>
§fn refresh_control_action_availability(
&mut self,
allowed: &HashSet<ActionAddress>,
)
fn refresh_control_action_availability( &mut self, allowed: &HashSet<ActionAddress>, )
§fn take_attributed_control_invocation(
&mut self,
) -> Option<(ControlInvocation, Option<InvocationId>)>
fn take_attributed_control_invocation( &mut self, ) -> Option<(ControlInvocation, Option<InvocationId>)>
Self::take_control_invocation, with the effect invocation the
intent continues when an effect’s handler or completion queued it:
the host applies it for that invocation’s invoker.§fn on_control_invocation_result(
&mut self,
address: &ActionAddress,
result: &Result<ResourceOperationStart, DoorError>,
)
fn on_control_invocation_result( &mut self, address: &ActionAddress, result: &Result<ResourceOperationStart, DoorError>, )
Accepted means queued, not completed; confirmation remains an error
while the host offers its normal confirmation UI. This notification
grants no document authority and must not retry the invocation itself.§fn control_action_bindings(&self) -> Vec<ControlBindingMetadata>
fn control_action_bindings(&self) -> Vec<ControlBindingMetadata>
metadata
to its descendants’ inventory.§fn action_control_bindings(&self) -> Vec<ControlBindingMetadata>
fn action_control_bindings(&self) -> Vec<ControlBindingMetadata>
§fn has_action_control_bindings(&self) -> bool
fn has_action_control_bindings(&self) -> bool
control_action_bindings
contains an Action, including the same modal child exposure,
regardless of current availability.§fn has_pending_control_invocation(&self) -> bool
fn has_pending_control_invocation(&self) -> bool
§impl AudiencePresentationProvider for TileHost
impl AudiencePresentationProvider for TileHost
§fn audience_presentation_request(&self) -> Option<AudiencePresentationRequest>
fn audience_presentation_request(&self) -> Option<AudiencePresentationRequest>
§fn on_audience_presentation_changed(&mut self, active: bool)
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 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 handle_audience_presentation_event( &mut self, event: &WindowEvent, state: &mut Edits<'_>, path: &ExId, ) -> bool
§fn on_audience_presentation_closed(&mut self)
fn on_audience_presentation_closed(&mut self)
§impl CollaborationTopology for TileHost
impl CollaborationTopology for TileHost
fn collaboration_children_mut(&mut self) -> Vec<&mut dyn Widget>
§impl ComponentLifecycle for TileHost
impl ComponentLifecycle for TileHost
§fn unsaved_documents(&self, doc: &AutoCommit) -> Vec<UnsavedDocument>
fn unsaved_documents(&self, doc: &AutoCommit) -> Vec<UnsavedDocument>
§fn checkpoint_components(&mut self) -> Vec<String>
fn checkpoint_components(&mut self) -> Vec<String>
§fn finish_admitted_close(&mut self) -> Vec<ComponentCloseReport>
fn finish_admitted_close(&mut self) -> Vec<ComponentCloseReport>
§fn close_components(&mut self) -> Vec<ComponentCloseReport>
fn close_components(&mut self) -> Vec<ComponentCloseReport>
§fn take_component_close_reports(&mut self) -> Vec<ComponentCloseReport>
fn take_component_close_reports(&mut self) -> Vec<ComponentCloseReport>
§fn on_window_close_requested(&mut self) -> WindowCloseAdmission
fn on_window_close_requested(&mut self) -> WindowCloseAdmission
§fn take_window_close_intent(&mut self) -> bool
fn take_window_close_intent(&mut self) -> bool
§fn take_replacement(&mut self) -> Option<ComponentReplacement>
fn take_replacement(&mut self) -> Option<ComponentReplacement>
AppComponent::take_replacement),
for the host that mounted it. A component nested deeper answers to
the host that mounted it, so the default reaches no child.§fn take_save_status_presentation(&mut self) -> bool
fn take_save_status_presentation(&mut self) -> bool
App) presents it with a
frame of its own, not a rebuilt tree; one that does not ask sees it
through take_structure_dirty.§impl Continuable for TileHost
impl Continuable for TileHost
§fn continuation_metadata(
&self,
state: &AutoCommit,
path: &ExId,
) -> Option<ContinuationMetadata>
fn continuation_metadata( &self, state: &AutoCommit, path: &ExId, ) -> Option<ContinuationMetadata>
§fn restore_continuation_metadata(
&mut self,
metadata: &ContinuationMetadata,
state: &mut Edits<'_>,
path: &ExId,
) -> bool
fn restore_continuation_metadata( &mut self, metadata: &ContinuationMetadata, state: &mut Edits<'_>, path: &ExId, ) -> bool
§fn restore_live_continuation_metadata(
&mut self,
metadata: &ContinuationMetadata,
state: &AutoCommit,
path: &ExId,
) -> bool
fn restore_live_continuation_metadata( &mut self, metadata: &ContinuationMetadata, state: &AutoCommit, path: &ExId, ) -> bool
§impl FloatingSurfaceProvider for TileHost
impl FloatingSurfaceProvider for TileHost
§fn on_floating_surface_focus_changed(&mut self, id: Option<&str>, focused: bool)
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_ime_source_changed(&mut self, id: Option<&str>)
§fn on_floating_surface_event_source(&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_event( &mut self, id: &str, event: &WindowEvent, ctx: &mut EventCtx<'_>, ) -> bool
id, in the desk’s
coordinates: the frame the card’s hits were recorded in. Answers
whether the card took the event.§fn floating_surface_accessibility(&self, id: &str) -> Option<AccessNode>
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 floating_surface_ime(&self, id: &str) -> Option<(InputContent, Rect)>
§fn take_floating_surface_request(&mut self) -> Option<FloatingSurfaceRequest>
fn take_floating_surface_request(&mut self) -> Option<FloatingSurfaceRequest>
PiP does
not require a second rendering/widget API.§fn take_capture_studio_request(&mut self) -> Option<CaptureMode>
fn take_capture_studio_request(&mut self) -> Option<CaptureMode>
PiP chooser.§fn take_floating_surface_source_updates(&mut self) -> Vec<(String, Rect)>
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_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 draw_floating_surface( &mut self, id: &str, scene: &mut Scene, transform: Affine, text_renderer: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, ) -> bool
§fn set_floating_surface_bounds(&mut self, bounds: Rect)
fn set_floating_surface_bounds(&mut self, bounds: Rect)
§fn floating_surface_presentations(&self) -> Vec<FloatingSurfacePresentation>
fn floating_surface_presentations(&self) -> Vec<FloatingSurfacePresentation>
§fn active_floating_surface_ids(&self) -> Vec<String>
fn active_floating_surface_ids(&self) -> Vec<String>
§fn on_floating_surface_host_message(
&mut self,
message: &FloatingSurfaceHostMessage,
)
fn on_floating_surface_host_message( &mut self, message: &FloatingSurfaceHostMessage, )
§impl FullscreenProvider for TileHost
impl FullscreenProvider for TileHost
§fn fullscreen_intent(&self) -> Option<bool>
fn fullscreen_intent(&self) -> Option<bool>
None means no opinion; otherwise this is a level-triggered intent.§fn fullscreen_params(&self) -> FullscreenRequest
fn fullscreen_params(&self) -> FullscreenRequest
§fn on_fullscreen_changed(&mut self, active: bool)
fn on_fullscreen_changed(&mut self, active: bool)
§impl ResourceOperations for TileHost
impl ResourceOperations for TileHost
§fn start_operation(
&mut self,
op: &ResourceOperation<'_>,
doc: &mut Edits<'_>,
path: &ExId,
) -> Result<Option<ResourceOperationStart>, String>
fn start_operation( &mut self, op: &ResourceOperation<'_>, doc: &mut Edits<'_>, path: &ExId, ) -> Result<Option<ResourceOperationStart>, String>
§fn poll_resource_operation(
&mut self,
invocation: InvocationId,
cancellation_requested: bool,
doc: &AutoCommit,
path: &ExId,
) -> Option<InvocationUpdate>
fn poll_resource_operation( &mut self, invocation: InvocationId, cancellation_requested: bool, doc: &AutoCommit, path: &ExId, ) -> Option<InvocationUpdate>
§fn local_resource_operation_handlers(&self) -> &'static [&'static str]
fn local_resource_operation_handlers(&self) -> &'static [&'static str]
§fn resource_operation_handlers(&self) -> HashSet<String>
fn resource_operation_handlers(&self) -> HashSet<String>
§impl SearchSource for TileHost
impl SearchSource for TileHost
§fn search_providers(&self) -> Vec<Box<dyn SearchProvider>>
fn search_providers(&self) -> Vec<Box<dyn SearchProvider>>
SearchProvider per findable kind.§fn search_provider_descriptors(&self) -> Vec<SearchProviderDescriptor>
fn search_provider_descriptors(&self) -> Vec<SearchProviderDescriptor>
search_providers is, as the
action directory’s witness reads them. A source whose providers are
costly to make (one that builds an index to answer from) overrides
this to describe them without making them: the witness is read on
every frame that publishes the action surface, a search only when
someone searches.§fn search_index_state(&self) -> Option<IndexState>
fn search_index_state(&self) -> Option<IndexState>
None for a source that publishes none. Read every
frame that publishes, so it must not build anything:
search_index_entries is asked only
when this changes.§fn search_index_entries(&self) -> Vec<IndexEntry>
fn search_index_entries(&self) -> Vec<IndexEntry>
§fn activate_search_result(
&mut self,
action_id: &str,
doc: &mut Edits<'_>,
path: &(dyn Any + 'static),
)
fn activate_search_result( &mut self, action_id: &str, doc: &mut Edits<'_>, path: &(dyn Any + 'static), )
§impl ViewState for TileHost
impl ViewState for TileHost
§fn view_state(&self) -> Option<ViewContribution>
fn view_state(&self) -> Option<ViewContribution>
Self::restore_view_state.fn restore_view_state(&mut self, view: &ViewContribution)
§impl Widget for TileHost
impl Widget for TileHost
§fn as_any(&self) -> Option<&(dyn Any + 'static)>
fn as_any(&self) -> Option<&(dyn Any + 'static)>
Lets a host that lays several tiles out in one tree find the window around a widget (the palette centres on the focused one).
§fn scopes_keyboard_focus(&self) -> bool
fn scopes_keyboard_focus(&self) -> bool
The focused window’s tile is where Tab travels: the app’s controls, never the window’s bar or the desktop around it.
§fn take_app_activation(&mut self) -> Option<u64>
fn take_app_activation(&mut self) -> Option<u64>
An app does not bring itself forward; only its desktop does.
§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
The app also while History keeps it inert.
§fn is_layout_dirty(&self) -> bool
fn is_layout_dirty(&self) -> bool
The tile’s own node fills the window whatever it shows, so a notice or a stub has nothing to measure once laid out; app content and History report their own.
§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, )
The app’s top layer, over its own window: the tile is the viewport its dialogs centre on, its menus and tooltips stay inside, as a standalone app’s window is. Without this the top layer would see the whole screen the strip is drawn on and a dialog would centre there, spilling past a window narrower than the screen.
§fn presented(&self) -> bool
fn presented(&self) -> bool
Only an app can answer anything but true — a stub/notice is
painted by this process and is on screen the moment the tile is.
§fn take_structure_change(&mut self) -> StructureChange
fn take_structure_change(&mut self) -> StructureChange
The window’s content is laid out again in place under the tile’s
retained node (StructureChange::Children):
content that took a placeholder’s place, and an app that replaced
widgets of its own, so the rest of the host’s tree is kept. Only a
change of the tile itself rebuilds. Both flags are drained, so
neither is left set behind the other.
§fn remount_children(&mut self, remount: &mut Remount<'_>) -> bool
fn remount_children(&mut self, remount: &mut Remount<'_>) -> bool
Lay the content that took a placeholder’s place out under the tile’s retained node; otherwise carry out the app’s own change.
§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 primary_vertical_scroll(&self) -> Option<PrimaryScrollRegion>
fn primary_vertical_scroll(&self) -> Option<PrimaryScrollRegion>
fn apply_primary_vertical_scroll( &mut self, action: PrimaryScrollAction, ) -> PrimaryScrollResult
§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 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.§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 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 history_owner(&self) -> Option<HistoryOwner>
fn history_owner(&self) -> Option<HistoryOwner>
§fn has_separate_document_owner(&self) -> bool
fn has_separate_document_owner(&self) -> bool
§fn callback_binding(&self) -> Option<CallbackBinding>
fn callback_binding(&self) -> Option<CallbackBinding>
fn children(&self) -> Vec<&dyn Widget>
fn children_mut(&mut self) -> Vec<&mut dyn Widget>
§fn sync(&mut self, s: &(dyn Any + 'static), p: &(dyn Any + 'static))
fn sync(&mut self, s: &(dyn Any + 'static), p: &(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 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 update(&mut self, s: &(dyn Any + 'static), p: &(dyn Any + 'static)) -> bool
fn update(&mut self, s: &(dyn Any + 'static), p: &(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 build_layout( &mut self, taffy: &mut TaffyTree, theme: &Theme, node_map: &mut HashMap<NodeId, *mut dyn Widget>, ) -> NodeId
§fn apply_layout(&mut self, taffy: &TaffyTree, node: NodeId, origin: Point)
fn apply_layout(&mut self, taffy: &TaffyTree, node: NodeId, origin: Point)
§fn set_full_bleed(&mut self, full_bleed: bool)
fn set_full_bleed(&mut self, full_bleed: bool)
§fn draw(
&mut self,
scene: &mut Scene,
transform: Affine,
tr: &mut TextRenderer,
theme: &Theme,
presence: &PresenceCtx,
)
fn draw( &mut self, scene: &mut Scene, transform: Affine, tr: &mut TextRenderer, theme: &Theme, presence: &PresenceCtx, )
scene. The default paints nothing.§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 handle_event(&mut self, event: &WindowEvent, ctx: &mut EventCtx<'_>)
fn handle_event(&mut self, event: &WindowEvent, ctx: &mut EventCtx<'_>)
fn name(&self) -> &'static str
§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 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 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 next_wake_deadline(&self) -> Option<Instant>
fn next_wake_deadline(&self) -> Option<Instant>
§fn get_rect(&self) -> Rect
fn get_rect(&self) -> Rect
fn wants_pointer_capture(&self) -> bool
§fn take_structure_dirty(&mut self) -> bool
fn take_structure_dirty(&mut self) -> bool
§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 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 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 set_platform_conventions(&mut self, conventions: PlatformConventions)
fn set_platform_conventions(&mut self, conventions: PlatformConventions)
§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 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 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 test_id(&self) -> Option<&str>
fn test_id(&self) -> Option<&str>
None falls back to a path-based
key. Must be unique across the live tree — the registry resolves on
first match, so a duplicate shadows the second occurrence.§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_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 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 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_focusable(&self) -> bool
§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_focus(&mut self, _focused: 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)
fn is_focused(&self) -> bool
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 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 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 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 moreSelf::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 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 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_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 perform_semantic_action(
&mut self,
target: &str,
action: &Action,
state: &mut Edits<'_>,
path: &(dyn Any + 'static),
) -> bool
fn perform_semantic_action( &mut self, target: &str, action: &Action, state: &mut Edits<'_>, path: &(dyn Any + 'static), ) -> bool
target is the opaque stable value supplied through
AccessNode::with_action_target. 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_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_multiline(&self) -> bool
fn ime_multiline(&self) -> bool
§fn ime_edit_fingerprint(&self, key: &[u8; 32]) -> Option<[u8; 32]>
fn ime_edit_fingerprint(&self, key: &[u8; 32]) -> Option<[u8; 32]>
§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.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_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 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 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 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 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 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.Auto Trait Implementations§
impl !Freeze for TileHost
impl !RefUnwindSafe for TileHost
impl !Send for TileHost
impl !Sync for TileHost
impl Unpin for TileHost
impl UnsafeUnpin for TileHost
impl !UnwindSafe for TileHost
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