[][src]Struct conrod_core::widget::canvas::Canvas

pub struct Canvas<'a> {
    pub common: CommonBuilder,
    pub style: Style,
    pub maybe_title_bar_label: Option<&'a str>,
    pub maybe_splits: Option<FlowOfSplits<'a>>,
}

Canvas is designed to be a "container"-like "parent" widget that simplifies placement of "children" widgets.

Widgets can be placed on a Canvas in a variety of ways using methods from the Positionable trait.

Canvas provides methods for padding the kid widget area which can make using the Place-related Positionable methods a little easier.

A Canvas can also be divided into a sequence of smaller Canvasses using the .flow_* methods. This creates a kind of Canvas tree, where each "split" can be sized using the .length or .length_weight methods.

See the canvas.rs example for a demonstration of the Canvas type.

Fields

common: CommonBuilder

Data necessary and common for all widget builder types.

style: Style

The builder data related to the style of the Canvas.

maybe_title_bar_label: Option<&'a str>

The label for the Canvas' TitleBar if there is one.

maybe_splits: Option<FlowOfSplits<'a>>

A list of child Canvasses as splits of this Canvas flowing in the given direction.

Methods

impl<'a> Canvas<'a>[src]

pub fn new() -> Self[src]

Construct a new Canvas builder.

pub fn title_bar(self, title_bar: &'a str) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

pub fn pad_left(self, pad_left: Scalar) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

pub fn pad_right(self, pad_right: Scalar) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

pub fn pad_bottom(self, pad_bottom: Scalar) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

pub fn pad_top(self, pad_top: Scalar) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

pub fn with_style(self, with_style: Style) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

pub fn length(self, length: Scalar) -> Self[src]

Set the length of the Split as an absolute scalar.

pub fn length_weight(self, weight: Weight) -> Self[src]

Set the length of the Split as a weight.

The default length weight for each widget is 1.0.

pub fn flow_right(self, splits: ListOfSplits<'a>) -> Self[src]

Set the child Canvasses flowing to the right.

pub fn flow_left(self, splits: ListOfSplits<'a>) -> Self[src]

Set the child Canvasses flowing to the left.

pub fn flow_up(self, splits: ListOfSplits<'a>) -> Self[src]

Set the child Canvasses flowing upwards.

pub fn flow_down(self, splits: ListOfSplits<'a>) -> Self[src]

Set the child Canvasses flowing downwards.

pub fn pad(self, pad: Scalar) -> Self[src]

Set the padding for all edges of the area where child widgets will be placed.

pub fn padding(self, pad: Padding) -> Self[src]

Set the padding of the area where child widgets will be placed.

pub fn title_bar_color(self, color: Color) -> Self[src]

Set the color of the Canvas' TitleBar if it is visible.

Trait Implementations

impl<'a> Borderable for Canvas<'a>[src]

fn border(self, border: Scalar) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

fn border_color(self, border_color: Color) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

fn border_rgba(self, r: f32, g: f32, b: f32, a: f32) -> Self[src]

Set the color of the widget's border with rgba values.

fn border_rgb(self, r: f32, g: f32, b: f32) -> Self[src]

Set the color of the widget's border with rgb values.

fn border_hsla(self, h: f32, s: f32, l: f32, a: f32) -> Self[src]

Set the color of the widget's border with hsla values.

fn border_hsl(self, h: f32, s: f32, l: f32) -> Self[src]

Set the color of the widget's border with hsl values.

impl<'a> Colorable for Canvas<'a>[src]

fn color(self, color: Color) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

fn rgba(self, r: f32, g: f32, b: f32, a: f32) -> Self[src]

Set the color of the widget from rgba values.

fn rgb(self, r: f32, g: f32, b: f32) -> Self[src]

Set the color of the widget from rgb values.

fn hsla(self, h: f32, s: f32, l: f32, a: f32) -> Self[src]

Set the color of the widget from hsla values.

fn hsl(self, h: f32, s: f32, l: f32) -> Self[src]

Set the color of the widget from hsl values.

impl<'a> Labelable<'a> for Canvas<'a>[src]

fn label_color(self, label_color: Color) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

fn label_font_size(self, label_font_size: FontSize) -> Self[src]

Build the type's self.$($assignee).+ with the given $Type.

fn label_rgba(self, r: f32, g: f32, b: f32, a: f32) -> Self[src]

Set the color of the widget's label from rgba values.

fn label_rgb(self, r: f32, g: f32, b: f32) -> Self[src]

Set the color of the widget's label from rgb values.

fn label_hsla(self, h: f32, s: f32, l: f32, a: f32) -> Self[src]

Set the color of the widget's label from hsla values.

fn label_hsl(self, h: f32, s: f32, l: f32) -> Self[src]

Set the color of the widget's label from hsl values.

fn small_font(self, ui: &Ui) -> Self[src]

Set a "small" font size for the widget's label.

fn medium_font(self, ui: &Ui) -> Self[src]

Set a "medium" font size for the widget's label.

fn large_font(self, ui: &Ui) -> Self[src]

Set a "large" font size for the widget's label.

impl<'a> Common for Canvas<'a>[src]

impl<'a> Widget for Canvas<'a>[src]

type State = State

State to be stored within the Uis 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

fn drag_area(
    &self,
    dim: Dimensions,
    style: &Style,
    theme: &Theme
) -> Option<Rect>
[src]

The title bar area at which the Canvas can be clicked and dragged.

Note: the position of the returned Rect should be relative to the center of the widget.

fn kid_area(&self, args: KidAreaArgs<Self>) -> KidArea[src]

The area of the widget below the title bar, upon which child widgets will be placed.

fn update(self, args: UpdateArgs<Self>)[src]

Update the state of the Canvas.

fn default_x_dimension(&self, ui: &Ui) -> Dimension[src]

The default width for the Widget. Read more

fn default_y_dimension(&self, ui: &Ui) -> Dimension[src]

The default height of the widget. Read more

fn is_over(&self) -> IsOverFn[src]

Returns either of the following: Read more

fn parent(self, parent_id: Id) -> Self[src]

Set the parent widget for this Widget by passing the WidgetId of the parent. Read more

fn no_parent(self) -> Self[src]

Specify that this widget has no parent widgets.

fn place_on_kid_area(self, b: bool) -> Self[src]

Set whether or not the Widget should be placed on the kid_area. Read more

fn graphics_for(self, id: Id) -> Self[src]

Indicates that the Widget is used as a non-interactive graphical element for some other widget. Read more

fn floating(self, is_floating: bool) -> Self[src]

Set whether or not the widget is floating (the default is false). A typical example of a floating widget would be a pop-up or alert window. Read more

fn crop_kids(self) -> Self[src]

Indicates that all widgets who are children of this widget should be cropped to the kid_area of this widget. Read more

fn scroll_kids(self) -> Self[src]

Makes the widget's KidArea scrollable. Read more

fn scroll_kids_vertically(self) -> Self[src]

Makes the widget's KidArea scrollable. Read more

fn scroll_kids_horizontally(self) -> Self[src]

Set whether or not the widget's KidArea is scrollable (the default is false). Read more

fn and<F>(self, build: F) -> Self where
    F: FnOnce(Self) -> Self, 
[src]

A builder method that "lifts" the Widget through the given build function. Read more

fn and_mut<F>(self, mutate: F) -> Self where
    F: FnOnce(&mut Self), 
[src]

A builder method that mutates the Widget with the given mutate function. Read more

fn and_if<F>(self, cond: bool, build: F) -> Self where
    F: FnOnce(Self) -> Self, 
[src]

A method that conditionally builds the Widget with the given build function. Read more

fn and_then<T, F>(self, maybe: Option<T>, build: F) -> Self where
    F: FnOnce(Self, T) -> Self, 
[src]

A method that optionally builds the Widget with the given build function. Read more

fn set<'a, 'b>(self, id: Id, ui_cell: &'a mut UiCell<'b>) -> Self::Event[src]

Note: There should be no need to override this method. Read more

impl<'a> Clone for Canvas<'a>[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<'a> Copy for Canvas<'a>[src]

impl<'a> Debug for Canvas<'a>[src]

Auto Trait Implementations

impl<'a> Send for Canvas<'a>

impl<'a> Sync for Canvas<'a>

Blanket Implementations

impl<W> Positionable for W where
    W: Widget
[src]

fn x(self, x: Scalar) -> Self[src]

Build with the given Absolute Position along the x axis.

fn y(self, y: Scalar) -> Self[src]

Build with the given Absolute Position along the y axis.

fn xy(self, point: Point) -> Self[src]

Set the Position with some Point.

fn x_y(self, x: Scalar, y: Scalar) -> Self[src]

Set the Position with x y coordinates.

fn x_position_relative(self, x: Relative) -> Self[src]

Set the x Position Relative to the previous widget.

fn y_position_relative(self, y: Relative) -> Self[src]

Set the y Position Relative to the previous widget.

fn x_y_position_relative(self, x: Relative, y: Relative) -> Self[src]

Set the x and y Positions Relative to the previous widget.

fn x_position_relative_to(self, other: Id, x: Relative) -> Self[src]

Set the x Position Relative to the given widget.

fn y_position_relative_to(self, other: Id, y: Relative) -> Self[src]

Set the y Position Relative to the given widget.

fn x_y_position_relative_to(self, other: Id, x: Relative, y: Relative) -> Self[src]

Set the x and y Positions Relative to the given widget.

fn x_relative(self, x: Scalar) -> Self[src]

Set the Position as a Scalar along the x axis Relative to the middle of previous widget. Read more

fn y_relative(self, y: Scalar) -> Self[src]

Set the Position as a Scalar along the y axis Relative to the middle of previous widget. Read more

fn xy_relative(self, point: Point) -> Self[src]

Set the Position as a Point Relative to the middle of the previous widget.

fn x_y_relative(self, x: Scalar, y: Scalar) -> Self[src]

Set the Position as Scalars along the x and y axes Relative to the middle of the previous widget. Read more

fn x_relative_to(self, other: Id, x: Scalar) -> Self[src]

Set the position relative to the widget with the given widget::Id.

fn y_relative_to(self, other: Id, y: Scalar) -> Self[src]

Set the position relative to the widget with the given widget::Id.

fn xy_relative_to(self, other: Id, xy: Point) -> Self[src]

Set the position relative to the widget with the given widget::Id.

fn x_y_relative_to(self, other: Id, x: Scalar, y: Scalar) -> Self[src]

Set the position relative to the widget with the given widget::Id.

fn x_direction(self, direction: Direction, x: Scalar) -> Self[src]

Build with the Position along the x axis as some distance from another widget.

fn y_direction(self, direction: Direction, y: Scalar) -> Self[src]

Build with the Position along the y axis as some distance from another widget.

fn down(self, y: Scalar) -> Self[src]

Build with the Position as some distance below another widget.

fn up(self, y: Scalar) -> Self[src]

Build with the Position as some distance above another widget.

fn left(self, x: Scalar) -> Self[src]

Build with the Position as some distance to the left of another widget.

fn right(self, x: Scalar) -> Self[src]

Build with the Position as some distance to the right of another widget.

fn x_direction_from(self, other: Id, direction: Direction, x: Scalar) -> Self[src]

Build with the Position along the x axis as some distance from the given widget.

fn y_direction_from(self, other: Id, direction: Direction, y: Scalar) -> Self[src]

Build with the Position along the y axis as some distance from the given widget.

fn down_from(self, other: Id, y: Scalar) -> Self[src]

Build with the Position as some distance below the given widget.

fn up_from(self, other: Id, y: Scalar) -> Self[src]

Build with the Position as some distance above the given widget.

fn left_from(self, other: Id, x: Scalar) -> Self[src]

Build with the Position as some distance to the left of the given widget.

fn right_from(self, other: Id, x: Scalar) -> Self[src]

Build with the Position as some distance to the right of the given widget.

fn x_align(self, align: Align) -> Self[src]

Align the Position of the widget along the x axis.

fn y_align(self, align: Align) -> Self[src]

Align the Position of the widget along the y axis.

fn align_left(self) -> Self[src]

Align the position to the left (only effective for Up or Down Directions).

fn align_middle_x(self) -> Self[src]

Align the position to the middle (only effective for Up or Down Directions).

fn align_right(self) -> Self[src]

Align the position to the right (only effective for Up or Down Directions).

fn align_top(self) -> Self[src]

Align the position to the top (only effective for Left or Right Directions).

fn align_middle_y(self) -> Self[src]

Align the position to the middle (only effective for Left or Right Directions).

fn align_bottom(self) -> Self[src]

Align the position to the bottom (only effective for Left or Right Directions).

fn x_align_to(self, other: Id, align: Align) -> Self[src]

Align the Position of the widget with the given widget along the x axis.

fn y_align_to(self, other: Id, align: Align) -> Self[src]

Align the Position of the widget with the given widget along the y axis.

fn align_left_of(self, other: Id) -> Self[src]

Align the position to the left (only effective for Up or Down Directions).

fn align_middle_x_of(self, other: Id) -> Self[src]

Align the position to the middle (only effective for Up or Down Directions).

fn align_right_of(self, other: Id) -> Self[src]

Align the position to the right (only effective for Up or Down Directions).

fn align_top_of(self, other: Id) -> Self[src]

Align the position to the top (only effective for Left or Right Directions).

fn align_middle_y_of(self, other: Id) -> Self[src]

Align the position to the middle (only effective for Left or Right Directions).

fn align_bottom_of(self, other: Id) -> Self[src]

Align the position to the bottom (only effective for Left or Right Directions).

fn x_place_on(self, other: Id, place: Place) -> Self[src]

Place the widget at some position on the other Widget along the x axis.

fn y_place_on(self, other: Id, place: Place) -> Self[src]

Place the widget at some position on the other Widget along the y axis.

fn middle_of(self, other: Id) -> Self[src]

Place the widget in the middle of the given Widget.

fn top_left_of(self, other: Id) -> Self[src]

Place the widget in the top left corner of the given Widget.

fn top_left_with_margin_on(self, other: Id, mgn: Scalar) -> Self[src]

Place the widget in the top left corner of the given Widget with the given margin between both edges. Read more

fn top_left_with_margins_on(self, other: Id, top: Scalar, left: Scalar) -> Self[src]

Place the widget in the top left corner of the given Widget with the given margins between each respective edge. Read more

fn top_right_of(self, other: Id) -> Self[src]

Place the widget in the top right corner of the given Widget.

fn top_right_with_margin_on(self, other: Id, mgn: Scalar) -> Self[src]

Place the widget in the top right corner of the given Widget with the given margin between both edges. Read more

fn top_right_with_margins_on(
    self,
    other: Id,
    top: Scalar,
    right: Scalar
) -> Self
[src]

Place the widget in the top right corner of the given Widget with the given margins between each respective edge. Read more

fn bottom_left_of(self, other: Id) -> Self[src]

Place the widget in the bottom left corner of the given Widget.

fn bottom_left_with_margin_on(self, other: Id, mgn: Scalar) -> Self[src]

Place the widget in the bottom left corner of the given Widget with the given margin between both edges. Read more

fn bottom_left_with_margins_on(
    self,
    other: Id,
    bottom: Scalar,
    left: Scalar
) -> Self
[src]

Place the widget in the bottom left corner of the given Widget with the given margins between each respective edge. Read more

fn bottom_right_of(self, other: Id) -> Self[src]

Place the widget in the bottom right corner of the given Widget.

fn bottom_right_with_margin_on(self, other: Id, mgn: Scalar) -> Self[src]

Place the widget in the bottom right corner of the given Widget with the given margin between both edges. Read more

fn bottom_right_with_margins_on(
    self,
    other: Id,
    bottom: Scalar,
    right: Scalar
) -> Self
[src]

Place the widget in the bottom right corner of the given Widget with the given margins between each respective edge. Read more

fn mid_top_of(self, other: Id) -> Self[src]

Place the widget in the middle of the top edge of the given Widget.

fn mid_top_with_margin_on(self, other: Id, mgn: Scalar) -> Self[src]

Place the widget in the middle of the top edge of the given Widget with the given margin between the edges. Read more

fn mid_bottom_of(self, other: Id) -> Self[src]

Place the widget in the middle of the bottom edge of the given Widget.

fn mid_bottom_with_margin_on(self, other: Id, mgn: Scalar) -> Self[src]

Place the widget in the middle of the bottom edge of the given Widget with the given margin between the edges. Read more

fn mid_left_of(self, other: Id) -> Self[src]

Place the widget in the middle of the left edge of the given Widget.

fn mid_left_with_margin_on(self, other: Id, mgn: Scalar) -> Self[src]

Place the widget in the middle of the left edge of the given Widget with the given margin between the edges. Read more

fn mid_right_of(self, other: Id) -> Self[src]

Place the widget in the middle of the right edge of the given Widget.

fn mid_right_with_margin_on(self, other: Id, mgn: Scalar) -> Self[src]

Place the widget in the middle of the right edge of the given Widget with the given margin between the edges. Read more

fn x_place(self, place: Place) -> Self[src]

Place the widget at some position on the Widget along the x axis.

fn y_place(self, place: Place) -> Self[src]

Place the widget at some position on the Widget along the y axis.

fn middle(self) -> Self[src]

Place the widget in the middle of the current parent Widget.

fn top_left(self) -> Self[src]

Place the widget in the top left corner of the current parent Widget.

fn top_left_with_margin(self, mgn: Scalar) -> Self[src]

Place the widget in the top left corner of the current parent Widget with the given margin between both edges. Read more

fn top_left_with_margins(self, top: Scalar, left: Scalar) -> Self[src]

Place the widget in the top left corner of the current parent Widget with the given margins between each respective edge. Read more

fn top_right(self) -> Self[src]

Place the widget in the top right corner of the current parent Widget.

fn top_right_with_margin(self, mgn: Scalar) -> Self[src]

Place the widget in the top right corner of the current parent Widget with the given margin between both edges. Read more

fn top_right_with_margins(self, top: Scalar, right: Scalar) -> Self[src]

Place the widget in the top right corner of the current parent Widget with the given margins between each respective edge. Read more

fn bottom_left(self) -> Self[src]

Place the widget in the bottom left corner of the current parent Widget.

fn bottom_left_with_margin(self, mgn: Scalar) -> Self[src]

Place the widget in the bottom left corner of the current parent Widget with the given margin between both edges. Read more

fn bottom_left_with_margins(self, bottom: Scalar, left: Scalar) -> Self[src]

Place the widget in the bottom left corner of the current parent Widget with the given margins between each respective edge. Read more

fn bottom_right(self) -> Self[src]

Place the widget in the bottom right corner of the current parent Widget.

fn bottom_right_with_margin(self, mgn: Scalar) -> Self[src]

Place the widget in the bottom right corner of the current parent Widget with the given margin between both edges. Read more

fn bottom_right_with_margins(self, bottom: Scalar, right: Scalar) -> Self[src]

Place the widget in the bottom right corner of the current parent Widget with the given margins between each respective edge. Read more

fn mid_top(self) -> Self[src]

Place the widget in the middle of the top edge of the current parent Widget.

fn mid_top_with_margin(self, mgn: Scalar) -> Self[src]

Place the widget in the middle of the top edge of the current parent Widget with the given margin from the edge. Read more

fn mid_bottom(self) -> Self[src]

Place the widget in the middle of the bottom edge of the current parent Widget.

fn mid_bottom_with_margin(self, mgn: Scalar) -> Self[src]

Place the widget in the middle of the bottom edge of the current parent Widget with the given margin from the edge. Read more

fn mid_left(self) -> Self[src]

Place the widget in the middle of the left edge of the current parent Widget.

fn mid_left_with_margin(self, mgn: Scalar) -> Self[src]

Place the widget in the middle of the left edge of the current parent Widget with the given margin from the edge. Read more

fn mid_right(self) -> Self[src]

Place the widget in the middle of the right edge of the current parent Widget.

fn mid_right_with_margin(self, mgn: Scalar) -> Self[src]

Place the widget in the middle of the right edge of the current parent Widget with the given margin from the edge. Read more

impl<W> Sizeable for W where
    W: Widget
[src]

fn get_x_dimension(&Self, &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.

fn get_y_dimension(&Self, &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.

fn w(self, w: Scalar) -> Self[src]

Set the absolute width for the widget.

fn h(self, h: Scalar) -> Self[src]

Set the absolute height for the widget.

fn wh(self, wh: Dimensions) -> Self[src]

Set the dimensions for the widget.

fn w_h(self, width: Scalar, height: Scalar) -> Self[src]

Set the width and height for the widget.

fn w_of(self, idx: Id) -> Self[src]

Set the width as the width of the widget at the given index.

fn padded_w_of(self, idx: Id, pad: Scalar) -> Self[src]

Set the width as the width of the widget at the given index padded at both ends by the given Scalar. Read more

fn h_of(self, idx: Id) -> Self[src]

Set the height as the height of the widget at the given index.

fn padded_h_of(self, idx: Id, pad: Scalar) -> Self[src]

Set the height as the height of the widget at the given index padded at both ends by the given Scalar. Read more

fn wh_of(self, idx: Id) -> Self[src]

Set the dimensions as the dimensions of the widget at the given index.

fn padded_wh_of(self, idx: Id, pad: Scalar) -> Self[src]

Set the dimensions as the dimensions of the widget at the given index with all four edges padded by the given scalar. Read more

fn kid_area_w_of(self, idx: Id) -> Self[src]

Set the width as the width of the padded area of the widget at the given index.

fn padded_kid_area_w_of(self, idx: Id, pad: Scalar) -> Self[src]

Set the width as the KidArea width for the widget at the given index, padded at both ends by the given scalar. Read more

fn kid_area_h_of(self, idx: Id) -> Self[src]

Set the height as the KidArea height of the widget at the given index.

fn padded_kid_area_h_of(self, idx: Id, pad: Scalar) -> Self[src]

Set the height as the KidArea height of the widget at the given index, padded at both ends by the given scalar. Read more

fn kid_area_wh_of(self, idx: Id) -> Self[src]

Set the dimensions as the KidArea dimensions of the widget at the given index.

fn padded_kid_area_wh_of(self, idx: Id, pad: Scalar) -> Self[src]

Set the dimensions as the KidArea dimensions of the widget at the given index, padded at all four edges by the given scalar. Read more

fn get_w(&self, ui: &Ui) -> Option<Scalar>[src]

Get the absolute width of the widget as a Scalar value.

fn get_h(&self, ui: &Ui) -> Option<Scalar>[src]

Get the height of the widget.

fn get_wh(&self, ui: &Ui) -> Option<Dimensions>[src]

The dimensions for the widget.

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]