Struct freya_testing::elements::rect
source · pub struct rect;
Expand description
Implementations§
source§impl rect
impl rect
sourcepub const padding: (&'static str, Option<&'static str>, bool) = _
pub const padding: (&'static str, Option<&'static str>, bool) = _
padding
Specify the inner paddings of an element. You can do so by three different ways, just like in CSS.
Example:
fn app(cx: Scope) -> Element {
render!(
rect {
padding: "25" // 25 in all sides
padding: "100 50" // 100 in top and bottom, and 50 in left and right
padding: "5 7 3 9" // 5 in top, 7 in right, 3 in bottom and 9 in left
}
)
}
sourcepub const height: (&'static str, Option<&'static str>, bool) = _
pub const height: (&'static str, Option<&'static str>, bool) = _
width and height
Specify the width and height for the given element.
See syntax in Size Units
.
Example:
fn app(cx: Scope) -> Element {
render!(
rect {
background: "red",
width: "15",
height: "50",
}
)
}
pub const width: (&'static str, Option<&'static str>, bool) = _
sourcepub const min_height: (&'static str, Option<&'static str>, bool) = _
pub const min_height: (&'static str, Option<&'static str>, bool) = _
min_width & min_height
rect
supports specifying a minimum width and height, this can be useful if you use it alongside a percentage for the target size.
See syntax for Size Units
.
Usage
fn app(cx: Scope) -> Element {
render!(
rect {
background: "red",
min_width: "100",
min_height: "100",
width: "50%",
height: "50%",
}
)
}
pub const min_width: (&'static str, Option<&'static str>, bool) = _
sourcepub const max_height: (&'static str, Option<&'static str>, bool) = _
pub const max_height: (&'static str, Option<&'static str>, bool) = _
max_width & max_height
rect
supports specifying a maximum width and height.
See syntax for Size Units
.
Usage
fn app(cx: Scope) -> Element {
render!(
rect {
background: "red",
max_width: "50%",
max_height: "50%",
width: "500",
height: "500",
}
)
}
pub const max_width: (&'static str, Option<&'static str>, bool) = _
sourcepub const background: (&'static str, Option<&'static str>, bool) = _
pub const background: (&'static str, Option<&'static str>, bool) = _
background
Specify a color as the background of an element.
You can learn about the syntax of this attribute here.
Example:
fn app(cx: Scope) -> Element {
render!(
rect {
background: "red"
}
)
}
sourcepub const border: (&'static str, Option<&'static str>, bool) = _
pub const border: (&'static str, Option<&'static str>, bool) = _
border
You can add a border to an element using the border
and border_align
attributes.
border
syntax:[width] <solid | none> [color]
.border_align
syntax:<inner | outer | center>
.
Example:
fn app(cx: Scope) -> Element {
render!(
rect {
border: "2 solid black",
border_align: "inner"
}
)
}
pub const border_align: (&'static str, Option<&'static str>, bool) = _
sourcepub const direction: (&'static str, Option<&'static str>, bool) = _
pub const direction: (&'static str, Option<&'static str>, bool) = _
direction
Control how the inner elements will be stacked, possible values are vertical
(default) and horizontal
.
Usage
fn app(cx: Scope) -> Element {
render!(
rect {
width: "100%",
height: "100%",
direction: "vertical",
rect {
width: "100%",
height: "50%",
background: "red"
},
rect {
width: "100%",
height: "50%",
background: "green"
}
}
)
}
sourcepub const corner_radius: (&'static str, Option<&'static str>, bool) = _
pub const corner_radius: (&'static str, Option<&'static str>, bool) = _
corner_radius & corner_smoothing
The corner_radius
attribute let’s you smooth the corners of the element, with corner_smoothing
you can give a “squircle” effect.
Example:
fn app(cx: Scope) -> Element {
render!(
rect {
corner_radius: "10",
corner_smoothing: "75%"
}
)
}
pub const corner_smoothing: (&'static str, Option<&'static str>, bool) = _
sourcepub const color: (&'static str, Option<&'static str>, bool) = _
pub const color: (&'static str, Option<&'static str>, bool) = _
color
The color
attribute let’s you specify the color of the text.
You can learn about the syntax of this attribute in Color Syntax
.
Example:
fn app(cx: Scope) -> Element {
render!(
label {
color: "green",
"Hello, World!"
}
)
}
Another example showing inheritance:
fn app(cx: Scope) -> Element {
render!(
rect {
color: "blue",
label {
"Hello, World!"
}
}
)
}
sourcepub const font_size: (&'static str, Option<&'static str>, bool) = _
pub const font_size: (&'static str, Option<&'static str>, bool) = _
font_size
You can specify the size of the text using font_size
.
Example:
fn app(cx: Scope) -> Element {
render!(
label {
font_size: "50",
"Hellooooo!"
}
)
}
sourcepub const font_family: (&'static str, Option<&'static str>, bool) = _
pub const font_family: (&'static str, Option<&'static str>, bool) = _
font_family
With the font_family
you can specify what font do you want to use for the inner text.
Limitation: Only fonts installed in the system are supported for now.
Example:
fn app(cx: Scope) -> Element {
render!(
label {
font_family: "Inter",
"Hello, World!"
}
)
}
sourcepub const font_style: (&'static str, Option<&'static str>, bool) = _
pub const font_style: (&'static str, Option<&'static str>, bool) = _
font_style
You can choose a style for a text using the font_style
attribute.
Accepted values: upright
(default), italic
and oblique
.
Example:
fn app(cx: Scope) -> Element {
render!(
label {
font_style: "italic",
"Hello, World!"
}
)
}
sourcepub const font_weight: (&'static str, Option<&'static str>, bool) = _
pub const font_weight: (&'static str, Option<&'static str>, bool) = _
font_weight
You can choose a weight for a text using the font_weight
attribute.
Accepted values:
invisible
thin
extra-light
light
normal
(default)medium
semi-bold
bold
extra-bold
black
extra-black
50
100
200
300
400
500
600
700
800
900
950
Example:
fn app(cx: Scope) -> Element {
render!(
label {
font_weight: "bold",
"Hello, World!"
}
)
}
sourcepub const font_width: (&'static str, Option<&'static str>, bool) = _
pub const font_width: (&'static str, Option<&'static str>, bool) = _
font_width
You can choose a width for a text using the font_width
attribute.
Accepted values:
ultra-condensed
extra-condensed
condensed
normal
(default)semi-expanded
expanded
extra-expanded
ultra-expanded
Example:
fn app(cx: Scope) -> Element {
render!(
label {
font_weight: "bold",
"Hello, World!"
}
)
}
sourcepub const main_align: (&'static str, Option<&'static str>, bool) = _
pub const main_align: (&'static str, Option<&'static str>, bool) = _
main_align & cross_align
Control how the inner elements are positioned inside the element. You can combine it with the direction
attribute to create complex flows.
Possible values for both attributes are:
start
(default): At the begining of the axiscenter
: At the center of the axisend
: At the end of the axis
When using the vertical
direction, main_align
will be the Y axis and cross_align
will be the X axis. But when using the horizontal
direction, the
main_align
will be the X axis and the cross_align
will be the Y axis.
Example on how to center the inner elements in both axis:
fn app(cx: Scope) -> Element {
render!(
rect {
width: "100%",
height: "100%",
main_align: "center",
cross_align: "center",
rect {
width: "50%",
height: "50%",
background: "red"
},
}
)
}
pub const cross_align: (&'static str, Option<&'static str>, bool) = _
sourcepub const text_align: (&'static str, Option<&'static str>, bool) = _
pub const text_align: (&'static str, Option<&'static str>, bool) = _
text_align
You can change the alignment of the text using the text_align
attribute.
Accepted values: center
, end
, justify
, left
, right
, start
Example
fn app(cx: Scope) -> Element {
render!(
label {
text_align: "right",
"Hello, World!"
}
)
}
sourcepub const margin: (&'static str, Option<&'static str>, bool) = _
pub const margin: (&'static str, Option<&'static str>, bool) = _
margin
Specify the margin of an element. You can do so by three different ways, just like in CSS.
fn app(cx: Scope) -> Element {
render!(
rect {
margin: "25" // 25 in all sides
margin: "100 50" // 100 in top and bottom, and 50 in left and right
margin: "5 7 3 9" 5 // in top, 7 in right, 3 in bottom and 9 in left
}
)
}
sourcepub const position: (&'static str, Option<&'static str>, bool) = _
pub const position: (&'static str, Option<&'static str>, bool) = _
position
Specify how you want the element to be positioned inside it’s parent Area
Possible values for position
:
stacked
(default)absolute
When using the absolute
mode, you can also combine it with the following attributes:
position_top
position_right
position_bottom
position_left
These only support pixels.
Example:
fn app(cx: Scope) -> Element {
render!(
rect {
width: "100%",
height: "100%",
rect {
position: "absolute",
position_bottom: "15",
position_right: "15",
background: "black",
width: "100",
height: "100",
}
}
)
}
pub const position_top: (&'static str, Option<&'static str>, bool) = _
pub const position_right: (&'static str, Option<&'static str>, bool) = _
pub const position_bottom: (&'static str, Option<&'static str>, bool) = _
pub const position_left: (&'static str, Option<&'static str>, bool) = _
pub const name: (&'static str, Option<&'static str>, bool) = _
pub const focusable: (&'static str, Option<&'static str>, bool) = _
pub const role: (&'static str, Option<&'static str>, bool) = _
pub const focus_id: (&'static str, Option<&'static str>, bool) = _
pub const alt: (&'static str, Option<&'static str>, bool) = _
pub const canvas_reference: (&'static str, Option<&'static str>, bool) = _
pub const layer: (&'static str, Option<&'static str>, bool) = _
pub const offset_y: (&'static str, Option<&'static str>, bool) = _
pub const offset_x: (&'static str, Option<&'static str>, bool) = _
pub const reference: (&'static str, Option<&'static str>, bool) = _
pub const cursor_reference: (&'static str, Option<&'static str>, bool) = _
Auto Trait Implementations§
impl RefUnwindSafe for rect
impl Send for rect
impl Sync for rect
impl Unpin for rect
impl UnwindSafe for rect
Blanket Implementations§
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.