use super::widget::{Widget, DisplayMode, WidgetSize, WidgetPos};
use crate::error;
pub struct Frame {
size: WidgetSize,
pos: WidgetPos,
display_mode: DisplayMode,
children: Vec<Box<dyn Widget>>,
}
impl Widget for Frame {
fn set_size(&mut self, new_size: WidgetSize) -> Result<(), error::WitError>{
self.size = new_size;
Ok(())
}
fn size(&self) -> WidgetSize {
self.size
}
fn add_child(&mut self, child: Box<dyn Widget>) -> Result<(), error::WitError>{
self.children.push(child);
Ok(())
}
fn children(&self) -> &[Box<dyn Widget>] {
self.children.as_slice()
}
fn set_pos(&mut self, new_pos: WidgetPos) -> Result<(), error::WitError>{
self.pos = new_pos;
Ok(())
}
fn pos(&self) -> WidgetPos {
self.pos
}
fn set_display_mode(&mut self, new_display_mode: DisplayMode) -> Result<(), error::WitError>{
self.display_mode = new_display_mode;
Ok(())
}
fn display_mode(&self) -> DisplayMode {
self.display_mode
}
}