pub struct Table { /* private fields */ }Expand description
A table component
Implementations§
Source§impl Table
impl Table
Sourcepub fn disable_base_style(self) -> Self
pub fn disable_base_style(self) -> Self
Disables based styling of row cell (paddings, text ellipsis, nowrap, etc), keeping width settings
Doesn’t affect base style of header cell. Doesn’t remove overflow-hidden
Sourcepub fn uniform_list(
self,
id: impl Into<ElementId>,
row_count: usize,
render_item_fn: impl Fn(Range<usize>, &mut Window, &mut App) -> Vec<UncheckedTableRow<AnyElement>> + 'static,
) -> Self
pub fn uniform_list( self, id: impl Into<ElementId>, row_count: usize, render_item_fn: impl Fn(Range<usize>, &mut Window, &mut App) -> Vec<UncheckedTableRow<AnyElement>> + 'static, ) -> Self
Enables uniform list rendering.
The provided function will be passed directly to the uniform_list element.
Therefore, if this method is called, any calls to Table::row before or after
this method is called will be ignored.
Sourcepub fn variable_row_height_list(
self,
row_count: usize,
list_state: ListState,
render_row_fn: impl Fn(usize, &mut Window, &mut App) -> UncheckedTableRow<AnyElement> + 'static,
) -> Self
pub fn variable_row_height_list( self, row_count: usize, list_state: ListState, render_row_fn: impl Fn(usize, &mut Window, &mut App) -> UncheckedTableRow<AnyElement> + 'static, ) -> Self
Enables rendering of tables with variable row heights, allowing each row to have its own height.
This mode is useful for displaying content such as CSV data or multiline cells, where rows may not have uniform heights.
It is generally slower than Table::uniform_list due to the need to measure each row individually, but it provides correct layout for non-uniform or multiline content.
§Parameters
row_count: The total number of rows in the table.list_state: TheListStateused for managing scroll position and virtualization. This must be initialized and managed by the caller, and should be kept in sync with the number of rows.render_row_fn: A closure that renders a single row, given the row index, a mutable reference toWindow, and a mutable reference toApp. It should return an array ofAnyElements, one for each column.
Sourcepub fn hide_row_borders(self) -> Self
pub fn hide_row_borders(self) -> Self
Hides the border lines between rows
Sourcepub fn width(self, width: impl Into<DefiniteLength>) -> Self
pub fn width(self, width: impl Into<DefiniteLength>) -> Self
Sets a fixed table width with auto column widths.
This is a shorthand for .width_config(ColumnWidthConfig::auto_with_table_width(width)).
For resizable columns or explicit column widths, use Table::width_config directly.
Sourcepub fn width_config(self, config: ColumnWidthConfig) -> Self
pub fn width_config(self, config: ColumnWidthConfig) -> Self
Sets the column width configuration for the table.
Sourcepub fn interactable(
self,
interaction_state: &Entity<TableInteractionState>,
) -> Self
pub fn interactable( self, interaction_state: &Entity<TableInteractionState>, ) -> Self
Enables interaction (primarily scrolling) with the table.
Vertical scrolling will be enabled by default if the table is taller than its container.
Horizontal scrolling will only be enabled if a table width is set via ColumnWidthConfig,
otherwise the list will always shrink the table columns to fit their contents.
pub fn header(self, headers: UncheckedTableRow<impl IntoElement>) -> Self
Sourcepub fn sortable_header(
self,
headers: UncheckedTableRow<impl Into<SharedString>>,
sort_column: Option<usize>,
direction: SortDirection,
on_sort: impl Fn(usize, &mut Window, &mut App) + 'static,
) -> Self
pub fn sortable_header( self, headers: UncheckedTableRow<impl Into<SharedString>>, sort_column: Option<usize>, direction: SortDirection, on_sort: impl Fn(usize, &mut Window, &mut App) + 'static, ) -> Self
Renders a header row where every column is clickable and shows a sort
direction indicator (chevron up/down/up-down icon), calling on_sort
with the clicked column index.
sort_column (if set) marks which column currently drives the sort
and is rendered with a direction-specific chevron
(SortDirection::Ascending/SortDirection::Descending); all
other columns show a neutral up/down chevron. This is purely additive
to Table::header — existing callers that use .header(...) are
unaffected.
pub fn row(self, items: UncheckedTableRow<impl IntoElement>) -> Self
pub fn no_ui_font(self) -> Self
pub fn map_row( self, callback: impl Fn((usize, Stateful<Div>), &mut Window, &mut App) -> AnyElement + 'static, ) -> Self
Sourcepub fn hide_row_hover(self) -> Self
pub fn hide_row_hover(self) -> Self
Hides the default hover background on table rows.
Use this when you want to handle row hover styling manually via map_row.
Sourcepub fn empty_table_callback(
self,
callback: impl Fn(&mut Window, &mut App) -> AnyElement + 'static,
) -> Self
pub fn empty_table_callback( self, callback: impl Fn(&mut Window, &mut App) -> AnyElement + 'static, ) -> Self
Provide a callback that is invoked when the table is rendered without any rows
Trait Implementations§
Source§impl Component for Table
impl Component for Table
Source§fn scope() -> ComponentScope
fn scope() -> ComponentScope
Source§fn preview(_window: &mut Window, _cx: &mut App) -> Option<AnyElement>
fn preview(_window: &mut Window, _cx: &mut App) -> Option<AnyElement>
Source§fn id() -> ComponentId
fn id() -> ComponentId
Source§fn status() -> ComponentStatus
fn status() -> ComponentStatus
Source§impl IntoElement for Table
impl IntoElement for Table
Source§type Element = Component<Table>
type Element = Component<Table>
Source§fn into_element(self) -> Self::Element
fn into_element(self) -> Self::Element
Element.Source§fn into_any_element(self) -> AnyElement
fn into_any_element(self) -> AnyElement
AnyElement.Source§impl RenderOnce for Table
impl RenderOnce for Table
Source§fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement
fn render(self, window: &mut Window, cx: &mut App) -> impl IntoElement
Render::render() method
which takes a mutable reference.Auto Trait Implementations§
impl !RefUnwindSafe for Table
impl !Send for Table
impl !Sync for Table
impl !UnwindSafe for Table
impl Freeze for Table
impl Unpin for Table
impl UnsafeUnpin for Table
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<E> AnimationExt for Ewhere
E: IntoElement + 'static,
impl<E> AnimationExt for Ewhere
E: IntoElement + 'static,
Source§fn with_animation(
self,
id: impl Into<ElementId>,
animation: Animation,
animator: impl Fn(Self, f32) -> Self + 'static,
) -> AnimationElement<Self>where
Self: Sized,
fn with_animation(
self,
id: impl Into<ElementId>,
animation: Animation,
animator: impl Fn(Self, f32) -> Self + 'static,
) -> AnimationElement<Self>where
Self: Sized,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CommonAnimationExt for Twhere
T: AnimationExt,
impl<T> CommonAnimationExt for Twhere
T: AnimationExt,
Source§fn with_rotate_animation(self, duration: u64) -> AnimationElement<Self>where
Self: Transformable + Sized,
fn with_rotate_animation(self, duration: u64) -> AnimationElement<Self>where
Self: Transformable + Sized,
Source§fn with_keyed_rotate_animation(
self,
id: impl Into<ElementId>,
duration: u64,
) -> AnimationElement<Self>where
Self: Transformable + Sized,
fn with_keyed_rotate_animation(
self,
id: impl Into<ElementId>,
duration: u64,
) -> AnimationElement<Self>where
Self: Transformable + Sized,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FluentBuilder for Twhere
T: IntoElement,
impl<T> FluentBuilder for Twhere
T: IntoElement,
Source§fn map<U>(self, f: impl FnOnce(Self) -> U) -> Uwhere
Self: Sized,
fn map<U>(self, f: impl FnOnce(Self) -> U) -> Uwhere
Self: Sized,
Source§fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Selfwhere
Self: Sized,
fn when(self, condition: bool, then: impl FnOnce(Self) -> Self) -> Selfwhere
Self: Sized,
Source§fn when_else(
self,
condition: bool,
then: impl FnOnce(Self) -> Self,
else_fn: impl FnOnce(Self) -> Self,
) -> Selfwhere
Self: Sized,
fn when_else(
self,
condition: bool,
then: impl FnOnce(Self) -> Self,
else_fn: impl FnOnce(Self) -> Self,
) -> Selfwhere
Self: Sized,
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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 moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more