1use bevy_app::Propagate;
2use bevy_color::{Alpha, Srgba};
3use bevy_ecs::{
4 event::EntityEvent, hierarchy::Children, observer::On, reflect::ReflectComponent,
5 system::Commands,
6};
7use bevy_reflect::{prelude::ReflectDefault, Reflect};
8use bevy_scene::{bsn, bsn_list, on, Scene, SceneComponent, SceneList};
9use bevy_text::FontWeight;
10use bevy_ui::{
11 px, vh, vw, widget::Text, AlignItems, BorderRadius, BoxShadow, Display, FixedNode,
12 FlexDirection, GlobalZIndex, JustifyContent, Node, OverrideClip, PositionType, UiRect, Val,
13};
14use bevy_ui_widgets::{
15 Activate, Dialog, DialogDragHandle, ModalDialog, ModalDialogBarrier, RequestClose,
16};
17
18use crate::{
19 constants::{fonts, icons, size},
20 controls::{ButtonVariant, FeathersToolButton},
21 display::icon,
22 font_styles::InheritableFont,
23 theme::{
24 InheritableThemeTextColor, SurfaceLevel, ThemeBackgroundColor, ThemeBorderColor,
25 ThemeContext, ThemedText,
26 },
27 tokens,
28};
29
30pub struct FeathersDialogProps {
32 pub contents: Box<dyn SceneList>,
34 pub width: Val,
36}
37
38impl Default for FeathersDialogProps {
39 fn default() -> Self {
40 Self {
41 contents: Box::new(bevy_scene::SceneListScope(())bsn_list! {}),
42 width: Val::Auto,
43 }
44 }
45}
46
47#[derive(impl bevy_ecs::component::Component for FeathersDialog where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {
required_components.register_required(||
bevy_scene::SceneComponentInfo::new::<FeathersDialog>(false));
}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}
impl bevy_scene::SceneComponent for FeathersDialog where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
type Props = FeathersDialogProps;
fn scene(props: Self::Props) -> impl bevy_scene::Scene {
(Self::scene(props),
<bevy_scene::InitTemplate<<FeathersDialog as
bevy_ecs::template::FromTemplate>::Template> as
::core::default::Default>::default(),
bevy_scene::template_value(bevy_scene::SceneComponentInfo::new::<FeathersDialog>(true)))
}
}SceneComponent, #[automatically_derived]impl ::core::default::Default for FeathersDialog {
#[inline]
fn default() -> Self { FeathersDialog {} }
}Default, #[automatically_derived]impl ::core::clone::Clone for FeathersDialog {
#[inline]
fn clone(&self) -> Self { FeathersDialog }
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for FeathersDialog where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert(<bevy_reflect::ReflectFromPtr as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<ReflectDefault, Self,
_>(());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {}
}
impl bevy_reflect::Typed for FeathersDialog where {
#[inline(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for FeathersDialog where {
fn type_path() -> &'static str {
"bevy_feathers::controls::dialog::FeathersDialog"
}
fn short_type_path() -> &'static str { "FeathersDialog" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("FeathersDialog")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog")
}
}
impl bevy_reflect::Reflect for FeathersDialog where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<FeathersDialog
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for FeathersDialog where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index { _ => ::core::option::Option::None, }
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name { _ => ::core::option::Option::None, }
}
fn field_len(&self) -> usize { 0usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
::core::result::Result::Ok(dynamic)
}
}
impl bevy_reflect::PartialReflect for FeathersDialog where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for FeathersDialog where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect)]
49#[scene(FeathersDialogProps)]
50#[reflect(Component, Clone, Default)]
51pub struct FeathersDialog;
52
53impl FeathersDialog {
54 pub fn scene(props: FeathersDialogProps) -> impl Scene {
56 bevy_scene::SceneScope({
let _expr0 = { px(0) }.into();
let _expr1 = { px(0) }.into();
let _expr2 = { px(0) }.into();
let _expr3 = { px(0) }.into();
let _expr4 = { UiRect::axes(vw(0.05), vh(0.05)) }.into();
let _expr5 = { BorderRadius::all(px(4)) }.into();
let _expr6 = { UiRect::all(px(6.0)) }.into();
let _expr7 = { UiRect::all(px(1.0)) }.into();
let _expr8 = { px(6.0) }.into();
let _expr9 = { props.width }.into();
let _expr10 = { tokens::DIALOG_BG }.into();
let _expr11 = { tokens::DIALOG_BORDER }.into();
let _expr12 = { tokens::DIALOG_TEXT }.into();
(bevy_scene::SceneFunction(move |_context, _scene|
{
let __value =
_scene.get_or_insert_from_template::<Node>(_context);
__value.display = Display::Flex.into();
__value.position_type = PositionType::Absolute.into();
__value.left = _expr0;
__value.right = _expr1;
__value.top = _expr2;
__value.bottom = _expr3;
__value.align_items = AlignItems::Center.into();
__value.justify_content = JustifyContent::Center.into();
__value.padding = _expr4;
let _ =
_scene.get_or_insert_from_template::<ModalDialogBarrier>(_context);
let _ =
_scene.get_or_insert_from_template::<FixedNode>(_context);
let _ =
_scene.get_or_insert_from_template::<OverrideClip>(_context);
let __value =
_scene.get_or_insert_from_template::<GlobalZIndex>(_context);
__value.0 = 99;
}),
bevy_scene::RelatedScenes::<Children>::new(bevy_scene::EntityScene((bevy_scene::SceneFunction(move
|_context, _scene|
{
let __value =
_scene.get_or_insert_from_template::<Node>(_context);
__value.display = Display::Flex.into();
__value.flex_direction = FlexDirection::Column.into();
__value.align_items = AlignItems::Stretch.into();
__value.border_radius = _expr5;
__value.padding = _expr6;
__value.border = _expr7;
__value.row_gap = _expr8;
__value.width = _expr9;
let _ =
_scene.get_or_insert_from_template::<ModalDialog>(_context);
let __value =
_scene.get_or_insert_from_template::<ThemeBackgroundColor>(_context);
__value.0 = _expr10;
let __value =
_scene.get_or_insert_from_template::<ThemeBorderColor>(_context);
__value.0 = _expr11;
let __value =
_scene.get_or_insert_from_template::<InheritableThemeTextColor>(_context);
__value.0 = _expr12;
_scene.insert_template(<BoxShadow as
bevy_ecs::template::FromTemplate>::Template::new(Srgba::BLACK.with_alpha(0.9).into(),
px(0), px(0), px(1), px(4)));
}),
bevy_scene::RelatedScenes::<Children>::new(props.contents)))))
});bsn! {
57 Node {
58 display: Display::Flex,
59 position_type: PositionType::Absolute,
60 left: px(0),
61 right: px(0),
62 top: px(0),
63 bottom: px(0),
64 align_items: AlignItems::Center,
65 justify_content: JustifyContent::Center,
66 padding: UiRect::axes(vw(0.05), vh(0.05)),
67 }
68 ModalDialogBarrier
69 FixedNode
70 OverrideClip
71 GlobalZIndex(99) Children [
73 Node {
74 display: Display::Flex,
75 flex_direction: FlexDirection::Column,
76 align_items: AlignItems::Stretch,
77 border_radius: BorderRadius::all(px(4)),
78 padding: UiRect::all(px(6.0)),
79 border: UiRect::all(px(1.0)),
80 row_gap: px(6.0),
81 width: {props.width},
82 }
83 ModalDialog
84 ThemeBackgroundColor(tokens::DIALOG_BG)
85 ThemeBorderColor(tokens::DIALOG_BORDER)
86 InheritableThemeTextColor(tokens::DIALOG_TEXT)
87 BoxShadow::new(
88 Srgba::BLACK.with_alpha(0.9).into(),
89 px(0),
90 px(0),
91 px(1),
92 px(4),
93 )
94 Children [
95 {props.contents}
96 ]
97 ]
98 }
99 }
100}
101
102pub struct FeathersFloatingDialogProps {
104 pub title: String,
106 pub contents: Box<dyn SceneList>,
108 pub width: Val,
110 pub left: Val,
112 pub top: Val,
114}
115
116impl Default for FeathersFloatingDialogProps {
117 fn default() -> Self {
118 Self {
119 title: String::new(),
120 contents: Box::new(bevy_scene::SceneListScope(())bsn_list! {}),
121 width: Val::Auto,
122 left: px(120),
123 top: px(120),
124 }
125 }
126}
127
128#[derive(impl bevy_ecs::component::Component for FeathersFloatingDialog where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {
required_components.register_required(||
bevy_scene::SceneComponentInfo::new::<FeathersFloatingDialog>(false));
}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}
impl bevy_scene::SceneComponent for FeathersFloatingDialog where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
type Props = FeathersFloatingDialogProps;
fn scene(props: Self::Props) -> impl bevy_scene::Scene {
(Self::scene(props),
<bevy_scene::InitTemplate<<FeathersFloatingDialog as
bevy_ecs::template::FromTemplate>::Template> as
::core::default::Default>::default(),
bevy_scene::template_value(bevy_scene::SceneComponentInfo::new::<FeathersFloatingDialog>(true)))
}
}SceneComponent, #[automatically_derived]impl ::core::default::Default for
FeathersFloatingDialog {
#[inline]
fn default() -> Self { FeathersFloatingDialog {} }
}Default, #[automatically_derived]impl ::core::clone::Clone for FeathersFloatingDialog {
#[inline]
fn clone(&self) -> Self { FeathersFloatingDialog }
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for FeathersFloatingDialog
where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert(<bevy_reflect::ReflectFromPtr as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<ReflectDefault, Self,
_>(());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {}
}
impl bevy_reflect::Typed for FeathersFloatingDialog where {
#[inline(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for FeathersFloatingDialog where {
fn type_path() -> &'static str {
"bevy_feathers::controls::dialog::FeathersFloatingDialog"
}
fn short_type_path() -> &'static str { "FeathersFloatingDialog" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("FeathersFloatingDialog")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog")
}
}
impl bevy_reflect::Reflect for FeathersFloatingDialog where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<FeathersFloatingDialog
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for FeathersFloatingDialog where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index { _ => ::core::option::Option::None, }
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name { _ => ::core::option::Option::None, }
}
fn field_len(&self) -> usize { 0usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
::core::result::Result::Ok(dynamic)
}
}
impl bevy_reflect::PartialReflect for FeathersFloatingDialog where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for FeathersFloatingDialog where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect)]
130#[scene(FeathersFloatingDialogProps)]
131#[reflect(Component, Clone, Default)]
132pub struct FeathersFloatingDialog;
133
134impl FeathersFloatingDialog {
135 pub fn scene(props: FeathersFloatingDialogProps) -> impl Scene {
137 bevy_scene::SceneScope({
let _expr0 = { props.left }.into();
let _expr1 = { props.top }.into();
let _expr2 = { BorderRadius::all(px(4)) }.into();
let _expr3 = { UiRect::all(px(1.0)) }.into();
let _expr4 = { props.width }.into();
let _expr5 = { tokens::DIALOG_BG }.into();
let _expr6 = { tokens::DIALOG_BORDER }.into();
let _expr7 = { tokens::DIALOG_TEXT }.into();
let _expr8 = { UiRect::all(px(6.0)) }.into();
let _expr9 = { tokens::DIALOG_HEADER_TEXT }.into();
let _expr10 = { tokens::DIALOG_HEADER_BG }.into();
let _expr11 = { fonts::REGULAR }.into();
let _expr12 = { size::HEADER_FONT }.into();
let _expr13 = { props.title }.into();
(bevy_scene::SceneFunction(move |_context, _scene|
{
let __value =
_scene.get_or_insert_from_template::<Node>(_context);
__value.display = Display::Flex.into();
__value.flex_direction = FlexDirection::Column.into();
__value.align_items = AlignItems::Stretch.into();
__value.position_type = PositionType::Absolute.into();
__value.left = _expr0;
__value.top = _expr1;
__value.border_radius = _expr2;
__value.border = _expr3;
__value.width = _expr4;
let _ =
_scene.get_or_insert_from_template::<Dialog>(_context);
let __value =
_scene.get_or_insert_from_template::<ThemeBackgroundColor>(_context);
__value.0 = _expr5;
let __value =
_scene.get_or_insert_from_template::<ThemeBorderColor>(_context);
__value.0 = _expr6;
let __value =
_scene.get_or_insert_from_template::<InheritableThemeTextColor>(_context);
__value.0 = _expr7;
_scene.insert_template(<BoxShadow as
bevy_ecs::template::FromTemplate>::Template::new(Srgba::BLACK.with_alpha(0.9).into(),
px(0), px(0), px(1), px(4)));
_scene.insert_template(on(|close: On<RequestClose>,
mut commands: Commands|
{ commands.entity(close.event_target()).despawn(); }));
}),
bevy_scene::RelatedScenes::<Children>::new((bevy_scene::EntityScene((bevy_scene::SceneFunction(move
|_context, _scene|
{
let __value =
_scene.get_or_insert_from_template::<Node>(_context);
__value.display = Display::Flex.into();
__value.flex_direction = FlexDirection::Row.into();
__value.align_items = AlignItems::Center.into();
__value.justify_content =
JustifyContent::SpaceBetween.into();
__value.padding = _expr8;
let _ =
_scene.get_or_insert_from_template::<DialogDragHandle>(_context);
let __value =
_scene.get_or_insert_from_template::<InheritableThemeTextColor>(_context);
__value.0 = _expr9;
let __value =
_scene.get_or_insert_from_template::<ThemeBackgroundColor>(_context);
__value.0 = _expr10;
let __value =
_scene.get_or_insert_from_template::<Propagate<ThemeContext>>(_context);
bevy_scene::macro_utils::touch_type::<ThemeContext>();
__value.0.0 = SurfaceLevel::Higher.into();
let __value =
_scene.get_or_insert_from_template::<InheritableFont>(_context);
__value.font = _expr11;
__value.font_size = _expr12;
__value.weight = FontWeight::BOLD.into();
}),
bevy_scene::RelatedScenes::<Children>::new((bevy_scene::EntityScene(bevy_scene::SceneFunction(move
|_context, _scene|
{
let __value =
_scene.get_or_insert_from_template::<Text>(_context);
__value.0 = _expr13;
let _ =
_scene.get_or_insert_from_template::<ThemedText>(_context);
})),
bevy_scene::EntityScene({
let mut __props =
<<FeathersDialogClose as bevy_scene::SceneComponent>::Props
as ::core::default::Default>::default();
let __props_ref = &mut __props;
bevy_scene::macro_utils::touch_type::<FeathersDialogClose>();
<FeathersDialogClose as
bevy_scene::SceneComponent>::scene(__props)
}))))),
bevy_scene::EntityScene(({
let mut __props =
<<FeathersDialogBody as bevy_scene::SceneComponent>::Props
as ::core::default::Default>::default();
let __props_ref = &mut __props;
bevy_scene::macro_utils::touch_type::<FeathersDialogBody>();
<FeathersDialogBody as
bevy_scene::SceneComponent>::scene(__props)
},
bevy_scene::RelatedScenes::<Children>::new(props.contents))))))
});bsn! {
138 Node {
139 display: Display::Flex,
140 flex_direction: FlexDirection::Column,
141 align_items: AlignItems::Stretch,
142 position_type: PositionType::Absolute,
143 left: {props.left},
144 top: {props.top},
145 border_radius: BorderRadius::all(px(4)),
146 border: UiRect::all(px(1.0)),
147 width: {props.width},
148 }
149 Dialog
150 ThemeBackgroundColor(tokens::DIALOG_BG)
151 ThemeBorderColor(tokens::DIALOG_BORDER)
152 InheritableThemeTextColor(tokens::DIALOG_TEXT)
153 BoxShadow::new(
154 Srgba::BLACK.with_alpha(0.9).into(),
155 px(0),
156 px(0),
157 px(1),
158 px(4),
159 )
160 on(|close: On<RequestClose>, mut commands: Commands| {
162 commands.entity(close.event_target()).despawn();
163 })
164 Children [
165 Node {
167 display: Display::Flex,
168 flex_direction: FlexDirection::Row,
169 align_items: AlignItems::Center,
170 justify_content: JustifyContent::SpaceBetween,
171 padding: UiRect::all(px(6.0)),
172 }
173 DialogDragHandle
174 InheritableThemeTextColor(tokens::DIALOG_HEADER_TEXT)
175 ThemeBackgroundColor(tokens::DIALOG_HEADER_BG)
176 Propagate::<ThemeContext>(ThemeContext(SurfaceLevel::Higher))
177 InheritableFont {
178 font: fonts::REGULAR,
179 font_size: size::HEADER_FONT,
180 weight: FontWeight::BOLD,
181 }
182 Children [
183 Text({props.title}) ThemedText
184 --
185 @FeathersDialogClose
186 ]
187 --
188 @FeathersDialogBody
189 Children [
190 {props.contents}
191 ]
192 ]
193 }
194 }
195}
196
197#[derive(impl bevy_ecs::component::Component for FeathersDialogHeader where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {
required_components.register_required(||
bevy_scene::SceneComponentInfo::new::<FeathersDialogHeader>(false));
}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}
impl bevy_scene::SceneComponent for FeathersDialogHeader where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
type Props = ();
fn scene(props: Self::Props) -> impl bevy_scene::Scene {
(Self::scene(),
<bevy_scene::InitTemplate<<FeathersDialogHeader as
bevy_ecs::template::FromTemplate>::Template> as
::core::default::Default>::default(),
bevy_scene::template_value(bevy_scene::SceneComponentInfo::new::<FeathersDialogHeader>(true)))
}
}SceneComponent, #[automatically_derived]impl ::core::default::Default for FeathersDialogHeader
{
#[inline]
fn default() -> Self { FeathersDialogHeader {} }
}Default, #[automatically_derived]impl ::core::clone::Clone for FeathersDialogHeader {
#[inline]
fn clone(&self) -> Self { FeathersDialogHeader }
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for FeathersDialogHeader where
{
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert(<bevy_reflect::ReflectFromPtr as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<ReflectDefault, Self,
_>(());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {}
}
impl bevy_reflect::Typed for FeathersDialogHeader where {
#[inline(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for FeathersDialogHeader where {
fn type_path() -> &'static str {
"bevy_feathers::controls::dialog::FeathersDialogHeader"
}
fn short_type_path() -> &'static str { "FeathersDialogHeader" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("FeathersDialogHeader")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog")
}
}
impl bevy_reflect::Reflect for FeathersDialogHeader where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<FeathersDialogHeader
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for FeathersDialogHeader where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index { _ => ::core::option::Option::None, }
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name { _ => ::core::option::Option::None, }
}
fn field_len(&self) -> usize { 0usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
::core::result::Result::Ok(dynamic)
}
}
impl bevy_reflect::PartialReflect for FeathersDialogHeader where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for FeathersDialogHeader where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect)]
199#[reflect(Component, Clone, Default)]
200pub struct FeathersDialogHeader;
201
202impl FeathersDialogHeader {
203 pub fn scene() -> impl Scene {
205 bevy_scene::SceneScope({
let _expr0 = { UiRect::all(px(6.0)) }.into();
let _expr1 = { tokens::DIALOG_HEADER_BG }.into();
let _expr2 = { fonts::REGULAR }.into();
let _expr3 = { size::HEADER_FONT }.into();
bevy_scene::SceneFunction(move |_context, _scene|
{
let __value =
_scene.get_or_insert_from_template::<Node>(_context);
__value.display = Display::Flex.into();
__value.flex_direction = FlexDirection::Row.into();
__value.align_items = AlignItems::Center.into();
__value.justify_content =
JustifyContent::SpaceBetween.into();
__value.padding = _expr0;
let __value =
_scene.get_or_insert_from_template::<Propagate<ThemeContext>>(_context);
bevy_scene::macro_utils::touch_type::<ThemeContext>();
__value.0.0 = SurfaceLevel::Higher.into();
let __value =
_scene.get_or_insert_from_template::<ThemeBackgroundColor>(_context);
__value.0 = _expr1;
let __value =
_scene.get_or_insert_from_template::<InheritableFont>(_context);
__value.font = _expr2;
__value.font_size = _expr3;
__value.weight = FontWeight::BOLD.into();
})
});bsn! {
206 Node {
207 display: Display::Flex,
208 flex_direction: FlexDirection::Row,
209 align_items: AlignItems::Center,
210 justify_content: JustifyContent::SpaceBetween,
211 padding: UiRect::all(px(6.0)),
212 }
213 Propagate::<ThemeContext>(ThemeContext(SurfaceLevel::Higher))
214 ThemeBackgroundColor(tokens::DIALOG_HEADER_BG)
215 InheritableFont {
216 font: fonts::REGULAR,
217 font_size: size::HEADER_FONT,
218 weight: FontWeight::BOLD,
219 }
220 }
221 }
222}
223
224#[derive(impl bevy_ecs::component::Component for FeathersDialogClose where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {
required_components.register_required(||
bevy_scene::SceneComponentInfo::new::<FeathersDialogClose>(false));
}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}
impl bevy_scene::SceneComponent for FeathersDialogClose where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
type Props = ();
fn scene(props: Self::Props) -> impl bevy_scene::Scene {
(Self::scene(),
<bevy_scene::InitTemplate<<FeathersDialogClose as
bevy_ecs::template::FromTemplate>::Template> as
::core::default::Default>::default(),
bevy_scene::template_value(bevy_scene::SceneComponentInfo::new::<FeathersDialogClose>(true)))
}
}SceneComponent, #[automatically_derived]impl ::core::default::Default for FeathersDialogClose
{
#[inline]
fn default() -> Self { FeathersDialogClose {} }
}Default, #[automatically_derived]impl ::core::clone::Clone for FeathersDialogClose {
#[inline]
fn clone(&self) -> Self { FeathersDialogClose }
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for FeathersDialogClose where
{
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert(<bevy_reflect::ReflectFromPtr as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<ReflectDefault, Self,
_>(());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {}
}
impl bevy_reflect::Typed for FeathersDialogClose where {
#[inline(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for FeathersDialogClose where {
fn type_path() -> &'static str {
"bevy_feathers::controls::dialog::FeathersDialogClose"
}
fn short_type_path() -> &'static str { "FeathersDialogClose" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("FeathersDialogClose")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog")
}
}
impl bevy_reflect::Reflect for FeathersDialogClose where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<FeathersDialogClose
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for FeathersDialogClose where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index { _ => ::core::option::Option::None, }
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name { _ => ::core::option::Option::None, }
}
fn field_len(&self) -> usize { 0usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
::core::result::Result::Ok(dynamic)
}
}
impl bevy_reflect::PartialReflect for FeathersDialogClose where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for FeathersDialogClose where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect)]
226#[reflect(Component, Clone, Default)]
227pub struct FeathersDialogClose;
228
229impl FeathersDialogClose {
230 pub fn scene() -> impl Scene {
232 bevy_scene::SceneScope({
let _expr0 =
{
bevy_scene::SceneScope(bevy_scene::SceneScope(icon(icons::X)))
}.into();
({
let mut __props =
<<FeathersToolButton as bevy_scene::SceneComponent>::Props
as ::core::default::Default>::default();
let __props_ref = &mut __props;
bevy_scene::macro_utils::touch_type::<FeathersToolButton>();
__props.variant = ButtonVariant::Plain.into();
__props.caption = _expr0;
<FeathersToolButton as
bevy_scene::SceneComponent>::scene(__props)
},
bevy_scene::SceneFunction(move |_context, _scene|
{
_scene.insert_template(on(|activate: On<Activate>,
mut commands: Commands|
{
commands.trigger(RequestClose {
source: activate.event_target(),
});
}));
}))
});bsn! {
233 @FeathersToolButton {
234 @variant: ButtonVariant::Plain,
235 @caption: bsn! { @icon(icons::X) }
236 }
237 on(|activate: On<Activate>, mut commands: Commands| {
238 commands.trigger(RequestClose { source: activate.event_target() });
239 })
240 }
241 }
242}
243
244#[derive(impl bevy_ecs::component::Component for FeathersDialogBody where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {
required_components.register_required(||
bevy_scene::SceneComponentInfo::new::<FeathersDialogBody>(false));
}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}
impl bevy_scene::SceneComponent for FeathersDialogBody where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
type Props = ();
fn scene(props: Self::Props) -> impl bevy_scene::Scene {
(Self::scene(),
<bevy_scene::InitTemplate<<FeathersDialogBody as
bevy_ecs::template::FromTemplate>::Template> as
::core::default::Default>::default(),
bevy_scene::template_value(bevy_scene::SceneComponentInfo::new::<FeathersDialogBody>(true)))
}
}SceneComponent, #[automatically_derived]impl ::core::default::Default for FeathersDialogBody {
#[inline]
fn default() -> Self { FeathersDialogBody {} }
}Default, #[automatically_derived]impl ::core::clone::Clone for FeathersDialogBody {
#[inline]
fn clone(&self) -> Self { FeathersDialogBody }
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for FeathersDialogBody where {
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert(<bevy_reflect::ReflectFromPtr as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<ReflectDefault, Self,
_>(());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {}
}
impl bevy_reflect::Typed for FeathersDialogBody where {
#[inline(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for FeathersDialogBody where {
fn type_path() -> &'static str {
"bevy_feathers::controls::dialog::FeathersDialogBody"
}
fn short_type_path() -> &'static str { "FeathersDialogBody" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("FeathersDialogBody")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog")
}
}
impl bevy_reflect::Reflect for FeathersDialogBody where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<FeathersDialogBody
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for FeathersDialogBody where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index { _ => ::core::option::Option::None, }
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name { _ => ::core::option::Option::None, }
}
fn field_len(&self) -> usize { 0usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
::core::result::Result::Ok(dynamic)
}
}
impl bevy_reflect::PartialReflect for FeathersDialogBody where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for FeathersDialogBody where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect)]
246#[reflect(Component, Clone, Default)]
247pub struct FeathersDialogBody;
248
249impl FeathersDialogBody {
250 pub fn scene() -> impl Scene {
252 bevy_scene::SceneScope({
let _expr0 = { UiRect::all(px(6.0)) }.into();
let _expr1 = { fonts::REGULAR }.into();
let _expr2 = { size::MEDIUM_FONT }.into();
bevy_scene::SceneFunction(move |_context, _scene|
{
let __value =
_scene.get_or_insert_from_template::<Node>(_context);
__value.display = Display::Flex.into();
__value.flex_direction = FlexDirection::Column.into();
__value.align_items = AlignItems::Stretch.into();
__value.padding = _expr0;
let __value =
_scene.get_or_insert_from_template::<Propagate<ThemeContext>>(_context);
bevy_scene::macro_utils::touch_type::<ThemeContext>();
__value.0.0 = SurfaceLevel::Floating.into();
let __value =
_scene.get_or_insert_from_template::<InheritableFont>(_context);
__value.font = _expr1;
__value.font_size = _expr2;
__value.weight = FontWeight::NORMAL.into();
})
});bsn! {
253 Node {
254 display: Display::Flex,
255 flex_direction: FlexDirection::Column,
256 align_items: AlignItems::Stretch,
257 padding: UiRect::all(px(6.0)),
258 }
259 Propagate::<ThemeContext>(ThemeContext(SurfaceLevel::Floating))
260 InheritableFont {
261 font: fonts::REGULAR,
262 font_size: size::MEDIUM_FONT,
263 weight: FontWeight::NORMAL,
264 }
265 }
266 }
267}
268
269#[derive(impl bevy_ecs::component::Component for FeathersDialogFooter where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
const STORAGE_TYPE: bevy_ecs::component::StorageType =
bevy_ecs::component::StorageType::Table;
type Mutability = bevy_ecs::component::Mutable;
fn register_required_components(_requiree:
bevy_ecs::component::ComponentId,
required_components:
&mut bevy_ecs::component::RequiredComponentsRegistrator) {
required_components.register_required(||
bevy_scene::SceneComponentInfo::new::<FeathersDialogFooter>(false));
}
fn clone_behavior() -> bevy_ecs::component::ComponentCloneBehavior {
use bevy_ecs::component::{
DefaultCloneBehaviorBase, DefaultCloneBehaviorViaClone,
};
(&&&bevy_ecs::component::DefaultCloneBehaviorSpecialization::<Self>::default()).default_clone_behavior()
}
fn relationship_accessor()
->
::core::option::Option<bevy_ecs::relationship::ComponentRelationshipAccessor<Self>> {
::core::option::Option::None
}
}
impl bevy_scene::SceneComponent for FeathersDialogFooter where
Self: ::core::marker::Send + ::core::marker::Sync + 'static {
type Props = ();
fn scene(props: Self::Props) -> impl bevy_scene::Scene {
(Self::scene(),
<bevy_scene::InitTemplate<<FeathersDialogFooter as
bevy_ecs::template::FromTemplate>::Template> as
::core::default::Default>::default(),
bevy_scene::template_value(bevy_scene::SceneComponentInfo::new::<FeathersDialogFooter>(true)))
}
}SceneComponent, #[automatically_derived]impl ::core::default::Default for FeathersDialogFooter
{
#[inline]
fn default() -> Self { FeathersDialogFooter {} }
}Default, #[automatically_derived]impl ::core::clone::Clone for FeathersDialogFooter {
#[inline]
fn clone(&self) -> Self { FeathersDialogFooter }
}Clone, const _: () =
{
impl bevy_reflect::GetTypeRegistration for FeathersDialogFooter where
{
fn get_type_registration() -> bevy_reflect::TypeRegistration {
let mut registration =
bevy_reflect::TypeRegistration::of::<Self>();
registration.insert(<bevy_reflect::ReflectFromPtr as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.insert(<bevy_reflect::ReflectFromReflect as
bevy_reflect::CreateTypeData<Self>>::create_type_data(()));
registration.register_type_data_with::<ReflectComponent, Self,
_>(());
registration.register_type_data_with::<ReflectDefault, Self,
_>(());
registration
}
#[inline(never)]
fn register_type_dependencies(registry:
&mut bevy_reflect::TypeRegistry) {}
}
impl bevy_reflect::Typed for FeathersDialogFooter where {
#[inline(never)]
fn type_info() -> &'static bevy_reflect::TypeInfo {
static CELL: bevy_reflect::utility::NonGenericTypeInfoCell =
bevy_reflect::utility::NonGenericTypeInfoCell::new();
CELL.get_or_set(#[inline(never)] ||
{
bevy_reflect::TypeInfo::Struct(bevy_reflect::structs::StructInfo::new::<Self>(&[]))
})
}
}
#[allow(deprecated, reason =
"derives on a deprecated type shouldn't be considered a usage")]
impl bevy_reflect::TypePath for FeathersDialogFooter where {
fn type_path() -> &'static str {
"bevy_feathers::controls::dialog::FeathersDialogFooter"
}
fn short_type_path() -> &'static str { "FeathersDialogFooter" }
fn type_ident() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("FeathersDialogFooter")
}
fn crate_name() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog".split(':').next().unwrap())
}
fn module_path() -> ::core::option::Option<&'static str> {
::core::option::Option::Some("bevy_feathers::controls::dialog")
}
}
impl bevy_reflect::Reflect for FeathersDialogFooter where {
#[inline]
fn into_any(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn ::core::any::Any> {
self
}
#[inline]
fn as_any(&self) -> &dyn ::core::any::Any { self }
#[inline]
fn as_any_mut(&mut self) -> &mut dyn ::core::any::Any { self }
#[inline]
fn into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect> {
self
}
#[inline]
fn as_reflect(&self) -> &dyn bevy_reflect::Reflect { self }
#[inline]
fn as_reflect_mut(&mut self) -> &mut dyn bevy_reflect::Reflect {
self
}
#[inline]
fn set(&mut self,
value:
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>)
->
::core::result::Result<(),
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>> {
*self = <dyn bevy_reflect::Reflect>::take(value)?;
::core::result::Result::Ok(())
}
}
#[allow(non_upper_case_globals)]
const _: () =
{
static __INVENTORY: ::inventory::Node =
::inventory::Node {
value: &{
bevy_reflect::__macro_exports::auto_register::AutomaticReflectRegistrations(<FeathersDialogFooter
as
bevy_reflect::__macro_exports::auto_register::RegisterForReflection>::__register)
},
next: ::inventory::__private::UnsafeCell::new(::inventory::__private::Option::None),
};
#[link_section = ".text.startup"]
unsafe extern "C" fn __ctor() {
unsafe {
::inventory::ErasedNode::submit(__INVENTORY.value,
&__INVENTORY)
}
}
#[used]
#[link_section = ".init_array"]
static __CTOR: unsafe extern "C" fn() = __ctor;
};
impl bevy_reflect::structs::Struct for FeathersDialogFooter where {
fn field(&self, name: &str)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_mut(&mut self, name: &str)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match name { _ => ::core::option::Option::None, }
}
fn field_at(&self, index: usize)
-> ::core::option::Option<&dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn field_at_mut(&mut self, index: usize)
->
::core::option::Option<&mut dyn bevy_reflect::PartialReflect> {
match index { _ => ::core::option::Option::None, }
}
fn name_at(&self, index: usize) -> ::core::option::Option<&str> {
match index { _ => ::core::option::Option::None, }
}
fn index_of_name(&self, name: &str)
-> ::core::option::Option<usize> {
match name { _ => ::core::option::Option::None, }
}
fn field_len(&self) -> usize { 0usize }
fn iter_fields(&self) -> bevy_reflect::structs::FieldIter {
bevy_reflect::structs::FieldIter::new(self)
}
fn to_dynamic_struct(&self)
->
::core::result::Result<bevy_reflect::structs::DynamicStruct,
bevy_reflect::ReflectCloneError> {
let mut dynamic: bevy_reflect::structs::DynamicStruct =
::core::default::Default::default();
dynamic.set_represented_type(bevy_reflect::PartialReflect::get_represented_type_info(self));
::core::result::Result::Ok(dynamic)
}
}
impl bevy_reflect::PartialReflect for FeathersDialogFooter where {
#[inline]
fn get_represented_type_info(&self)
-> ::core::option::Option<&'static bevy_reflect::TypeInfo> {
::core::option::Option::Some(<Self as
bevy_reflect::Typed>::type_info())
}
#[inline]
fn try_apply(&mut self, value: &dyn bevy_reflect::PartialReflect)
-> ::core::result::Result<(), bevy_reflect::ApplyError> {
if let bevy_reflect::ReflectRef::Struct(struct_value) =
bevy_reflect::PartialReflect::reflect_ref(value) {
for (name, value) in
bevy_reflect::structs::Struct::iter_fields(struct_value) {
if let ::core::option::Option::Some(v) =
bevy_reflect::structs::Struct::field_mut(self, name) {
bevy_reflect::PartialReflect::try_apply(v, value)?;
}
}
} else {
return ::core::result::Result::Err(bevy_reflect::ApplyError::MismatchedKinds {
from_kind: bevy_reflect::PartialReflect::reflect_kind(value),
to_kind: bevy_reflect::ReflectKind::Struct,
});
}
::core::result::Result::Ok(())
}
#[inline]
fn reflect_kind(&self) -> bevy_reflect::ReflectKind {
bevy_reflect::ReflectKind::Struct
}
#[inline]
fn reflect_ref(&self) -> bevy_reflect::ReflectRef {
bevy_reflect::ReflectRef::Struct(self)
}
#[inline]
fn reflect_mut(&mut self) -> bevy_reflect::ReflectMut {
bevy_reflect::ReflectMut::Struct(self)
}
#[inline]
fn reflect_owned(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
-> bevy_reflect::ReflectOwned {
bevy_reflect::ReflectOwned::Struct(self)
}
#[inline]
fn try_into_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect>> {
::core::result::Result::Ok(self)
}
#[inline]
fn try_as_reflect(&self)
-> ::core::option::Option<&dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn try_as_reflect_mut(&mut self)
-> ::core::option::Option<&mut dyn bevy_reflect::Reflect> {
::core::option::Option::Some(self)
}
#[inline]
fn into_partial_reflect(self:
bevy_reflect::__macro_exports::alloc_utils::Box<Self>)
->
bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::PartialReflect> {
self
}
#[inline]
fn as_partial_reflect(&self)
-> &dyn bevy_reflect::PartialReflect {
self
}
#[inline]
fn as_partial_reflect_mut(&mut self)
-> &mut dyn bevy_reflect::PartialReflect {
self
}
fn reflect_partial_eq(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<bool> {
(bevy_reflect::structs::struct_partial_eq)(self, value)
}
fn reflect_partial_cmp(&self,
value: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<::core::cmp::Ordering> {
(bevy_reflect::structs::struct_partial_cmp)(self, value)
}
#[inline]
fn reflect_clone(&self)
->
::core::result::Result<bevy_reflect::__macro_exports::alloc_utils::Box<dyn bevy_reflect::Reflect>,
bevy_reflect::ReflectCloneError> {
::core::result::Result::Ok(bevy_reflect::__macro_exports::alloc_utils::Box::new(::core::clone::Clone::clone(self)))
}
}
impl bevy_reflect::FromReflect for FeathersDialogFooter where {
fn from_reflect(reflect: &dyn bevy_reflect::PartialReflect)
-> ::core::option::Option<Self> {
if let bevy_reflect::ReflectRef::Struct(__ref_struct) =
bevy_reflect::PartialReflect::reflect_ref(reflect) {
let mut __this =
<Self as ::core::default::Default>::default();
::core::option::Option::Some(__this)
} else { ::core::option::Option::None }
}
}
};Reflect)]
271#[reflect(Component, Clone, Default)]
272pub struct FeathersDialogFooter;
273
274impl FeathersDialogFooter {
275 pub fn scene() -> impl Scene {
277 bevy_scene::SceneScope({
let _expr0 = { px(6.0) }.into();
let _expr1 = { UiRect::all(px(6.0)) }.into();
let _expr2 = { fonts::REGULAR }.into();
let _expr3 = { size::MEDIUM_FONT }.into();
bevy_scene::SceneFunction(move |_context, _scene|
{
let __value =
_scene.get_or_insert_from_template::<Node>(_context);
__value.display = Display::Flex.into();
__value.flex_direction = FlexDirection::Row.into();
__value.align_items = AlignItems::Center.into();
__value.justify_content = JustifyContent::FlexEnd.into();
__value.column_gap = _expr0;
__value.padding = _expr1;
let __value =
_scene.get_or_insert_from_template::<Propagate<ThemeContext>>(_context);
bevy_scene::macro_utils::touch_type::<ThemeContext>();
__value.0.0 = SurfaceLevel::Floating.into();
let __value =
_scene.get_or_insert_from_template::<InheritableFont>(_context);
__value.font = _expr2;
__value.font_size = _expr3;
__value.weight = FontWeight::NORMAL.into();
})
});bsn! {
278 Node {
279 display: Display::Flex,
280 flex_direction: FlexDirection::Row,
281 align_items: AlignItems::Center,
282 justify_content: JustifyContent::FlexEnd,
283 column_gap: px(6.0),
284 padding: UiRect::all(px(6.0)),
285 }
286 Propagate::<ThemeContext>(ThemeContext(SurfaceLevel::Floating))
287 InheritableFont {
288 font: fonts::REGULAR,
289 font_size: size::MEDIUM_FONT,
290 weight: FontWeight::NORMAL,
291 }
292 }
293 }
294}