Implement new mutations with native core (#630)
* work on seperating tree struture from realdom * intial update to new mutations * handle height * update to taffy 0.2 * add as_varient functions to OwnedAttributeValue * make get node parent mut optionally return a parent * work on upward pass * add more code for parrellel passes * make resolve passes public * more work on parallel passes * fix deadlock and add more tests * move height into the tree instead of the realdom * make passes exicute in parallel instead of executing invidual passes in parellel * fix some warnings * add up dependant test * clean up examples * work on intigrating state with passes * update to new mutations * work on implementing macro * make the macro compile * more progress on macro * mark cloned nodes as dirty * update persistant_iterator utility * fix mask generation * update tui with new mutations * more progress updating tui * some basic tui examples working * don't push template nodes onto the stack * update hover example * update benchmark * update more examples * fix root node layout * ignore out of bounds renders * update color picker example * update all events example * update remaining examples * update tests * tests passing * move persistant iterator test * update examples * fix gaps in layout * fix formatting * fix memory leak
This commit is contained in:
1 parent
b9aad5e8f4
commit
67a6fa9eb8
38 files changed
+3405
-2417
No files matched your search
@@ -1,6 +1,6 @@
|
||||
use dioxus::prelude::*;
|
||||
use dioxus_html::on::{FocusData, KeyboardData, MouseData, WheelData};
|
||||
use std::sync::Arc;
|
||||
use dioxus_html::{FocusData, KeyboardData, MouseData, WheelData};
|
||||
use std::rc::Rc;
|
||||
|
||||
fn main() {
|
||||
dioxus_tui::launch(app);
|
||||
@@ -8,20 +8,20 @@ fn main() {
|
||||
|
||||
#[derive(Debug)]
|
||||
enum Event {
|
||||
MouseMove(Arc<MouseData>),
|
||||
MouseClick(Arc<MouseData>),
|
||||
MouseDoubleClick(Arc<MouseData>),
|
||||
MouseDown(Arc<MouseData>),
|
||||
MouseUp(Arc<MouseData>),
|
||||
MouseMove(Rc<MouseData>),
|
||||
MouseClick(Rc<MouseData>),
|
||||
MouseDoubleClick(Rc<MouseData>),
|
||||
MouseDown(Rc<MouseData>),
|
||||
MouseUp(Rc<MouseData>),
|
||||
|
||||
Wheel(Arc<WheelData>),
|
||||
Wheel(Rc<WheelData>),
|
||||
|
||||
KeyDown(Arc<KeyboardData>),
|
||||
KeyUp(Arc<KeyboardData>),
|
||||
KeyPress(Arc<KeyboardData>),
|
||||
KeyDown(Rc<KeyboardData>),
|
||||
KeyUp(Rc<KeyboardData>),
|
||||
KeyPress(Rc<KeyboardData>),
|
||||
|
||||
FocusIn(Arc<FocusData>),
|
||||
FocusOut(Arc<FocusData>),
|
||||
FocusIn(Rc<FocusData>),
|
||||
FocusOut(Rc<FocusData>),
|
||||
}
|
||||
|
||||
const MAX_EVENTS: usize = 8;
|
||||
@@ -37,7 +37,7 @@ fn app(cx: Scope) -> Element {
|
||||
// todo: remove
|
||||
let mut trimmed = format!("{event:?}");
|
||||
trimmed.truncate(200);
|
||||
cx.render(rsx!(p { "{trimmed}" }))
|
||||
rsx!(p { "{trimmed}" })
|
||||
});
|
||||
|
||||
let log_event = move |event: Event| {
|
||||
@@ -57,20 +57,20 @@ fn app(cx: Scope) -> Element {
|
||||
align_items: "center",
|
||||
background_color: "hsl(248, 53%, 58%)",
|
||||
|
||||
onmousemove: move |event| log_event(Event::MouseMove(event.data)),
|
||||
onclick: move |event| log_event(Event::MouseClick(event.data)),
|
||||
ondblclick: move |event| log_event(Event::MouseDoubleClick(event.data)),
|
||||
onmousedown: move |event| log_event(Event::MouseDown(event.data)),
|
||||
onmouseup: move |event| log_event(Event::MouseUp(event.data)),
|
||||
onmousemove: move |event| log_event(Event::MouseMove(event.inner().clone())),
|
||||
onclick: move |event| log_event(Event::MouseClick(event.inner().clone())),
|
||||
ondblclick: move |event| log_event(Event::MouseDoubleClick(event.inner().clone())),
|
||||
onmousedown: move |event| log_event(Event::MouseDown(event.inner().clone())),
|
||||
onmouseup: move |event| log_event(Event::MouseUp(event.inner().clone())),
|
||||
|
||||
onwheel: move |event| log_event(Event::Wheel(event.data)),
|
||||
onwheel: move |event| log_event(Event::Wheel(event.inner().clone())),
|
||||
|
||||
onkeydown: move |event| log_event(Event::KeyDown(event.data)),
|
||||
onkeyup: move |event| log_event(Event::KeyUp(event.data)),
|
||||
onkeypress: move |event| log_event(Event::KeyPress(event.data)),
|
||||
onkeydown: move |event| log_event(Event::KeyDown(event.inner().clone())),
|
||||
onkeyup: move |event| log_event(Event::KeyUp(event.inner().clone())),
|
||||
onkeypress: move |event| log_event(Event::KeyPress(event.inner().clone())),
|
||||
|
||||
onfocusin: move |event| log_event(Event::FocusIn(event.data)),
|
||||
onfocusout: move |event| log_event(Event::FocusOut(event.data)),
|
||||
onfocusin: move |event| log_event(Event::FocusIn(event.inner().clone())),
|
||||
onfocusout: move |event| log_event(Event::FocusOut(event.inner().clone())),
|
||||
|
||||
"Hover, click, type or scroll to see the info down below"
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user