use crate::component::Component;
use crate::components::logo::Logo;
use crate::context::RenderContext;
use crate::event::EventHandler;
use crate::layout::Rect;
use crate::render::Renderer;
use anyhow::Result;
pub struct Header {
logo: Logo,
}
impl Header {
pub fn new() -> Self {
Header {
logo: Logo::new("PONDER"),
}
}
}
impl Default for Header {
fn default() -> Self {
Self::new()
}
}
impl EventHandler for Header {}
impl Component for Header {
fn render(&mut self, renderer: &mut Renderer, bounds: Rect, ctx: &RenderContext) -> Result<()> {
self.logo.render(renderer, bounds, ctx)
}
fn min_size(&self) -> (u16, u16) {
self.logo.min_size()
}
fn mark_dirty(&mut self) {
self.logo.mark_dirty();
}
fn is_dirty(&self) -> bool {
self.logo.is_dirty()
}
fn name(&self) -> &str {
"Header"
}
}