Skip to content
Snippets Groups Projects
Verified Commit 899675e0 authored by Louis's avatar Louis :fire:
Browse files

Update widget registration params

parent 0a268334
No related branches found
No related tags found
No related merge requests found
[package]
name = "advent_ui"
version = "0.2.0"
version = "0.2.1"
edition = "2021"
[features]
......
......@@ -3,15 +3,14 @@ use std::marker::PhantomData;
use bevy::asset::Assets;
use bevy::ecs::system::SystemParam;
use bevy::prelude::{
Commands, Component, DespawnRecursiveExt, DetectChanges, Entity, In, ParamSet, Query, Res,
ResMut, Resource, With,
Commands, Component, DespawnRecursiveExt, DetectChanges, Entity, In, Query, Res, ResMut,
Resource, With,
};
use kayak_font::{Alignment, KayakFont, TextProperties};
use kayak_ui::prelude::{
EventDispatcherContext, EventType, FontMapping, KEvent, KayakRootContext, KayakWidgetContext,
OnEvent, WidgetParam, WidgetState,
};
use kayak_ui::widgets::KayakApp;
use micro_musicbox::prelude::MusicBox;
use crate::theme::ThemeMapping;
......@@ -140,7 +139,8 @@ macro_rules! register_widget_with_many_resources {
$ctx.add_widget_system(
$crate::kayak_ui::prelude::Widget::get_name(&$props::default()),
|
$crate::bevy::prelude::In((widget_context, entity, previous_entity)): $crate::bevy::prelude::In<($crate::kayak_ui::prelude::KayakWidgetContext, $crate::bevy::prelude::Entity, $crate::bevy::prelude::Entity)>,
$crate::bevy::prelude::In((entity, previous_entity)): $crate::bevy::prelude::In<($crate::bevy::prelude::Entity, $crate::bevy::prelude::Entity)>,
widget_context: $crate::kayak_ui::prelude::KayakWidgetContext,
$( $name: $crate::bevy::prelude::Res<$resource> ),+,
widget_param: $crate::kayak_ui::prelude::WidgetParam<$props, $state>,
| {
......@@ -159,8 +159,8 @@ macro_rules! register_complex_widget {
$ctx.add_widget_system(
$crate::kayak_ui::prelude::Widget::get_name(&$props::default()),
|
$crate::bevy::prelude::In((widget_context, entity, previous_entity)): $crate::bevy::prelude::In<($crate::kayak_ui::prelude::KayakWidgetContext, $crate::bevy::prelude::Entity, $crate::bevy::prelude::Entity)>,
$( $r_name: $crate::bevy::prelude::Res<$resource> ),*,
$crate::bevy::prelude::In((entity, previous_entity)): $crate::bevy::prelude::In<($crate::bevy::prelude::Entity, $crate::bevy::prelude::Entity)>,
widget_context: $crate::kayak_ui::prelude::KayakWidgetContext,$( $r_name: $crate::bevy::prelude::Res<$resource> ),*,
$( $c_name: $crate::bevy::prelude::Query<$crate::bevy::prelude::Entity, $crate::bevy::prelude::Changed<$context>> ),*,
widget_param: $crate::kayak_ui::prelude::WidgetParam<$props, $state>,
| {
......@@ -185,9 +185,10 @@ pub fn widget_update_with_resource<
State: PartialEq + Component + Clone,
External: Resource,
>(
In((widget_context, entity, previous_entity)): In<(KayakWidgetContext, Entity, Entity)>,
resource: Res<External>,
In((entity, previous_entity)): In<(Entity, Entity)>,
widget_context: Res<KayakWidgetContext>,
widget_param: WidgetParam<Props, State>,
resource: Res<External>,
) -> bool {
widget_param.has_changed(&widget_context, entity, previous_entity) || resource.is_changed()
}
......@@ -264,37 +265,6 @@ pub mod context {
}
}
pub type OnEventParams = In<(EventDispatcherContext, WidgetState, KEvent, Entity)>;
#[macro_export]
macro_rules! on_button_click {
($param_type: ty, $func_body: expr) => {
$crate::kayak_ui::prelude::OnEvent::new(
move |$crate::bevy::prelude::In((
event_dispatcher_context,
_widget_state,
event,
_entity,
)): $crate::bevy::prelude::In<(
$crate::kayak_ui::prelude::EventDispatcherContext,
$crate::kayak_ui::prelude::WidgetState,
$crate::kayak_ui::prelude::KEvent,
$crate::bevy::prelude::Entity,
)>,
params: $param_type| {
match event.event_type {
$crate::kayak_ui::prelude::EventType::Click(..) => {
$func_body(params);
}
_ => {}
}
(event_dispatcher_context, event)
},
)
};
}
pub trait HasDisabledState {
fn is_disabled(&self) -> bool;
fn set_disabled(&mut self, value: bool);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment