Struct nannou::ui::prelude::widget::Polygon [−][src]
pub struct Polygon<I> { pub common: CommonBuilder, pub points: I, pub style: Style, pub maybe_shift_to_centre_from: Option<[f64; 2]>, }
A basic, non-interactive, arbitrary Polygon widget.
The Polygon is described by specifying its corners in order.
Polygon will automatically close all shapes, so the given list of points does not need to start and end with the same position.
Fields
common: CommonBuilder
Data necessary and common for all widget builder types.
points: I
The points describing the corners of the Polygon.
style: Style
Unique styling for the Polygon.
maybe_shift_to_centre_from: Option<[f64; 2]>
Whether or not the points should be automatically centred to the widget position.
Implementations
impl<I> Polygon<I>
[src]
pub fn styled(points: I, style: Style) -> Polygon<I>
[src]
Build a polygon with the given points and style.
pub fn fill(points: I) -> Polygon<I>
[src]
Build a Polygon with the default Fill style.
pub fn fill_with(points: I, color: Color) -> Polygon<I>
[src]
Build a Polygon Filled with the given Color.
pub fn outline(points: I) -> Polygon<I>
[src]
Build a Polygon with the default Outline style.
pub fn outline_styled(points: I, style: Style) -> Polygon<I>
[src]
Build a Polygon Outlineed with the given line style.
pub fn abs_styled(points: I, style: Style) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
Build a new filled Polygon whose bounding box is fit to the absolute co-ordinates of the points.
This requires that the points
iterator is Clone
so that we may iterate through and
determine the bounding box of the points
.
If you would rather centre the points to the middle of the bounding box, use the Polygon::centred methods instead.
pub fn abs_fill(points: I) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
The same as Polygon::abs_styled but builds the Polygon with the default Fill style.
pub fn abs_fill_with(points: I, color: Color) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
The same as Polygon::abs_styled but builds the Polygon Filled with the given Color.
pub fn abs_outline(points: I) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
The same as Polygon::abs_styled but builds the Polygon with the default Outline style.
pub fn abs_outline_styled(points: I, style: Style) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
The same as Polygon::abs_styled but builds the Polygon with the given Outline styling.
pub fn centred_styled(points: I, style: Style) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
Build a new Polygon and shift the location of the points so that the centre of their bounding rectangle lies at the position determined for the Polygon widget.
This is useful if your points simply describe a shape and you want to position them using conrod’s auto-layout and/or Positionable methods.
If you would rather centre the bounding box to the points, use the Polygon::abs constructor method instead.
pub fn centred_fill(points: I) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
The same as Polygon::centred_styled but constructs the Polygon with the default Fill style.
pub fn centred_fill_with(points: I, color: Color) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
The same as Polygon::centred_styled but constructs the Polygon Filled with the given color.
pub fn centred_outline(points: I) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
The same as Polygon::centred_styled but constructs the Polygon with the default Outline style.
pub fn centred_outline_styled(points: I, style: Style) -> Polygon<I> where
I: IntoIterator<Item = [f64; 2]> + Clone,
[src]
I: IntoIterator<Item = [f64; 2]> + Clone,
The same as Polygon::centred_styled but constructs the Polygon Outlined with the given styling.
Trait Implementations
impl<I> Clone for Polygon<I> where
I: Clone,
[src]
I: Clone,
impl<I> Colorable for Polygon<I>
[src]
pub fn color(self, color: Color) -> Polygon<I>
[src]
pub fn rgba(self, r: f32, g: f32, b: f32, a: f32) -> Self
[src]
pub fn rgb(self, r: f32, g: f32, b: f32) -> Self
[src]
pub fn hsla(self, h: f32, s: f32, l: f32, a: f32) -> Self
[src]
pub fn hsl(self, h: f32, s: f32, l: f32) -> Self
[src]
impl<I> Common for Polygon<I>
[src]
pub fn common(&self) -> &CommonBuilder
[src]
pub fn common_mut(&mut self) -> &mut CommonBuilder
[src]
impl<I> Copy for Polygon<I> where
I: Copy,
[src]
I: Copy,
impl<I> Debug for Polygon<I> where
I: Debug,
[src]
I: Debug,
impl<I> Widget for Polygon<I> where
I: IntoIterator<Item = [f64; 2]>,
[src]
I: IntoIterator<Item = [f64; 2]>,
type State = State
State to be stored within the Ui
s widget cache. Read more
type Style = Style
Every widget is required to have its own associated Style
type. This type is intended to
contain high-level styling information for the widget that can be optionally specified by
a user of the widget. Read more
type Event = ()
The type of event yielded by the widget, returned via the Widget::set
function. Read more
pub fn init_state(&self, Generator<'_>) -> <Polygon<I> as Widget>::State
[src]
pub fn style(&self) -> <Polygon<I> as Widget>::Style
[src]
pub fn is_over(&self) -> fn(&Container, [f64; 2], &Theme) -> IsOver
[src]
pub fn update(
self,
args: UpdateArgs<'_, '_, '_, '_, Polygon<I>>
) -> <Polygon<I> as Widget>::Event
[src]
self,
args: UpdateArgs<'_, '_, '_, '_, Polygon<I>>
) -> <Polygon<I> as Widget>::Event
Update the state of the Polygon.
pub fn default_x_position(&self, ui: &Ui) -> Position
[src]
pub fn default_y_position(&self, ui: &Ui) -> Position
[src]
pub fn default_x_dimension(&self, ui: &Ui) -> Dimension
[src]
pub fn default_y_dimension(&self, ui: &Ui) -> Dimension
[src]
pub fn drag_area(
&self,
_dim: [f64; 2],
_style: &Self::Style,
_theme: &Theme
) -> Option<Rect>
[src]
&self,
_dim: [f64; 2],
_style: &Self::Style,
_theme: &Theme
) -> Option<Rect>
pub fn kid_area(&self, args: KidAreaArgs<'_, Self>) -> KidArea
[src]
pub fn parent(self, parent_id: NodeIndex<u32>) -> Self
[src]
pub fn no_parent(self) -> Self
[src]
pub fn place_on_kid_area(self, b: bool) -> Self
[src]
pub fn graphics_for(self, id: NodeIndex<u32>) -> Self
[src]
pub fn floating(self, is_floating: bool) -> Self
[src]
pub fn crop_kids(self) -> Self
[src]
pub fn scroll_kids(self) -> Self
[src]
pub fn scroll_kids_vertically(self) -> Self
[src]
pub fn scroll_kids_horizontally(self) -> Self
[src]
pub fn and<F>(self, build: F) -> Self where
F: FnOnce(Self) -> Self,
[src]
F: FnOnce(Self) -> Self,
pub fn and_mut<F>(self, mutate: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
pub fn and_if<F>(self, cond: bool, build: F) -> Self where
F: FnOnce(Self) -> Self,
[src]
F: FnOnce(Self) -> Self,
pub fn and_then<T, F>(self, maybe: Option<T>, build: F) -> Self where
F: FnOnce(Self, T) -> Self,
[src]
F: FnOnce(Self, T) -> Self,
pub fn set(self, id: NodeIndex<u32>, ui_cell: &'a mut UiCell<'b>) -> Self::Event
[src]
Auto Trait Implementations
impl<I> RefUnwindSafe for Polygon<I> where
I: RefUnwindSafe,
I: RefUnwindSafe,
impl<I> Send for Polygon<I> where
I: Send,
I: Send,
impl<I> Sync for Polygon<I> where
I: Sync,
I: Sync,
impl<I> Unpin for Polygon<I> where
I: Unpin,
I: Unpin,
impl<I> UnwindSafe for Polygon<I> where
I: UnwindSafe,
I: UnwindSafe,
Blanket Implementations
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
T: Component + Float,
D: AdaptFrom<S, Swp, Dwp, T>,
Swp: WhitePoint,
Dwp: WhitePoint,
[src]
T: Component + Float,
D: AdaptFrom<S, Swp, Dwp, T>,
Swp: WhitePoint,
Dwp: WhitePoint,
pub fn adapt_into_using<M>(self, method: M) -> D where
M: TransformMatrix<Swp, Dwp, T>,
[src]
M: TransformMatrix<Swp, Dwp, T>,
pub fn adapt_into(self) -> D
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> ConvertInto<U> for T where
U: ConvertFrom<T>,
[src]
U: ConvertFrom<T>,
pub fn convert_into(self) -> U
[src]
pub fn convert_unclamped_into(self) -> U
[src]
pub fn try_convert_into(self) -> Result<U, OutOfBounds<U>>
[src]
impl<T> Downcast<T> for T
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<W> Positionable for W where
W: Widget,
[src]
W: Widget,
pub fn x_position(self, x: Position) -> W
[src]
pub fn y_position(self, y: Position) -> W
[src]
pub fn get_x_position(&self, ui: &Ui) -> Position
[src]
pub fn get_y_position(&self, ui: &Ui) -> Position
[src]
pub fn depth(self, depth: f32) -> W
[src]
pub fn get_depth(&self) -> f32
[src]
pub fn x(self, x: f64) -> Self
[src]
pub fn y(self, y: f64) -> Self
[src]
pub fn xy(self, point: [f64; 2]) -> Self
[src]
pub fn x_y(self, x: f64, y: f64) -> Self
[src]
pub fn x_position_relative(self, x: Relative) -> Self
[src]
pub fn y_position_relative(self, y: Relative) -> Self
[src]
pub fn x_y_position_relative(self, x: Relative, y: Relative) -> Self
[src]
pub fn x_position_relative_to(self, other: NodeIndex<u32>, x: Relative) -> Self
[src]
pub fn y_position_relative_to(self, other: NodeIndex<u32>, y: Relative) -> Self
[src]
pub fn x_y_position_relative_to(
self,
other: NodeIndex<u32>,
x: Relative,
y: Relative
) -> Self
[src]
self,
other: NodeIndex<u32>,
x: Relative,
y: Relative
) -> Self
pub fn x_relative(self, x: f64) -> Self
[src]
pub fn y_relative(self, y: f64) -> Self
[src]
pub fn xy_relative(self, point: [f64; 2]) -> Self
[src]
pub fn x_y_relative(self, x: f64, y: f64) -> Self
[src]
pub fn x_relative_to(self, other: NodeIndex<u32>, x: f64) -> Self
[src]
pub fn y_relative_to(self, other: NodeIndex<u32>, y: f64) -> Self
[src]
pub fn xy_relative_to(self, other: NodeIndex<u32>, xy: [f64; 2]) -> Self
[src]
pub fn x_y_relative_to(self, other: NodeIndex<u32>, x: f64, y: f64) -> Self
[src]
pub fn x_direction(self, direction: Direction, x: f64) -> Self
[src]
pub fn y_direction(self, direction: Direction, y: f64) -> Self
[src]
pub fn down(self, y: f64) -> Self
[src]
pub fn up(self, y: f64) -> Self
[src]
pub fn left(self, x: f64) -> Self
[src]
pub fn right(self, x: f64) -> Self
[src]
pub fn x_direction_from(
self,
other: NodeIndex<u32>,
direction: Direction,
x: f64
) -> Self
[src]
self,
other: NodeIndex<u32>,
direction: Direction,
x: f64
) -> Self
pub fn y_direction_from(
self,
other: NodeIndex<u32>,
direction: Direction,
y: f64
) -> Self
[src]
self,
other: NodeIndex<u32>,
direction: Direction,
y: f64
) -> Self
pub fn down_from(self, other: NodeIndex<u32>, y: f64) -> Self
[src]
pub fn up_from(self, other: NodeIndex<u32>, y: f64) -> Self
[src]
pub fn left_from(self, other: NodeIndex<u32>, x: f64) -> Self
[src]
pub fn right_from(self, other: NodeIndex<u32>, x: f64) -> Self
[src]
pub fn x_align(self, align: Align) -> Self
[src]
pub fn y_align(self, align: Align) -> Self
[src]
pub fn align_left(self) -> Self
[src]
pub fn align_middle_x(self) -> Self
[src]
pub fn align_right(self) -> Self
[src]
pub fn align_top(self) -> Self
[src]
pub fn align_middle_y(self) -> Self
[src]
pub fn align_bottom(self) -> Self
[src]
pub fn x_align_to(self, other: NodeIndex<u32>, align: Align) -> Self
[src]
pub fn y_align_to(self, other: NodeIndex<u32>, align: Align) -> Self
[src]
pub fn align_left_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn align_middle_x_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn align_right_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn align_top_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn align_middle_y_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn align_bottom_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn x_place_on(self, other: NodeIndex<u32>, place: Place) -> Self
[src]
pub fn y_place_on(self, other: NodeIndex<u32>, place: Place) -> Self
[src]
pub fn middle_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn top_left_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn top_left_with_margin_on(self, other: NodeIndex<u32>, mgn: f64) -> Self
[src]
pub fn top_left_with_margins_on(
self,
other: NodeIndex<u32>,
top: f64,
left: f64
) -> Self
[src]
self,
other: NodeIndex<u32>,
top: f64,
left: f64
) -> Self
pub fn top_right_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn top_right_with_margin_on(self, other: NodeIndex<u32>, mgn: f64) -> Self
[src]
pub fn top_right_with_margins_on(
self,
other: NodeIndex<u32>,
top: f64,
right: f64
) -> Self
[src]
self,
other: NodeIndex<u32>,
top: f64,
right: f64
) -> Self
pub fn bottom_left_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn bottom_left_with_margin_on(self, other: NodeIndex<u32>, mgn: f64) -> Self
[src]
pub fn bottom_left_with_margins_on(
self,
other: NodeIndex<u32>,
bottom: f64,
left: f64
) -> Self
[src]
self,
other: NodeIndex<u32>,
bottom: f64,
left: f64
) -> Self
pub fn bottom_right_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn bottom_right_with_margin_on(
self,
other: NodeIndex<u32>,
mgn: f64
) -> Self
[src]
self,
other: NodeIndex<u32>,
mgn: f64
) -> Self
pub fn bottom_right_with_margins_on(
self,
other: NodeIndex<u32>,
bottom: f64,
right: f64
) -> Self
[src]
self,
other: NodeIndex<u32>,
bottom: f64,
right: f64
) -> Self
pub fn mid_top_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn mid_top_with_margin_on(self, other: NodeIndex<u32>, mgn: f64) -> Self
[src]
pub fn mid_bottom_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn mid_bottom_with_margin_on(self, other: NodeIndex<u32>, mgn: f64) -> Self
[src]
pub fn mid_left_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn mid_left_with_margin_on(self, other: NodeIndex<u32>, mgn: f64) -> Self
[src]
pub fn mid_right_of(self, other: NodeIndex<u32>) -> Self
[src]
pub fn mid_right_with_margin_on(self, other: NodeIndex<u32>, mgn: f64) -> Self
[src]
pub fn x_place(self, place: Place) -> Self
[src]
pub fn y_place(self, place: Place) -> Self
[src]
pub fn middle(self) -> Self
[src]
pub fn top_left(self) -> Self
[src]
pub fn top_left_with_margin(self, mgn: f64) -> Self
[src]
pub fn top_left_with_margins(self, top: f64, left: f64) -> Self
[src]
pub fn top_right(self) -> Self
[src]
pub fn top_right_with_margin(self, mgn: f64) -> Self
[src]
pub fn top_right_with_margins(self, top: f64, right: f64) -> Self
[src]
pub fn bottom_left(self) -> Self
[src]
pub fn bottom_left_with_margin(self, mgn: f64) -> Self
[src]
pub fn bottom_left_with_margins(self, bottom: f64, left: f64) -> Self
[src]
pub fn bottom_right(self) -> Self
[src]
pub fn bottom_right_with_margin(self, mgn: f64) -> Self
[src]
pub fn bottom_right_with_margins(self, bottom: f64, right: f64) -> Self
[src]
pub fn mid_top(self) -> Self
[src]
pub fn mid_top_with_margin(self, mgn: f64) -> Self
[src]
pub fn mid_bottom(self) -> Self
[src]
pub fn mid_bottom_with_margin(self, mgn: f64) -> Self
[src]
pub fn mid_left(self) -> Self
[src]
pub fn mid_left_with_margin(self, mgn: f64) -> Self
[src]
pub fn mid_right(self) -> Self
[src]
pub fn mid_right_with_margin(self, mgn: f64) -> Self
[src]
impl<T> SetParameter for T
pub fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
T: Parameter<Self>,
T: Parameter<Self>,
impl<W> Sizeable for W where
W: Widget,
[src]
W: Widget,
pub fn x_dimension(self, w: Dimension) -> W
[src]
pub fn y_dimension(self, h: Dimension) -> W
[src]
pub fn get_x_dimension(&self, ui: &Ui) -> Dimension
[src]
We attempt to retrieve the x
Dimension for the widget via the following:
- Check for specified value at
maybe_x_dimension
- Otherwise, use the default returned by Widget::default_x_dimension.
pub fn get_y_dimension(&self, ui: &Ui) -> Dimension
[src]
We attempt to retrieve the y
Dimension for the widget via the following:
- Check for specified value at
maybe_y_dimension
- Otherwise, use the default returned by Widget::default_y_dimension.
pub fn w(self, w: f64) -> Self
[src]
pub fn h(self, h: f64) -> Self
[src]
pub fn wh(self, wh: [f64; 2]) -> Self
[src]
pub fn w_h(self, width: f64, height: f64) -> Self
[src]
pub fn w_of(self, idx: NodeIndex<u32>) -> Self
[src]
pub fn padded_w_of(self, idx: NodeIndex<u32>, pad: f64) -> Self
[src]
pub fn h_of(self, idx: NodeIndex<u32>) -> Self
[src]
pub fn padded_h_of(self, idx: NodeIndex<u32>, pad: f64) -> Self
[src]
pub fn wh_of(self, idx: NodeIndex<u32>) -> Self
[src]
pub fn padded_wh_of(self, idx: NodeIndex<u32>, pad: f64) -> Self
[src]
pub fn kid_area_w_of(self, idx: NodeIndex<u32>) -> Self
[src]
pub fn padded_kid_area_w_of(self, idx: NodeIndex<u32>, pad: f64) -> Self
[src]
pub fn kid_area_h_of(self, idx: NodeIndex<u32>) -> Self
[src]
pub fn padded_kid_area_h_of(self, idx: NodeIndex<u32>, pad: f64) -> Self
[src]
pub fn kid_area_wh_of(self, idx: NodeIndex<u32>) -> Self
[src]
pub fn padded_kid_area_wh_of(self, idx: NodeIndex<u32>, pad: f64) -> Self
[src]
pub fn get_w(&self, ui: &Ui) -> Option<f64>
[src]
pub fn get_h(&self, ui: &Ui) -> Option<f64>
[src]
pub fn get_wh(&self, ui: &Ui) -> Option<[f64; 2]>
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Upcast<T> for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,