some minor updates
This commit is contained in:
+5
-2
@@ -34,8 +34,8 @@ pub mod utils;
|
||||
|
||||
pub mod prelude {
|
||||
pub use crate::ui::Color::*;
|
||||
pub use crate::ui::Number::*;
|
||||
pub use crate::ui::Font::*;
|
||||
pub use crate::ui::Number::*;
|
||||
pub use crate::{self as osui, css, ersx, launch, rsx, ui::*, Handler};
|
||||
pub use crate::{call, Children, Element, ElementCore, ElementWidget};
|
||||
pub use crate::{style, Document, RenderResult, RenderWriter};
|
||||
@@ -114,7 +114,7 @@ impl Document {
|
||||
}
|
||||
}
|
||||
}
|
||||
pub fn rebuild(&self) {
|
||||
pub fn restart(&self) {
|
||||
if !self.running.is_null() {
|
||||
unsafe {
|
||||
*self.running = Some(true);
|
||||
@@ -151,6 +151,9 @@ impl Document {
|
||||
utils::flush();
|
||||
}
|
||||
}
|
||||
pub fn draw(&mut self, element: &mut Element) {
|
||||
self.element = element;
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for Children {
|
||||
|
||||
+2
-18
@@ -1,21 +1,5 @@
|
||||
use osui::prelude::*;
|
||||
use osui::{examples::examples, prelude::*};
|
||||
|
||||
fn main() {
|
||||
launch!(app());
|
||||
}
|
||||
|
||||
// A simple counter
|
||||
fn app() -> Element {
|
||||
rsx! {
|
||||
// Create a button with a on_click handler
|
||||
button { on_click: Handler::new(move |btn: &mut Button, _, document| {
|
||||
if let Some(count) = document.get_element_by_id::<DataHolder<u32>>("count") {
|
||||
count.data += 1;
|
||||
btn.children.set_text(&count.data.to_string());
|
||||
}
|
||||
}), "0" }
|
||||
|
||||
// Store the data (in this case count)
|
||||
data_holder as u32 { id: "count" }
|
||||
}
|
||||
launch!(examples());
|
||||
}
|
||||
|
||||
+28
-15
@@ -1,4 +1,16 @@
|
||||
#[macro_export]
|
||||
macro_rules! check_expr {
|
||||
(|| $code:block) => {
|
||||
$crate::Handler::new(move |_, _, _| $code)
|
||||
};
|
||||
(|$($inner:tt)*| $code:block) => {
|
||||
$crate::Handler::new(move |$($inner)*| $code)
|
||||
};
|
||||
($expr:expr) => {
|
||||
$expr
|
||||
};
|
||||
}
|
||||
#[macro_export]
|
||||
macro_rules! parse_rsx_param {
|
||||
($elem:expr, for ($($for:tt)*) $code:block $($rest:tt)*) => {
|
||||
if $elem.children.is_none() {$elem.children = $crate::Children::Children(Vec::new(), 0)}
|
||||
@@ -10,33 +22,33 @@ macro_rules! parse_rsx_param {
|
||||
osui::parse_rsx_param!($elem, $($rest)*);
|
||||
};
|
||||
|
||||
($elem:expr, $($k:ident).+: $v:expr) => {
|
||||
$elem.$($k).+ = $v;
|
||||
($elem:expr, $($k:ident).+: fn($($params:tt)*) $code:block $(, $($rest:tt)*)?) => {
|
||||
$elem.$($k).+ = $crate::Handler::new(|$($params)*| $code);
|
||||
osui::parse_rsx_param!($elem, $($($rest)*)?);
|
||||
};
|
||||
|
||||
($elem:expr, $($k:ident).+: $v:expr, $($rest:tt)*) => {
|
||||
$elem.$($k).+ = $v;
|
||||
osui::parse_rsx_param!($elem, $($rest)*);
|
||||
($elem:expr, $($k:ident).+: $v:expr $(, $($rest:tt)*)?) => {
|
||||
$elem.$($k).+ = $crate::check_expr!($v);
|
||||
osui::parse_rsx_param!($elem, $($($rest)*)?);
|
||||
};
|
||||
($elem:expr, $p:path) => {
|
||||
($elem:expr, $p:path) => {
|
||||
$p;
|
||||
};
|
||||
($elem:expr, $($k:ident).+, $($rest:tt)*) => {
|
||||
$elem.$($k).+;
|
||||
$elem.$($k).+ = true;
|
||||
osui::parse_rsx_param!($elem, $($rest)*);
|
||||
};
|
||||
($elem:expr, $($k:ident).+., $($rest:tt)*) => {
|
||||
$elem.$($k).
|
||||
+.;
|
||||
$elem.$($k).+.;
|
||||
osui::parse_rsx_param!($elem, $($rest)*);
|
||||
};
|
||||
|
||||
($elem:expr, $($k:ident).+.: $v:expr) => {
|
||||
$elem.$($k).+. = $v;
|
||||
$elem.$($k).+. = $crate::check_expr!($v);
|
||||
};
|
||||
($elem:expr, $($k:ident).+.: $v:expr, $($rest:tt)*) => {
|
||||
$elem.$($k).+. = $v;
|
||||
osui::parse_rsx_param!($elem, $($rest)*);
|
||||
($elem:expr, $($k:ident).+.: $v:expr, $(, $($rest:tt)*)?) => {
|
||||
$elem.$($k).+. = $crate::check_expr!($v);
|
||||
osui::parse_rsx_param!($elem, $($($rest)*)?);
|
||||
};
|
||||
|
||||
($elem:expr, $code:block $($rest:tt)*) => {
|
||||
@@ -64,14 +76,15 @@ macro_rules! parse_rsx_param {
|
||||
};
|
||||
|
||||
($elem:expr, $text:expr) => {
|
||||
if $elem.children.is_none() {$elem.children = $crate::Children::Text(format!($text))}
|
||||
$elem.children.set_text_force(&format!($text))
|
||||
};
|
||||
|
||||
($elem:expr, $text:expr, $($inner:tt)*) => {
|
||||
if $elem.children.is_none() {$elem.children = $crate::Children::Text(format!($text, $($inner)*))}
|
||||
$elem.children.set_text_force(&format!($text, $($inner)*))
|
||||
};
|
||||
|
||||
($elem:expr, ) => {};
|
||||
($elem:expr) => {};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
|
||||
+2
-1
@@ -108,7 +108,8 @@ impl Frame {
|
||||
}
|
||||
crate::ui::Number::Pe(p) => y = (self.frame.len() * p) / 100,
|
||||
crate::ui::Number::Center => {
|
||||
y = (self.frame.len() - output.0.matches('\n').count() + 1) / 2
|
||||
let content_height = output.0.lines().count();
|
||||
y = (self.frame.len() - content_height) / 2;
|
||||
}
|
||||
crate::ui::Number::Auto => {
|
||||
for (i, n) in self.used.iter().enumerate() {
|
||||
|
||||
Reference in New Issue
Block a user