create driven example for tui renderer
This commit is contained in:
1 parent
c805bc25af
commit
71e34452da
10 files changed
+276
-34
No files matched your search
@@ -75,7 +75,6 @@ pub struct InnerInputState {
|
||||
mouse: Option<MouseData>,
|
||||
wheel: Option<WheelData>,
|
||||
last_key_pressed: Option<(KeyboardData, Instant)>,
|
||||
screen: Option<(u16, u16)>,
|
||||
pub(crate) focus_state: FocusState,
|
||||
// subscribers: Vec<Rc<dyn Fn() + 'static>>,
|
||||
}
|
||||
@@ -86,7 +85,6 @@ impl InnerInputState {
|
||||
mouse: None,
|
||||
wheel: None,
|
||||
last_key_pressed: None,
|
||||
screen: None,
|
||||
// subscribers: Vec::new(),
|
||||
focus_state: FocusState::create(rdom),
|
||||
}
|
||||
@@ -181,7 +179,6 @@ impl InnerInputState {
|
||||
if old_focus != self.focus_state.last_focused_id {
|
||||
// elements with listeners will always have a element id
|
||||
if let Some(id) = self.focus_state.last_focused_id {
|
||||
let element = dom.get(id).unwrap();
|
||||
resolved_events.push(Event {
|
||||
name: "focus",
|
||||
id,
|
||||
@@ -196,7 +193,6 @@ impl InnerInputState {
|
||||
});
|
||||
}
|
||||
if let Some(id) = old_focus {
|
||||
let element = dom.get(id).unwrap();
|
||||
resolved_events.push(Event {
|
||||
name: "focusout",
|
||||
id,
|
||||
|
||||
@@ -68,7 +68,7 @@ impl TuiContext {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn render<R: Renderer<(), Rc<EventData>>>(
|
||||
pub fn render<R: Renderer<Rc<EventData>>>(
|
||||
cfg: Config,
|
||||
f: impl FnOnce(&Arc<RwLock<RealDom>>, &Arc<Mutex<Taffy>>, UnboundedSender<InputEvent>) -> R,
|
||||
) -> Result<()> {
|
||||
@@ -271,7 +271,7 @@ pub fn render<R: Renderer<(), Rc<EventData>>>(
|
||||
|
||||
for e in evts {
|
||||
let node = rdom.get_mut(e.id).unwrap();
|
||||
renderer.handle_event(node, e.name, e.data);
|
||||
renderer.handle_event(node, e.name, e.data, e.bubbles);
|
||||
}
|
||||
}
|
||||
let mut rdom = rdom.write().unwrap();
|
||||
|
||||
@@ -67,7 +67,7 @@ pub(crate) fn render_vnode(
|
||||
}
|
||||
|
||||
let label = Label {
|
||||
text,
|
||||
text: &text.text,
|
||||
style: node.get::<StyleModifier>().unwrap().core,
|
||||
};
|
||||
let area = Rect::new(x, y, width, height);
|
||||
|
||||
Reference in new issue
Block a user