pub struct PortalListRef(/* private fields */);
Implementations§
Source§impl PortalListRef
impl PortalListRef
pub fn has_widget(&self, widget: &WidgetRef) -> PortalListRef
pub fn borrow(&self) -> Option<Ref<'_, PortalList>>
pub fn borrow_mut(&self) -> Option<RefMut<'_, PortalList>>
pub fn borrow_if_eq(&self, widget: &WidgetRef) -> Option<Ref<'_, PortalList>>
pub fn borrow_mut_if_eq( &self, widget: &WidgetRef, ) -> Option<RefMut<'_, PortalList>>
Source§impl PortalListRef
impl PortalListRef
Sourcepub fn set_first_id_and_scroll(&self, id: usize, s: f64)
pub fn set_first_id_and_scroll(&self, id: usize, s: f64)
Sets the first item to be shown and its scroll offset.
On the next draw pass, this PortalList will draw the item with the given id
as the first item in the list, and will set the scroll offset
(from the top of the viewport to the beginning of the first item)
to the given value s
.
Sourcepub fn set_first_id(&self, id: usize)
pub fn set_first_id(&self, id: usize)
Sets the first item to be shown by this PortalList to the item with the given id
.
Sourcepub fn first_id(&self) -> usize
pub fn first_id(&self) -> usize
Returns the ID of the item currently shown as the first item in this PortalList.
Sourcepub fn set_tail_range(&self, tail_range: bool)
pub fn set_tail_range(&self, tail_range: bool)
Enables whether the PortalList auto-tracks the last item in the list.
If true
, the PortalList will continually scroll to the last item in the list
automatically, as new items are added.
If false
, the PortalList will not auto-scroll to the last item.
Sourcepub fn visible_items(&self) -> usize
pub fn visible_items(&self) -> usize
Sourcepub fn was_scrolling(&self) -> bool
pub fn was_scrolling(&self) -> bool
Returns whether this PortalList was scrolling when the most recent finger hit occurred.
Sourcepub fn scrolled(&self, actions: &Actions) -> bool
pub fn scrolled(&self, actions: &Actions) -> bool
Returns whether the given actions
contain an action indicating that this PortalList was scrolled.
Sourcepub fn scroll_position(&self) -> f64
pub fn scroll_position(&self) -> f64
Returns the current scroll offset of this PortalList.
See PortalListRef::set_first_id_and_scroll()
for more information.
Sourcepub fn item(&self, cx: &mut Cx, entry_id: usize, template: LiveId) -> WidgetRef
pub fn item(&self, cx: &mut Cx, entry_id: usize, template: LiveId) -> WidgetRef
See PortalList::item()
.
Sourcepub fn item_with_existed(
&self,
cx: &mut Cx,
entry_id: usize,
template: LiveId,
) -> (WidgetRef, bool)
pub fn item_with_existed( &self, cx: &mut Cx, entry_id: usize, template: LiveId, ) -> (WidgetRef, bool)
pub fn position_of_item(&self, cx: &Cx, entry_id: usize) -> Option<f64>
pub fn items_with_actions(&self, actions: &Actions) -> Vec<(usize, WidgetRef)>
pub fn any_items_with_actions(&self, actions: &Actions) -> bool
Sourcepub fn smooth_scroll_to(
&self,
cx: &mut Cx,
target_id: usize,
speed: f64,
max_items_to_show: Option<usize>,
)
pub fn smooth_scroll_to( &self, cx: &mut Cx, target_id: usize, speed: f64, max_items_to_show: Option<usize>, )
Initiates a smooth scrolling animation to the specified target item in the list.
§Arguments
target_id
: The ID (index) of the item to scroll to.speed
: A positive floating-point value that controls the speed of the animation. Thespeed
will always be treated as an absolute value, with the direction of the scroll (up or down) determined by whethertarget_id
is above or below the current item.max_items_to_show
: The maximum number of items to show during the scrolling animation. IfNone
, the default value of 20 is used.
§Example
// Scrolls to item 42 at speed 100.0, including at most 30 items in the scroll animation.
smooth_scroll_to(&mut cx, 42, 100.0, Some(30));
Sourcepub fn is_smooth_scrolling(&self) -> Option<usize>
pub fn is_smooth_scrolling(&self) -> Option<usize>
Returns the ID of the item that is currently being smoothly scrolled to, if any.
Sourcepub fn smooth_scroll_reached(&self, actions: &Actions) -> bool
pub fn smooth_scroll_reached(&self, actions: &Actions) -> bool
Returns whether the given actions
contain an action indicating that this PortalList completed
a smooth scroll, reaching the target.
Sourcepub fn smooth_scroll_to_end(
&self,
cx: &mut Cx,
speed: f64,
max_items_to_show: Option<usize>,
)
pub fn smooth_scroll_to_end( &self, cx: &mut Cx, speed: f64, max_items_to_show: Option<usize>, )
Trigger an scrolling animation to the end of the list
§Arguments
speed
: This value controls how fast the scrolling animation is. Note: This number should be large enough to reach the end, so it is important to test the passed number. TODO provide a better implementation to ensure that the end is always reached, no matter the speed value.max_items_to_show
: The maximum number of items to show during the scrolling animation. IfNone
, the default value of 20 is used.
Sourcepub fn further_items_bellow_exist(&self) -> bool
pub fn further_items_bellow_exist(&self) -> bool
It indicates if we have items not displayed towards the end of the list (below) For instance, it is useful to show or hide a “jump to the most recent” button on a chat messages list
Methods from Deref<Target = WidgetRef>§
pub fn is_empty(&self) -> bool
Sourcepub fn handle_event_with(
&self,
cx: &mut Cx,
event: &Event,
scope: &mut Scope<'_, '_>,
sweep_area: Area,
)
pub fn handle_event_with( &self, cx: &mut Cx, event: &Event, scope: &mut Scope<'_, '_>, sweep_area: Area, )
§handle event with a sweep area
this is used for the sweep event, this fn can help to pass the event into popup,
the widget should implement the handle_event_with
fn in impl Widget for $Widget
§Example
impl Widget for Button {
fn handle_event_with(&mut self, cx: &mut Cx, event: &Event, scope: &mut Scope, sweep_area: Area) {
let uid = self.widget_uid();
if self.animator_handle_event(cx, event).must_redraw() {
self.draw_button.redraw(cx);
}
match event.hits_with_options(cx, self.draw_button.area(), HitOptions::new().with_sweep_area(sweep_area) ) {
Hit::FingerDown(f_down) => {
if self.grab_key_focus {
cx.set_key_focus(self.sweep_area);
}
cx.widget_action(uid, &scope.path, GButtonEvent::Pressed(f_down.modifiers));
self.animator_play(cx, id!(hover.pressed));
}
_ =>()
}
}
§Details
See Flexible Popup
pub fn handle_event( &self, cx: &mut Cx, event: &Event, scope: &mut Scope<'_, '_>, )
Sourcepub fn widget_uid(&self) -> WidgetUid
pub fn widget_uid(&self) -> WidgetUid
Returns the unique ID (UID) of this widget.
Returns WidgetUid(0)
if the widget is currently borrowed or is empty.
pub fn area(&self) -> Area
pub fn widget_to_data( &self, cx: &mut Cx, actions: &Actions, nodes: &mut LiveNodeVec, path: &[LiveId], ) -> bool
pub fn set_action_data<T: ActionTrait + PartialEq>(&self, data: T)
pub fn set_action_data_always<T: ActionTrait>(&self, data: T)
pub fn data_to_widget(&self, cx: &mut Cx, nodes: &[LiveNode], path: &[LiveId])
pub fn uid_to_widget(&self, uid: WidgetUid) -> WidgetRef
pub fn clear_query_cache(&self)
pub fn find_widgets( &self, path: &[LiveId], cached: WidgetCache, results: &mut WidgetSet, )
pub fn widget(&self, path: &[LiveId]) -> WidgetRef
pub fn widgets(&self, paths: &[&[LiveId]]) -> WidgetSet
pub fn widget_set(&self, paths: &[&[LiveId]]) -> WidgetSet
pub fn draw_walk( &self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>, walk: Walk, ) -> DrawStep
pub fn draw_walk_all( &self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>, walk: Walk, )
pub fn draw_3d_all(&self, cx: &mut Cx3d<'_, '_>, scope: &mut Scope<'_, '_>)
pub fn draw_3d( &mut self, cx: &mut Cx3d<'_, '_>, scope: &mut Scope<'_, '_>, ) -> DrawStep
pub fn draw( &mut self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>, ) -> DrawStep
pub fn draw_unscoped(&mut self, cx: &mut Cx2d<'_, '_>) -> DrawStep
pub fn walk(&self, cx: &mut Cx) -> Walk
pub fn redraw(&self, cx: &mut Cx)
pub fn set_visible(&self, cx: &mut Cx, visible: bool)
pub fn visible(&self) -> bool
pub fn text(&self) -> String
pub fn set_text(&self, cx: &mut Cx, v: &str)
pub fn key_focus(&self, cx: &Cx) -> bool
pub fn set_key_focus(&self, cx: &mut Cx)
pub fn set_disabled(&self, cx: &mut Cx, disabled: bool)
pub fn disabled(&self, cx: &Cx) -> bool
pub fn draw_all(&self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>)
pub fn action_data(&self) -> Option<Arc<dyn ActionTrait>>
pub fn filter_actions<'a>( &'a self, actions: &'a Actions, ) -> impl Iterator<Item = &'a WidgetAction>
pub fn draw_all_unscoped(&self, cx: &mut Cx2d<'_, '_>)
pub fn borrow_mut<T: 'static + Widget>(&self) -> Option<RefMut<'_, T>>
pub fn borrow<T: 'static + Widget>(&self) -> Option<Ref<'_, T>>
pub fn apply_over(&self, cx: &mut Cx, nodes: &[LiveNode])
Trait Implementations§
Source§impl Clone for PortalListRef
impl Clone for PortalListRef
Source§fn clone(&self) -> PortalListRef
fn clone(&self) -> PortalListRef
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more