Struct PortalListRef

Source
pub struct PortalListRef(/* private fields */);

Implementations§

Source§

impl PortalListRef

Source

pub fn has_widget(&self, widget: &WidgetRef) -> PortalListRef

Source

pub fn borrow(&self) -> Option<Ref<'_, PortalList>>

Source

pub fn borrow_mut(&self) -> Option<RefMut<'_, PortalList>>

Source

pub fn borrow_if_eq(&self, widget: &WidgetRef) -> Option<Ref<'_, PortalList>>

Source

pub fn borrow_mut_if_eq( &self, widget: &WidgetRef, ) -> Option<RefMut<'_, PortalList>>

Source§

impl PortalListRef

Source

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.

Source

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.

Source

pub fn first_id(&self) -> usize

Returns the ID of the item currently shown as the first item in this PortalList.

Source

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.

Source

pub fn is_at_end(&self) -> bool

Source

pub fn visible_items(&self) -> usize

Source

pub fn was_scrolling(&self) -> bool

Returns whether this PortalList was scrolling when the most recent finger hit occurred.

Source

pub fn scrolled(&self, actions: &Actions) -> bool

Returns whether the given actions contain an action indicating that this PortalList was scrolled.

Source

pub fn scroll_position(&self) -> f64

Returns the current scroll offset of this PortalList.

See PortalListRef::set_first_id_and_scroll() for more information.

Source

pub fn item(&self, cx: &mut Cx, entry_id: usize, template: LiveId) -> WidgetRef

Source

pub fn item_with_existed( &self, cx: &mut Cx, entry_id: usize, template: LiveId, ) -> (WidgetRef, bool)

Source

pub fn get_item(&self, entry_id: usize) -> Option<(LiveId, WidgetRef)>

Source

pub fn position_of_item(&self, cx: &Cx, entry_id: usize) -> Option<f64>

Source

pub fn items_with_actions(&self, actions: &Actions) -> Vec<(usize, WidgetRef)>

Source

pub fn any_items_with_actions(&self, actions: &Actions) -> bool

Source

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. The speed will always be treated as an absolute value, with the direction of the scroll (up or down) determined by whether target_id is above or below the current item.
  • max_items_to_show: The maximum number of items to show during the scrolling animation. If None, 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));
Source

pub fn is_smooth_scrolling(&self) -> Option<usize>

Returns the ID of the item that is currently being smoothly scrolled to, if any.

Source

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.

Source

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. If None, the default value of 20 is used.
Source

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>§

Source

pub fn is_empty(&self) -> bool

Source

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

Source

pub fn handle_event( &self, cx: &mut Cx, event: &Event, scope: &mut Scope<'_, '_>, )

Source

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.

Source

pub fn area(&self) -> Area

Source

pub fn widget_to_data( &self, cx: &mut Cx, actions: &Actions, nodes: &mut LiveNodeVec, path: &[LiveId], ) -> bool

Source

pub fn set_action_data<T: ActionTrait + PartialEq>(&self, data: T)

Source

pub fn set_action_data_always<T: ActionTrait>(&self, data: T)

Source

pub fn data_to_widget(&self, cx: &mut Cx, nodes: &[LiveNode], path: &[LiveId])

Source

pub fn uid_to_widget(&self, uid: WidgetUid) -> WidgetRef

Source

pub fn clear_query_cache(&self)

Source

pub fn find_widgets( &self, path: &[LiveId], cached: WidgetCache, results: &mut WidgetSet, )

Source

pub fn widget(&self, path: &[LiveId]) -> WidgetRef

Source

pub fn widgets(&self, paths: &[&[LiveId]]) -> WidgetSet

Source

pub fn widget_set(&self, paths: &[&[LiveId]]) -> WidgetSet

Source

pub fn draw_walk( &self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>, walk: Walk, ) -> DrawStep

Source

pub fn draw_walk_all( &self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>, walk: Walk, )

Source

pub fn draw_3d_all(&self, cx: &mut Cx3d<'_, '_>, scope: &mut Scope<'_, '_>)

Source

pub fn draw_3d( &mut self, cx: &mut Cx3d<'_, '_>, scope: &mut Scope<'_, '_>, ) -> DrawStep

Source

pub fn draw( &mut self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>, ) -> DrawStep

Source

pub fn draw_unscoped(&mut self, cx: &mut Cx2d<'_, '_>) -> DrawStep

Source

pub fn walk(&self, cx: &mut Cx) -> Walk

Source

pub fn redraw(&self, cx: &mut Cx)

Source

pub fn set_visible(&self, cx: &mut Cx, visible: bool)

Source

pub fn visible(&self) -> bool

Source

pub fn text(&self) -> String

Source

pub fn set_text(&self, cx: &mut Cx, v: &str)

Source

pub fn key_focus(&self, cx: &Cx) -> bool

Source

pub fn set_key_focus(&self, cx: &mut Cx)

Source

pub fn set_disabled(&self, cx: &mut Cx, disabled: bool)

Source

pub fn disabled(&self, cx: &Cx) -> bool

Source

pub fn draw_all(&self, cx: &mut Cx2d<'_, '_>, scope: &mut Scope<'_, '_>)

Source

pub fn action_data(&self) -> Option<Arc<dyn ActionTrait>>

Source

pub fn filter_actions<'a>( &'a self, actions: &'a Actions, ) -> impl Iterator<Item = &'a WidgetAction>

Source

pub fn draw_all_unscoped(&self, cx: &mut Cx2d<'_, '_>)

Source

pub fn borrow_mut<T: 'static + Widget>(&self) -> Option<RefMut<'_, T>>

Source

pub fn borrow<T: 'static + Widget>(&self) -> Option<Ref<'_, T>>

Source

pub fn apply_over(&self, cx: &mut Cx, nodes: &[LiveNode])

Trait Implementations§

Source§

impl Clone for PortalListRef

Source§

fn clone(&self) -> PortalListRef

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PortalListRef

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PortalListRef

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Deref for PortalListRef

Source§

type Target = WidgetRef

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for PortalListRef

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> ActionTrait for T
where T: 'static + Debug + ?Sized,

Source§

fn debug_fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Source§

fn ref_cast_type_id(&self) -> TypeId
where Self: 'static,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.