pub struct CustomDrawable { /* private fields */ }Expand description
A retained visual surface whose callback records immediate drawing commands.
The same callback API is supported by browser/WebAssembly and native desktop hosts. Keep expensive drawing resources outside the callback and invalidate the drawable after retained state changes.
use fui::prelude::*;
let preview = custom_drawable(|context| {
context.draw_circle(32.0, 32.0, 20.0, Paint::fill(rgb(0x38, 0xbd, 0xf8)));
});
preview
.width(64.0, Unit::Pixel)
.height(64.0, Unit::Pixel)
.semantic_label("Drawing preview");
preview.mark_dirty();Implementations§
Source§impl CustomDrawable
impl CustomDrawable
Sourcepub fn new(handler: impl Fn(&mut DrawContext) + 'static) -> Self
pub fn new(handler: impl Fn(&mut DrawContext) + 'static) -> Self
Creates a retained custom-drawing surface.
The runtime saves canvas state, clips to the drawable bounds, invokes
handler, restores state, and flushes the command batch.
Sourcepub fn mark_dirty(&self)
pub fn mark_dirty(&self)
Schedules a commit when visible drawing state has changed.
Sourcepub fn invalidator(&self) -> DrawableInvalidator
pub fn invalidator(&self) -> DrawableInvalidator
Returns a weak invalidator suitable for timers and readiness callbacks.
Trait Implementations§
Source§impl Clone for CustomDrawable
impl Clone for CustomDrawable
Source§fn clone(&self) -> CustomDrawable
fn clone(&self) -> CustomDrawable
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl HasFlexBoxRoot for CustomDrawable
impl HasFlexBoxRoot for CustomDrawable
fn flex_box_root(&self) -> &FlexBox
Source§impl Node for CustomDrawable
impl Node for CustomDrawable
fn node_id(&self, node_id: impl Into<String>) -> &Selfwhere
Self: Sized,
fn semantic_role(&self, role: SemanticRole) -> &Selfwhere
Self: Sized,
fn semantic_label(&self, label: impl Into<String>) -> &Selfwhere
Self: Sized,
fn semantic_checked(&self, state: SemanticCheckedState) -> &Selfwhere
Self: Sized,
fn semantic_disabled(&self, disabled: bool) -> &Selfwhere
Self: Sized,
fn clear_semantic_disabled(&self) -> &Selfwhere
Self: Sized,
fn semantic_selected(&self, selected: bool) -> &Selfwhere
Self: Sized,
fn clear_semantic_selected(&self) -> &Selfwhere
Self: Sized,
fn semantic_expanded(&self, expanded: bool) -> &Selfwhere
Self: Sized,
fn clear_semantic_expanded(&self) -> &Selfwhere
Self: Sized,
fn semantic_value_range(
&self,
value_now: f32,
value_min: f32,
value_max: f32,
) -> &Selfwhere
Self: Sized,
fn clear_semantic_value_range(&self) -> &Selfwhere
Self: Sized,
fn semantic_orientation(&self, orientation: Orientation) -> &Selfwhere
Self: Sized,
fn request_semantic_announcement(&self) -> &Selfwhere
Self: Sized,
fn child_count(&self) -> usize
fn is_enabled(&self) -> bool
fn is_visible(&self) -> bool
fn cursor_style(&self) -> CursorStyle
fn persist_state(&self, adapter: Rc<dyn PersistedStateAdapter>) -> &Selfwhere
Self: Sized,
fn handle(&self) -> NodeHandle
fn has_built_handle(&self) -> bool
Source§fn on_pointer_click(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pointer_click(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
Handles the low-level routed pointer-click event. Read more
Source§fn on_pointer_double_click(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pointer_double_click(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
Handles a low-level routed pointer double-click after the ordinary pointer-click callback.
Source§fn on_pointer_triple_click(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pointer_triple_click(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
Handles a low-level routed pointer triple-click after the ordinary pointer-click callback.
fn on_pointer_down(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pointer_move(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pointer_up(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pointer_enter(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pointer_leave(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pointer_cancel(
&self,
handler: impl Fn(&mut PointerEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_wheel(&self, handler: impl Fn(&mut WheelEventArgs) + 'static) -> &Selfwhere
Self: Sized,
fn on_pan_gesture(
&self,
handler: impl Fn(&mut GestureEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_pinch_gesture(
&self,
handler: impl Fn(&mut GestureEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn long_press_options(
&self,
minimum_duration_ms: i32,
movement_tolerance: f32,
) -> &Selfwhere
Self: Sized,
fn on_long_press(
&self,
handler: impl Fn(&mut LongPressEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn focusable(&self, enabled: bool, tab_index: i32) -> &Selfwhere
Self: Sized,
fn focus_now(&self) -> &Selfwhere
Self: Sized,
fn enabled(&self, enabled: bool) -> &Selfwhere
Self: Sized,
fn visibility(&self, visibility: Visibility) -> &Selfwhere
Self: Sized,
fn cursor(&self, style: CursorStyle) -> &Selfwhere
Self: Sized,
fn clear_cursor(&self) -> &Selfwhere
Self: Sized,
fn on_key_down(&self, handler: impl Fn(&mut KeyEventArgs) + 'static) -> &Selfwhere
Self: Sized,
fn on_key_up(&self, handler: impl Fn(&mut KeyEventArgs) + 'static) -> &Selfwhere
Self: Sized,
fn on_focus_changed(
&self,
handler: impl Fn(FocusChangedEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn drag_allowed_effects(&self, effects: DragDropEffects) -> &Selfwhere
Self: Sized,
fn drag_data(
&self,
handler: impl Fn() -> Option<DragDataObject> + 'static,
) -> &Selfwhere
Self: Sized,
fn clear_drag_data(&self) -> &Selfwhere
Self: Sized,
fn allow_drop(&self, flag: bool) -> &Selfwhere
Self: Sized,
fn on_drag_completed(
&self,
handler: impl Fn(DragCompletedEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_drag_enter(
&self,
handler: impl Fn(DragEventArgs) -> DropProposal + 'static,
) -> &Selfwhere
Self: Sized,
fn on_drag_over(
&self,
handler: impl Fn(DragEventArgs) -> DropProposal + 'static,
) -> &Selfwhere
Self: Sized,
fn on_drag_leave(&self, handler: impl Fn(DragEventArgs) + 'static) -> &Selfwhere
Self: Sized,
fn on_drop(&self, handler: impl Fn(DragEventArgs) + 'static) -> &Selfwhere
Self: Sized,
fn allow_external_drop(&self, flag: bool) -> &Selfwhere
Self: Sized,
fn on_external_drag_enter(
&self,
handler: impl Fn(ExternalDropEventArgs) -> DropProposal + 'static,
) -> &Selfwhere
Self: Sized,
fn on_external_drag_over(
&self,
handler: impl Fn(ExternalDropEventArgs) -> DropProposal + 'static,
) -> &Selfwhere
Self: Sized,
fn on_external_drag_leave(
&self,
handler: impl Fn(ExternalDropEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn on_external_drop(
&self,
handler: impl Fn(ExternalDropEventArgs) + 'static,
) -> &Selfwhere
Self: Sized,
fn get_bounds(&self) -> [f32; 4]
fn absolute_to_local_position( &self, absolute_x: f32, absolute_y: f32, ) -> [f32; 2]
fn local_to_absolute_position(&self, local_x: f32, local_y: f32) -> [f32; 2]
fn ensure_handle(&self)
fn build(&self)
fn dispose(&self)
fn build_children(&self)
fn append_child<T: Node>(&self, child: &T)
fn remove_child<T: Node>(&self, child: &T) -> bool
fn parent_handle(&self) -> Option<NodeHandle>
fn notify_retained_layout_mutation(&self)
fn notify_retained_mutation(&self)
fn notify_retained_child_layout_changed(&self)
fn preserve_selection_on_pointer_down(&self, preserve: bool) -> &Selfwhere
Self: Sized,
fn tool_tip(&self, tool_tip: ToolTip) -> &Selfwhere
Self: Sized,
fn tool_tip_text(&self, text: impl Into<String>) -> &Selfwhere
Self: Sized,
fn clear_tool_tip(&self) -> &Selfwhere
Self: Sized,
Source§impl ThemeBindable for CustomDrawable
impl ThemeBindable for CustomDrawable
fn bind_theme(&self, handler: impl Fn(&Self, Theme) + 'static) -> &Self
Auto Trait Implementations§
impl !RefUnwindSafe for CustomDrawable
impl !Send for CustomDrawable
impl !Sync for CustomDrawable
impl !UnwindSafe for CustomDrawable
impl Freeze for CustomDrawable
impl Unpin for CustomDrawable
impl UnsafeUnpin for CustomDrawable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more