pub struct PieChart<T: 'static> { /* private fields */ }Implementations§
Source§impl<T> PieChart<T>
impl<T> PieChart<T>
pub fn new<I>(data: I) -> Selfwhere
I: IntoIterator<Item = T>,
Sourcepub fn id(self, id: impl Into<ElementId>) -> Self
pub fn id(self, id: impl Into<ElementId>) -> Self
Name this chart’s ElementId, replacing the default taken from the
construction site.
Pass one where a single construction site renders several of these charts as siblings: they share the default id, and with it one hover state and one path cache. The id must be unique among those siblings.
Sourcepub fn interactive(self, interactive: bool) -> Self
pub fn interactive(self, interactive: bool) -> Self
Turn this chart’s interactive layer on or off. On by default.
The layer is the hitbox under the cursor and what it drives: the hovered slice lifts out of the ring, and a tooltip shows its value and share. Turn it off for a chart that only decorates, or one an element above it wants the cursor for: without a hitbox it neither answers the mouse nor takes the hover from what sits over it. A chart that is off also drops its path cache, which is keyed on the same id.
Sourcepub fn name(self, name: impl Into<SharedString>) -> Self
pub fn name(self, name: impl Into<SharedString>) -> Self
Set the series name shown in the hover tooltip row (e.g. “Desktop”).
Sourcepub fn inner_radius(self, inner_radius: f32) -> Self
pub fn inner_radius(self, inner_radius: f32) -> Self
Set the inner radius of the pie chart.
Sourcepub fn inner_radius_fn(
self,
inner_radius_fn: impl Fn(&ArcData<'_, T>) -> f32 + 'static,
) -> Self
pub fn inner_radius_fn( self, inner_radius_fn: impl Fn(&ArcData<'_, T>) -> f32 + 'static, ) -> Self
Set the inner radius of the pie chart based on the arc data.
Sourcepub fn outer_radius(self, outer_radius: f32) -> Self
pub fn outer_radius(self, outer_radius: f32) -> Self
Set the outer radius of the pie chart.
Sourcepub fn outer_radius_fn(
self,
outer_radius_fn: impl Fn(&ArcData<'_, T>) -> f32 + 'static,
) -> Self
pub fn outer_radius_fn( self, outer_radius_fn: impl Fn(&ArcData<'_, T>) -> f32 + 'static, ) -> Self
Set the outer radius of the pie chart based on the arc data.
pub fn value(self, value: impl Fn(&T) -> f32 + 'static) -> Self
Sourcepub fn color<H>(self, color: impl Fn(&T) -> H + 'static) -> Self
pub fn color<H>(self, color: impl Fn(&T) -> H + 'static) -> Self
Set the color of the pie chart.
Sourcepub fn label(self, label: impl Fn(&T) -> SharedString + 'static) -> Self
pub fn label(self, label: impl Fn(&T) -> SharedString + 'static) -> Self
Set the label text for each slice.
Once set, a “leader line + text” is drawn outside the ring for every slice.
Sourcepub fn label_line_color(self, color: impl Fn(&T) -> Hsla + 'static) -> Self
pub fn label_line_color(self, color: impl Fn(&T) -> Hsla + 'static) -> Self
Set the leader line color per slice (defaults to cx.theme().border).
Sourcepub fn label_color(self, color: Hsla) -> Self
pub fn label_color(self, color: Hsla) -> Self
Set the label text color (defaults to cx.theme().foreground).
Sourcepub fn label_gap(self, gap: f32) -> Self
pub fn label_gap(self, gap: f32) -> Self
Set the extra gap between outer_radius and the label radius
(defaults to 15px).
Sourcepub fn tooltip_name(self, name: impl Fn(&T) -> SharedString + 'static) -> Self
pub fn tooltip_name(self, name: impl Fn(&T) -> SharedString + 'static) -> Self
Name the slice under the cursor in the hover tooltip’s row, beside its
value. Falls back to name, the one name the whole series carries.
A pie shows one number per slice, so the slice’s own name is what the
row wants; a single series name leaves the row reading as a swatch and a
number with a gap between them. The alternative was to title the tooltip
from label, but that also draws the leader lines around the ring.
Sourcepub fn tooltip_value(
self,
value: impl Fn(&T, f32, f32) -> SharedString + 'static,
) -> Self
pub fn tooltip_value( self, value: impl Fn(&T, f32, f32) -> SharedString + 'static, ) -> Self
Set the text of the hover tooltip’s row, the value the slice is worth. Defaults to the raw value followed by its share in parentheses.
The closure receives the datum, the value value returned for it, and
that value’s share of the total as a percentage. Set it wherever the raw
number is not what a reader should see: a value that is already a ratio
reads as 0.35 (35.0%) by default, and a chart drawn from adjusted
values — a floor that keeps a hairline slice visible, say — would report
the adjustment as though it were the datum.
Trait Implementations§
Source§impl<T: 'static> IntoElement for PieChart<T>
impl<T: 'static> IntoElement for PieChart<T>
Source§type Element = PlotElement<PieChart<T>>
type Element = PlotElement<PieChart<T>>
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<T> Plot for PieChart<T>
impl<T> Plot for PieChart<T>
fn paint(&mut self, bounds: Bounds<Pixels>, window: &mut Window, cx: &mut App)
Source§fn id(&self) -> Option<ElementId>
fn id(&self) -> Option<ElementId>
Source§fn tooltip_state(
&self,
position: Point<Pixels>,
bounds: Bounds<Pixels>,
_cx: &App,
) -> Option<TooltipState>
fn tooltip_state( &self, position: Point<Pixels>, bounds: Bounds<Pixels>, _cx: &App, ) -> Option<TooltipState>
Source§fn tooltip(
&self,
state: &TooltipState,
cursor: Point<Pixels>,
bounds: Bounds<Pixels>,
_window: &mut Window,
cx: &mut App,
) -> Option<AnyElement>
fn tooltip( &self, state: &TooltipState, cursor: Point<Pixels>, bounds: Bounds<Pixels>, _window: &mut Window, cx: &mut App, ) -> Option<AnyElement>
TooltipState. Read moreAuto Trait Implementations§
impl<T> !RefUnwindSafe for PieChart<T>
impl<T> !Send for PieChart<T>
impl<T> !Sync for PieChart<T>
impl<T> !UnwindSafe for PieChart<T>
impl<T> Freeze for PieChart<T>
impl<T> Unpin for PieChart<T>
impl<T> UnsafeUnpin for PieChart<T>where
Vec<T>: UnsafeUnpin,
Option<Rc<dyn Fn(&ArcData<'_, T>) -> f32>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T) -> f32>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T) -> Hsla>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T) -> SharedString>>: UnsafeUnpin,
Option<Rc<dyn Fn(&T, f32, f32) -> SharedString>>: UnsafeUnpin,
Blanket Implementations§
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§fn with_animations(
self,
id: impl Into<ElementId>,
animations: Vec<Animation>,
animator: impl Fn(Self, usize, f32) -> Self + 'static,
) -> AnimationElement<Self>where
Self: Sized,
fn with_animations(
self,
id: impl Into<ElementId>,
animations: Vec<Animation>,
animator: impl Fn(Self, usize, f32) -> Self + 'static,
) -> AnimationElement<Self>where
Self: Sized,
Source§fn with_spring<T>(
self,
id: impl Into<ElementId>,
animation: SpringAnimation<T>,
animator: impl FnOnce(Self, <T as SpringTarget>::Output) -> Self + 'static,
) -> SpringAnimationElement<Self>
fn with_spring<T>( self, id: impl Into<ElementId>, animation: SpringAnimation<T>, animator: impl FnOnce(Self, <T as SpringTarget>::Output) -> Self + 'static, ) -> SpringAnimationElement<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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> 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> 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