summaryrefslogtreecommitdiffstats
path: root/virtual/src/widget.rs
diff options
context:
space:
mode:
Diffstat (limited to 'virtual/src/widget.rs')
-rw-r--r--virtual/src/widget.rs52
1 files changed, 52 insertions, 0 deletions
diff --git a/virtual/src/widget.rs b/virtual/src/widget.rs
new file mode 100644
index 00000000..f8697bc0
--- /dev/null
+++ b/virtual/src/widget.rs
@@ -0,0 +1,52 @@
+mod button;
+
+pub use button::Button;
+
+use iced_native::layout::{self, Layout};
+use iced_native::renderer;
+use iced_native::{Hasher, Length, Point, Rectangle};
+
+pub trait Widget<Message, Renderer> {}
+
+pub(crate) enum Tree<Message, Renderer> {
+ Node {
+ widget: Box<dyn Widget<Message, Renderer>>,
+ children: Vec<Tree<Message, Renderer>>,
+ },
+ Leaf {
+ widget: Box<dyn Widget<Message, Renderer>>,
+ },
+}
+
+impl<Message, Renderer> Tree<Message, Renderer> {
+ pub fn width(&self) -> Length {
+ unimplemented! {}
+ }
+
+ pub fn height(&self) -> Length {
+ unimplemented! {}
+ }
+
+ pub fn hash_layout(&self, state: &mut Hasher) {
+ unimplemented! {}
+ }
+
+ pub fn layout(
+ &self,
+ renderer: &Renderer,
+ limits: &layout::Limits,
+ ) -> layout::Node {
+ unimplemented! {}
+ }
+
+ pub fn draw(
+ &self,
+ renderer: &mut Renderer,
+ style: &renderer::Style,
+ layout: Layout<'_>,
+ cursor_position: Point,
+ viewport: &Rectangle,
+ ) {
+ unimplemented! {}
+ }
+}