use bevy_asset::Handle;
use bevy_ecs::bundle::Bundle;
use bevy_render::view::Visibility;
use bevy_sprite::ColorMaterial;
use bevy_transform::prelude::{GlobalTransform, Transform};
use bevy_ui::prelude::Button;
use bevy_ui::widget::ImageMode;
use bevy_ui::{CalculatedSize, FocusPolicy, Interaction, Node, Style};
#[derive(Bundle, Clone, Debug, Default)]
pub struct NodeBundle {
pub node: Node,
pub style: Style,
pub material: Handle<ColorMaterial>,
pub transform: Transform,
pub global_transform: GlobalTransform,
pub visibility: Visibility,
}
#[derive(Bundle, Clone, Debug, Default)]
pub struct ImageBundle {
pub node: Node,
pub style: Style,
pub image_mode: ImageMode,
pub calculated_size: CalculatedSize,
pub material: Handle<ColorMaterial>,
pub transform: Transform,
pub global_transform: GlobalTransform,
pub visibility: Visibility,
}
#[derive(Bundle, Clone, Debug)]
pub struct ButtonBundle {
pub node: Node,
pub button: Button,
pub style: Style,
pub interaction: Interaction,
pub focus_policy: FocusPolicy,
pub material: Handle<ColorMaterial>,
pub transform: Transform,
pub global_transform: GlobalTransform,
pub visibility: Visibility,
}
impl Default for ButtonBundle {
fn default() -> Self {
Self {
button: Button,
interaction: Default::default(),
focus_policy: Default::default(),
node: Default::default(),
style: Default::default(),
transform: Default::default(),
global_transform: Default::default(),
visibility: Default::default(),
material: Default::default(),
}
}
}