wgui: Refactoring, various changes (see desc)
- use parking_lot for mutex (less restrictive and easier to use) - simplify event callbacks and widget type casting - defer component initialization at start (required for setting the initial state of sliders) - fix non-working scroll events - update testbed.xml - replace slider with the real one in bar.xml - show slider text on its handle
This commit is contained in:
@@ -2,7 +2,7 @@ use glam::{FloatExt, Vec2};
|
||||
|
||||
use crate::{
|
||||
event::{CallbackDataCommon, EventAlterables, EventRefs},
|
||||
layout::{WidgetID, WidgetMap, WidgetNodeMap},
|
||||
layout::WidgetID,
|
||||
widget::{WidgetData, WidgetObj},
|
||||
};
|
||||
|
||||
@@ -90,14 +90,14 @@ impl Animation {
|
||||
}
|
||||
|
||||
fn call(&self, refs: &EventRefs, alterables: &mut EventAlterables, pos: f32) {
|
||||
let Some(widget) = refs.widget_map.get(self.target_widget).cloned() else {
|
||||
let Some(widget) = refs.widgets.get(self.target_widget).cloned() else {
|
||||
return; // failed
|
||||
};
|
||||
|
||||
let widget_node = *refs.widget_node_map.get(self.target_widget).unwrap();
|
||||
let widget_node = *refs.nodes.get(self.target_widget).unwrap();
|
||||
let layout = refs.tree.layout(widget_node).unwrap(); // should always succeed
|
||||
|
||||
let mut widget = widget.lock().unwrap();
|
||||
let mut widget = widget.lock();
|
||||
|
||||
let (data, obj) = widget.get_data_obj_mut();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user