use crate::render::layout::{Layout, LayoutPosition};
use crate::render::widget_cache::WidgetContainer;
use crate::render::widget_config::PaddingConstraint;
pub struct GridLayout {
widget_ids: Vec<i32>,
padding: PaddingConstraint,
invalidated: bool,
}
impl GridLayout {
pub fn new(
_x: i32,
_y: i32,
_w: u32,
_h: u32,
_layout: Vec<i32>,
padding: PaddingConstraint,
) -> Self {
Self {
widget_ids: Vec::new(),
padding,
invalidated: false,
}
}
}
impl Layout for GridLayout {
fn insert_widget(&mut self, _widget_id: i32, _widget_position: LayoutPosition) {
}
fn append_widget(&mut self, _widget_id: i32) {
}
fn set_padding(&mut self, padding: PaddingConstraint) {
self.padding = padding;
self.invalidated = true;
}
fn get_padding(&self) -> PaddingConstraint {
self.padding
}
fn do_layout(&mut self, _widgets: &[WidgetContainer]) {
if self.widget_ids.len() <= 1 {
return;
}
self.invalidated = false;
}
fn needs_layout(&self) -> bool {
self.invalidated
}
}