diff options
author | 2019-09-10 19:41:49 +0200 | |
---|---|---|
committer | 2019-09-10 19:41:49 +0200 | |
commit | 8b8f7563ad33dafeadf6238e377748cdec17d67a (patch) | |
tree | 45a601d18a054ccdd068eeac93730e4e99252158 /src/widget.rs | |
parent | 2913c64da3452d1fbf92384e4ff32c278fb383f8 (diff) | |
download | iced-8b8f7563ad33dafeadf6238e377748cdec17d67a.tar.gz iced-8b8f7563ad33dafeadf6238e377748cdec17d67a.tar.bz2 iced-8b8f7563ad33dafeadf6238e377748cdec17d67a.zip |
Switch to workspace layout
Diffstat (limited to 'src/widget.rs')
-rw-r--r-- | src/widget.rs | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/src/widget.rs b/src/widget.rs deleted file mode 100644 index 30606934..00000000 --- a/src/widget.rs +++ /dev/null @@ -1,114 +0,0 @@ -//! Use the built-in widgets or create your own. -//! -//! # Built-in widgets -//! Every built-in drawable widget has its own module with a `Renderer` trait -//! that must be implemented by a [renderer] before being able to use it as -//! a [`Widget`]. -//! -//! # Custom widgets -//! If you want to implement a custom widget, you simply need to implement the -//! [`Widget`] trait. You can use the API of the built-in widgets as a guide or -//! source of inspiration. -//! -//! # Re-exports -//! For convenience, the contents of this module are available at the root -//! module. Therefore, you can directly type: -//! -//! ``` -//! use iced::{button, Button, Widget}; -//! ``` -//! -//! [`Widget`]: trait.Widget.html -//! [renderer]: ../renderer/index.html -mod column; -mod row; - -pub mod button; -pub mod checkbox; -pub mod image; -//pub mod progress_bar; -pub mod radio; -pub mod slider; -pub mod text; - -pub use button::Button; -pub use checkbox::Checkbox; -pub use column::Column; -pub use image::Image; -//pub use progress_bar::ProgressBar; -pub use radio::Radio; -pub use row::Row; -pub use slider::Slider; -pub use text::Text; - -use crate::{Event, Hasher, Layout, MouseCursor, Node, Point}; - -/// A component that displays information and allows interaction. -/// -/// If you want to build your own widgets, you will need to implement this -/// trait. -/// -/// [`Widget`]: trait.Widget.html -/// [`Element`]: ../struct.Element.html -pub trait Widget<Message, Renderer>: std::fmt::Debug { - /// Returns the [`Node`] of the [`Widget`]. - /// - /// This [`Node`] is used by the runtime to compute the [`Layout`] of the - /// user interface. - /// - /// [`Node`]: ../struct.Node.html - /// [`Widget`]: trait.Widget.html - /// [`Layout`]: ../struct.Layout.html - fn node(&self, renderer: &Renderer) -> Node; - - /// Draws the [`Widget`] using the associated `Renderer`. - /// - /// It must return the [`MouseCursor`] state for the [`Widget`]. - /// - /// [`Widget`]: trait.Widget.html - /// [`MouseCursor`]: ../enum.MouseCursor.html - fn draw( - &self, - renderer: &mut Renderer, - layout: Layout<'_>, - cursor_position: Point, - ) -> MouseCursor; - - /// Computes the _layout_ hash of the [`Widget`]. - /// - /// The produced hash is used by the runtime to decide if the [`Layout`] - /// needs to be recomputed between frames. Therefore, to ensure maximum - /// efficiency, the hash should only be affected by the properties of the - /// [`Widget`] that can affect layouting. - /// - /// For example, the [`Text`] widget does not hash its color property, as - /// its value cannot affect the overall [`Layout`] of the user interface. - /// - /// [`Widget`]: trait.Widget.html - /// [`Layout`]: ../struct.Layout.html - /// [`Text`]: text/struct.Text.html - fn hash_layout(&self, state: &mut Hasher); - - /// Processes a runtime [`Event`]. - /// - /// It receives: - /// * an [`Event`] describing user interaction - /// * the computed [`Layout`] of the [`Widget`] - /// * the current cursor position - /// * a mutable `Message` list, allowing the [`Widget`] to produce - /// new messages based on user interaction. - /// - /// By default, it does nothing. - /// - /// [`Event`]: ../enum.Event.html - /// [`Widget`]: trait.Widget.html - /// [`Layout`]: ../struct.Layout.html - fn on_event( - &mut self, - _event: Event, - _layout: Layout<'_>, - _cursor_position: Point, - _messages: &mut Vec<Message>, - ) { - } -} |