#![allow(deprecated)]
use bevy_ecs::prelude::*;
use tracing::warn;
pub use crate::ecs::types::{Offset, Size};
#[derive(Component, Debug, Clone, Copy, PartialEq, Default)]
pub struct TextLayoutMetrics {
pub width: f32, pub height: f32, }
#[derive(Component, Debug, Clone, Copy, PartialEq)]
pub struct LayoutScale {
pub x: f32,
pub y: f32,
}
impl LayoutScale {
pub fn validate(&self) {
if self.x == 0.0 {
warn!("LayoutScale.x is zero, which may cause layout issues");
}
if self.y == 0.0 {
warn!("LayoutScale.y is zero, which may cause layout issues");
}
}
}
impl Default for LayoutScale {
fn default() -> Self {
Self { x: 1.0, y: 1.0 }
}
}
#[deprecated(since = "0.1.0", note = "Use Visual.opacity instead")]
#[derive(Component, Debug, Clone, Copy, PartialEq)]
pub struct Opacity(pub f32);
impl Opacity {
pub fn validate(&self) {
if self.0 < 0.0 || self.0 > 1.0 {
warn!(
value = self.0,
"Opacity value is outside valid range [0.0, 1.0]"
);
}
}
pub fn clamped(&self) -> f32 {
self.0.clamp(0.0, 1.0)
}
}
impl Default for Opacity {
fn default() -> Self {
Self(1.0) }
}