summaryrefslogtreecommitdiffstats
path: root/src/widget.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-09-10 19:41:49 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-09-10 19:41:49 +0200
commit8b8f7563ad33dafeadf6238e377748cdec17d67a (patch)
tree45a601d18a054ccdd068eeac93730e4e99252158 /src/widget.rs
parent2913c64da3452d1fbf92384e4ff32c278fb383f8 (diff)
downloadiced-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.rs114
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>,
- ) {
- }
-}