[−][src]Trait pixel_widgets::widget::Widget
A user interface widget.
Required methods
pub fn widget(&self) -> &'static str[src]
The name of this widget, used to identify widgets of this type in stylesheets.
pub fn len(&self) -> usize[src]
Should return the amount of children this widget has. Must be consistent with
visit_children().
pub fn visit_children(
&mut self,
visitor: &mut dyn FnMut(&mut Node<'a, Message>)
)[src]
&mut self,
visitor: &mut dyn FnMut(&mut Node<'a, Message>)
)
Applies a visitor to all childs of the widget. If an widget fails to visit it's children, the children won't
be able to resolve their stylesheet, resulting in a panic when calling size,
hit, event or
draw.
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
Returns the (width, height) of this widget.
The extents are defined as a Size,
which will later be resolved to actual dimensions.
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
Draw the widget. Returns a list of Primitives that should be drawn.
Arguments:
layout: the layout assigned to the widgetclip: a clipping rect for use withPrimitive::PushClip.
Provided methods
pub fn state(&self) -> StateVec[src]
The state of this widget, used for computing the style.
If None is returned, Node will automatically compute a state, such as "hover" and "pressed".
pub fn hit(
&self,
layout: Rectangle,
clip: Rectangle,
_style: &Stylesheet,
x: f32,
y: f32
) -> bool[src]
&self,
layout: Rectangle,
clip: Rectangle,
_style: &Stylesheet,
x: f32,
y: f32
) -> bool
Perform a hit detect on the widget. Most widgets are fine with the default implementation, but some
widgets (like Window need to report a miss (false) even when the queried
position is within their layout.
Arguments:
layout: the layout assigned to the widgetclip: a clipping rect for mouse events. Mouse events outside of this rect should be considered invalid, such as withScroll, where the widget would not be visible outside of the currently visible rect.x: x mouse coordinate being queriedy: y mouse coordinate being queried
pub fn focused(&self) -> bool[src]
Test the widget for focus exclusivity.
If the widget or one of it's descendants is in an exclusive focus state, this function should return true.
In all other cases, it should return false. When a widget is in an exclusive focus state it is
the only widget that is allowed to receive events in event.
Widgets that intended to use this behaviour are modal dialogs, dropdown boxes, context menu's, etc.
pub fn event(
&mut self,
_layout: Rectangle,
_clip: Rectangle,
_style: &Stylesheet,
_event: Event,
_context: &mut Context<Message>
)[src]
&mut self,
_layout: Rectangle,
_clip: Rectangle,
_style: &Stylesheet,
_event: Event,
_context: &mut Context<Message>
)
Handle an event. If an event changes the graphical appearance of an Widget,
redraw should be called to let the Ui know that
the ui should be redrawn.
Arguments:
layout: the layout assigned to the widgetclip: a clipping rect for mouse events. Mouse events outside of this rect should be considered invalid, such as withScroll, where the widget would not be visible outside of the currently visible rect.event: the event that needs to be handledcontext: context for submitting messages and requesting redraws of the ui.
pub fn node_event(
&mut self,
_layout: Rectangle,
_style: &Stylesheet,
_event: NodeEvent,
_context: &mut Context<Message>
)[src]
&mut self,
_layout: Rectangle,
_style: &Stylesheet,
_event: NodeEvent,
_context: &mut Context<Message>
)
Implementors
impl<'a, T> Widget<'a, T> for Space[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, _: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn draw(
&mut self,
layout: Rectangle,
_clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
_clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T> Widget<'a, T> for Text[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, _: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn event(
&mut self,
_: Rectangle,
_: Rectangle,
_: &Stylesheet,
_: Event,
_: &mut Context<T>
)[src]
&mut self,
_: Rectangle,
_: Rectangle,
_: &Stylesheet,
_: Event,
_: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
_: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
_: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T, F: Send + Fn(bool) -> T> Widget<'a, T> for Toggle<'a, T, F>[src]
pub fn widget(&self) -> &'static str[src]
pub fn state(&self) -> StateVec[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, _: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, stylesheet: &Stylesheet) -> (Size, Size)[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
_: Rectangle,
stylesheet: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
_: Rectangle,
stylesheet: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a + Send> Widget<'a, T> for Button<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn state(&self) -> StateVec[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a + Send> Widget<'a, T> for Column<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn focused(&self) -> bool[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a + Send, F: 'a + Send + Fn(String) -> T> Widget<'a, T> for Input<'a, T, F>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, _: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, stylesheet: &Stylesheet) -> (Size, Size)[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a + Send, Id: 'a + Send> Widget<'a, T> for Layers<'a, T, Id>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn focused(&self) -> bool[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a + Send, S: Send + AsRef<[MenuItem<'a, T>]> + AsMut<[MenuItem<'a, T>]>> Widget<'a, T> for Menu<'a, T, S>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn hit(
&self,
layout: Rectangle,
clip: Rectangle,
_style: &Stylesheet,
x: f32,
y: f32
) -> bool[src]
&self,
layout: Rectangle,
clip: Rectangle,
_style: &Stylesheet,
x: f32,
y: f32
) -> bool
pub fn focused(&self) -> bool[src]
pub fn event(
&mut self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a> Widget<'a, T> for &'a Image[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, _: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn draw(
&mut self,
layout: Rectangle,
_: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
_: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a> Widget<'a, T> for Dummy[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, _: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn draw(
&mut self,
layout: Rectangle,
_: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
_: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a> Widget<'a, T> for Frame<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a> Widget<'a, T> for Panel<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn hit(
&self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
x: f32,
y: f32
) -> bool[src]
&self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
x: f32,
y: f32
) -> bool
pub fn focused(&self) -> bool[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a> Widget<'a, T> for Progress<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a> Widget<'a, T> for Row<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn len(&self) -> usize[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn focused(&self) -> bool[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
stylesheet: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a> Widget<'a, T> for Scroll<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn focused(&self) -> bool[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: 'a> Widget<'a, T> for Window<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, _: &Stylesheet) -> (Size, Size)[src]
pub fn hit(
&self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet,
x: f32,
y: f32
) -> bool[src]
&self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet,
x: f32,
y: f32
) -> bool
pub fn focused(&self) -> bool[src]
pub fn event(
&mut self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
viewport: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: DragDropId + Send, Message: 'a> Widget<'a, Message> for Drag<'a, T, Message>[src]
pub fn widget(&self) -> &'static str[src]
pub fn state(&self) -> StateVec[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(
&mut self,
visitor: &mut dyn FnMut(&mut Node<'a, Message>)
)[src]
&mut self,
visitor: &mut dyn FnMut(&mut Node<'a, Message>)
)
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<Message>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<Message>
)
pub fn node_event(
&mut self,
layout: Rectangle,
_: &Stylesheet,
event: NodeEvent,
context: &mut Context<Message>
)[src]
&mut self,
layout: Rectangle,
_: &Stylesheet,
event: NodeEvent,
context: &mut Context<Message>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: DragDropId, Message: 'a, OnAccept, OnDrop> Widget<'a, Message> for Drop<'a, T, Message, OnAccept, OnDrop> where
OnAccept: Send + Fn(T) -> bool,
OnDrop: Send + Fn(T, (f32, f32)) -> Message, [src]
OnAccept: Send + Fn(T) -> bool,
OnDrop: Send + Fn(T, (f32, f32)) -> Message,
pub fn widget(&self) -> &'static str[src]
pub fn state(&self) -> StateVec[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(
&mut self,
visitor: &mut dyn FnMut(&mut Node<'a, Message>)
)[src]
&mut self,
visitor: &mut dyn FnMut(&mut Node<'a, Message>)
)
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<Message>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet,
event: Event,
context: &mut Context<Message>
)
pub fn node_event(
&mut self,
layout: Rectangle,
_: &Stylesheet,
event: NodeEvent,
context: &mut Context<Message>
)[src]
&mut self,
layout: Rectangle,
_: &Stylesheet,
event: NodeEvent,
context: &mut Context<Message>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>
impl<'a, T: Send + 'a> Widget<'a, T> for Dropdown<'a, T>[src]
pub fn widget(&self) -> &'static str[src]
pub fn state(&self) -> StateVec[src]
pub fn len(&self) -> usize[src]
pub fn visit_children(&mut self, visitor: &mut dyn FnMut(&mut Node<'a, T>))[src]
pub fn size(&self, style: &Stylesheet) -> (Size, Size)[src]
pub fn hit(
&self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
x: f32,
y: f32
) -> bool[src]
&self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
x: f32,
y: f32
) -> bool
pub fn focused(&self) -> bool[src]
pub fn event(
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
_: &Stylesheet,
event: Event,
context: &mut Context<T>
)
pub fn draw(
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>[src]
&mut self,
layout: Rectangle,
clip: Rectangle,
style: &Stylesheet
) -> Vec<Primitive<'a>>