From 2318ad7f98b4e3fb2c2fa73a5eea53f4c8ec45d9 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Sun, 12 Jan 2025 14:06:50 +0100 Subject: [PATCH] outline bug fix --- src/lib.rs | 6 +++--- src/main.rs | 24 +++++++++++++++++------- src/utils.rs | 11 +++-------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 5f9a2c8..9dd1ff9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -369,11 +369,11 @@ impl Writer { let ol = self.style.write_outline("│"); let hl = "─".repeat(width as usize); self.write_abs_outline(&self.style.write_outline(&format!("╭{}╮", hl)), (0, 0)); - for i in 1..height { + for i in 1..height+1 { self.write_abs_outline(&ol, (0, i)); - self.write_abs_outline(&ol, (width - 1, i)); + self.write_abs_outline(&ol, (width + 1, i)); } - self.write_abs_outline(&self.style.write_outline(&format!("╰{}╯", hl)), (0, height)); + self.write_abs_outline(&self.style.write_outline(&format!("╰{}╯", hl)), (0, height + 1)); } } diff --git a/src/main.rs b/src/main.rs index d1bc0d0..bff6245 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use osui::prelude::*; +use osui::{examples, prelude::*}; fn main() { launch!(App); @@ -6,12 +6,22 @@ fn main() { #[component] fn App() { - let count = use_state(20); - rsx! { - %text { "Hello" } - button { on_click: |_, _, _| @count { - count += 1 - }, "World: {count}" } + @SetStyle(css! { + example: "hover" { + color: Blue, + } + }) + + %text { "Choose an example to run" } + button { class: "example", on_click: |_, _, doc| { + doc.draw(examples::counter_example::App::default().create_element()); + }, "Counter" } + button { class: "example", on_click: |_, _, doc| { + doc.draw(examples::login_example::App::default().create_element()); + }, "Login" } + button { class: "example", on_click: |_, _, doc| { + doc.draw(examples::todo_example::App::default().create_element()); + }, "Todo" } } } diff --git a/src/utils.rs b/src/utils.rs index 62ffd1e..e1e3b8c 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -68,15 +68,10 @@ impl<'a> Frame<'a> { element.render(&mut writer); let (width, height) = writer.get_size_root(); { - let (mut x, mut y) = (x, y); - if style_element.outline.1 { - x -= 1; - y -= 1; - } - let height = if style_element.outline.1 { - height + 1 + let (x, y, width, height) = if style_element.outline.1 { + (x - 1, y - 1, width + 2, height + 2) } else { - height + (x, y, width, height) }; for i in y..y + height {