diff --git a/Cargo.toml b/Cargo.toml index a4612d0f17c5ef54a8e88785e39c06c6532b69fe..f2db930553f3555bc68965ed6c24f9cc054af857 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "advent_ui" -version = "0.2.0" +version = "0.2.1" edition = "2021" [features] diff --git a/src/utilities.rs b/src/utilities.rs index f38511f08c85e6d305368849659f17a99be0b19f..4820f7a132335e655cbd808eab9b4f1fb74d0a1f 100644 --- a/src/utilities.rs +++ b/src/utilities.rs @@ -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);