ConstructEssentials
i'm really out of ideas how to name another struct name with function parameters. Well, here we go - essentials.
This commit is contained in:
@@ -3,15 +3,14 @@ use crate::{
|
||||
components::{Component, ComponentBase, ComponentTrait, InitData},
|
||||
drawing::{self, Boundary, Color},
|
||||
event::{CallbackDataCommon, EventListenerCollection, EventListenerKind, ListenerHandleVec},
|
||||
globals::Globals,
|
||||
i18n::Translation,
|
||||
layout::{Layout, WidgetID, WidgetPair},
|
||||
layout::{WidgetID, WidgetPair},
|
||||
renderer_vk::{
|
||||
text::{FontWeight, TextStyle},
|
||||
util::centered_matrix,
|
||||
},
|
||||
widget::{
|
||||
EventResult, WidgetData,
|
||||
ConstructEssentials, EventResult, WidgetData,
|
||||
label::{WidgetLabel, WidgetLabelParams},
|
||||
rectangle::{WidgetRectangle, WidgetRectangleParams},
|
||||
util::WLength,
|
||||
@@ -267,12 +266,10 @@ fn register_event_mouse_release<U1, U2>(
|
||||
}
|
||||
|
||||
pub fn construct<U1, U2>(
|
||||
globals: &mut Globals,
|
||||
layout: &mut Layout,
|
||||
listeners: &mut EventListenerCollection<U1, U2>,
|
||||
parent: WidgetID,
|
||||
ess: ConstructEssentials<U1, U2>,
|
||||
params: Params,
|
||||
) -> anyhow::Result<(WidgetPair, Rc<ComponentButton>)> {
|
||||
let globals = ess.layout.state.globals.clone();
|
||||
let mut style = params.style;
|
||||
|
||||
// force-override style
|
||||
@@ -285,7 +282,7 @@ pub fn construct<U1, U2>(
|
||||
let color = if let Some(color) = params.color {
|
||||
color
|
||||
} else {
|
||||
globals.defaults.button_color
|
||||
globals.get().defaults.button_color
|
||||
};
|
||||
|
||||
let border_color = if let Some(border_color) = params.border_color {
|
||||
@@ -306,8 +303,8 @@ pub fn construct<U1, U2>(
|
||||
Color::new(color.r + 0.5, color.g + 0.5, color.g + 0.5, color.a + 0.5)
|
||||
};
|
||||
|
||||
let (root, _) = layout.add_child(
|
||||
parent,
|
||||
let (root, _) = ess.layout.add_child(
|
||||
ess.parent,
|
||||
WidgetRectangle::create(WidgetRectangleParams {
|
||||
color,
|
||||
color2: get_color2(&color),
|
||||
@@ -324,10 +321,10 @@ pub fn construct<U1, U2>(
|
||||
let light_text = (color.r + color.g + color.b) < 1.5;
|
||||
|
||||
let id_label = if let Some(content) = params.text {
|
||||
let (label, _node_label) = layout.add_child(
|
||||
let (label, _node_label) = ess.layout.add_child(
|
||||
id_rect,
|
||||
WidgetLabel::create(
|
||||
globals,
|
||||
&mut globals.get(),
|
||||
WidgetLabelParams {
|
||||
content,
|
||||
style: TextStyle {
|
||||
@@ -365,13 +362,13 @@ pub fn construct<U1, U2>(
|
||||
|
||||
let mut base = ComponentBase::default();
|
||||
|
||||
register_event_mouse_enter(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_leave(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_press(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_release(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_enter(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_leave(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_press(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_release(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
|
||||
let button = Rc::new(ComponentButton { base, data, state });
|
||||
|
||||
layout.defer_component_init(Component(button.clone()));
|
||||
ess.layout.defer_component_init(Component(button.clone()));
|
||||
Ok((root, button))
|
||||
}
|
||||
|
||||
@@ -10,10 +10,10 @@ use crate::{
|
||||
drawing::Color,
|
||||
event::{CallbackDataCommon, EventAlterables, EventListenerCollection, EventListenerKind, ListenerHandleVec},
|
||||
i18n::Translation,
|
||||
layout::{self, Layout, LayoutState, WidgetID, WidgetPair},
|
||||
layout::{self, LayoutState, WidgetID, WidgetPair},
|
||||
renderer_vk::text::{FontWeight, TextStyle},
|
||||
widget::{
|
||||
EventResult,
|
||||
ConstructEssentials, EventResult,
|
||||
label::{WidgetLabel, WidgetLabelParams},
|
||||
rectangle::{WidgetRectangle, WidgetRectangleParams},
|
||||
util::WLength,
|
||||
@@ -248,9 +248,7 @@ fn register_event_mouse_release<U1, U2>(
|
||||
}
|
||||
|
||||
pub fn construct<U1, U2>(
|
||||
layout: &mut Layout,
|
||||
listeners: &mut EventListenerCollection<U1, U2>,
|
||||
parent: WidgetID,
|
||||
ess: ConstructEssentials<U1, U2>,
|
||||
params: Params,
|
||||
) -> anyhow::Result<(WidgetPair, Rc<ComponentCheckbox>)> {
|
||||
let mut style = params.style;
|
||||
@@ -268,10 +266,10 @@ pub fn construct<U1, U2>(
|
||||
//style.align_self = Some(taffy::AlignSelf::Start); // do not stretch self to the parent
|
||||
style.gap = length(4.0);
|
||||
|
||||
let globals = layout.state.globals.clone();
|
||||
let globals = ess.layout.state.globals.clone();
|
||||
|
||||
let (root, _) = layout.add_child(
|
||||
parent,
|
||||
let (root, _) = ess.layout.add_child(
|
||||
ess.parent,
|
||||
WidgetRectangle::create(WidgetRectangleParams {
|
||||
color: Color::new(1.0, 1.0, 1.0, 0.0),
|
||||
border_color: Color::new(1.0, 1.0, 1.0, 0.0),
|
||||
@@ -288,7 +286,7 @@ pub fn construct<U1, U2>(
|
||||
height: length(params.box_size),
|
||||
};
|
||||
|
||||
let (outer_box, _) = layout.add_child(
|
||||
let (outer_box, _) = ess.layout.add_child(
|
||||
id_container,
|
||||
WidgetRectangle::create(WidgetRectangleParams {
|
||||
border: 2.0,
|
||||
@@ -306,7 +304,7 @@ pub fn construct<U1, U2>(
|
||||
},
|
||||
)?;
|
||||
|
||||
let (inner_box, _) = layout.add_child(
|
||||
let (inner_box, _) = ess.layout.add_child(
|
||||
outer_box.id,
|
||||
WidgetRectangle::create(WidgetRectangleParams {
|
||||
round: WLength::Units(5.0),
|
||||
@@ -322,7 +320,7 @@ pub fn construct<U1, U2>(
|
||||
},
|
||||
)?;
|
||||
|
||||
let (label, _node_label) = layout.add_child(
|
||||
let (label, _node_label) = ess.layout.add_child(
|
||||
id_container,
|
||||
WidgetLabel::create(
|
||||
&mut globals.get(),
|
||||
@@ -352,13 +350,13 @@ pub fn construct<U1, U2>(
|
||||
|
||||
let mut base = ComponentBase::default();
|
||||
|
||||
register_event_mouse_enter(&data, state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_leave(&data, state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_press(&data, state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_release(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_enter(&data, state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_leave(&data, state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_press(&data, state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_release(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
|
||||
let checkbox = Rc::new(ComponentCheckbox { base, data, state });
|
||||
|
||||
layout.defer_component_init(Component(checkbox.clone()));
|
||||
ess.layout.defer_component_init(Component(checkbox.clone()));
|
||||
Ok((root, checkbox))
|
||||
}
|
||||
|
||||
@@ -9,13 +9,13 @@ use crate::{
|
||||
drawing::{self},
|
||||
event::{self, CallbackDataCommon, EventListenerCollection, EventListenerKind, ListenerHandleVec},
|
||||
i18n::Translation,
|
||||
layout::{Layout, WidgetID, WidgetPair},
|
||||
layout::{WidgetID, WidgetPair},
|
||||
renderer_vk::{
|
||||
text::{FontWeight, HorizontalAlign, TextStyle},
|
||||
util,
|
||||
},
|
||||
widget::{
|
||||
EventResult,
|
||||
ConstructEssentials, EventResult,
|
||||
div::WidgetDiv,
|
||||
label::{WidgetLabel, WidgetLabelParams},
|
||||
rectangle::{WidgetRectangle, WidgetRectangleParams},
|
||||
@@ -308,9 +308,7 @@ fn register_event_mouse_release<U1, U2>(
|
||||
}
|
||||
|
||||
pub fn construct<U1, U2>(
|
||||
layout: &mut Layout,
|
||||
listeners: &mut EventListenerCollection<U1, U2>,
|
||||
parent: WidgetID,
|
||||
ess: ConstructEssentials<U1, U2>,
|
||||
params: Params,
|
||||
) -> anyhow::Result<(WidgetPair, Rc<ComponentSlider>)> {
|
||||
let mut style = params.style;
|
||||
@@ -318,10 +316,10 @@ pub fn construct<U1, U2>(
|
||||
style.min_size = style.size;
|
||||
style.max_size = style.size;
|
||||
|
||||
let (root, slider_body_node) = layout.add_child(parent, WidgetDiv::create(), style)?;
|
||||
let (root, slider_body_node) = ess.layout.add_child(ess.parent, WidgetDiv::create(), style)?;
|
||||
let body_id = root.id;
|
||||
|
||||
let (_background_id, _) = layout.add_child(
|
||||
let (_background_id, _) = ess.layout.add_child(
|
||||
body_id,
|
||||
WidgetRectangle::create(WidgetRectangleParams {
|
||||
color: BODY_COLOR,
|
||||
@@ -354,9 +352,11 @@ pub fn construct<U1, U2>(
|
||||
};
|
||||
|
||||
// invisible outer handle body
|
||||
let (slider_handle, slider_handle_node) = layout.add_child(body_id, WidgetDiv::create(), slider_handle_style)?;
|
||||
let (slider_handle, slider_handle_node) = ess
|
||||
.layout
|
||||
.add_child(body_id, WidgetDiv::create(), slider_handle_style)?;
|
||||
|
||||
let (slider_handle_rect, _) = layout.add_child(
|
||||
let (slider_handle_rect, _) = ess.layout.add_child(
|
||||
slider_handle.id,
|
||||
WidgetRectangle::create(WidgetRectangleParams {
|
||||
color: HANDLE_COLOR,
|
||||
@@ -381,9 +381,9 @@ pub fn construct<U1, U2>(
|
||||
values: params.values,
|
||||
};
|
||||
|
||||
let globals = layout.state.globals.clone();
|
||||
let globals = ess.layout.state.globals.clone();
|
||||
|
||||
let (slider_text, _) = layout.add_child(
|
||||
let (slider_text, _) = ess.layout.add_child(
|
||||
slider_handle.id,
|
||||
WidgetLabel::create(
|
||||
&mut globals.get(),
|
||||
@@ -412,15 +412,15 @@ pub fn construct<U1, U2>(
|
||||
|
||||
let mut base = ComponentBase::default();
|
||||
|
||||
register_event_mouse_enter(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_leave(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_motion(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_press(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_leave(data.clone(), state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_release(&data, state.clone(), listeners, &mut base.lhandles);
|
||||
register_event_mouse_enter(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_leave(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_motion(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_press(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_leave(data.clone(), state.clone(), ess.listeners, &mut base.lhandles);
|
||||
register_event_mouse_release(&data, state.clone(), ess.listeners, &mut base.lhandles);
|
||||
|
||||
let slider = Rc::new(ComponentSlider { base, data, state });
|
||||
|
||||
layout.defer_component_init(Component(slider.clone()));
|
||||
ess.layout.defer_component_init(Component(slider.clone()));
|
||||
Ok((root, slider))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user