From 7b6279ef3bb199db76834735878d2ebb34578487 Mon Sep 17 00:00:00 2001 From: Doloro1978 Date: Sat, 3 Jan 2026 20:49:05 +0000 Subject: [PATCH] wa --- src/main.rs | 59 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index c565efa..6a509ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,4 @@ +use color_eyre::owo_colors::OwoColorize; use crossterm::event::{Event, EventStream, KeyCode, KeyEvent, KeyEventKind, KeyModifiers}; use futures::{FutureExt, StreamExt}; @@ -35,8 +36,16 @@ pub enum screen { Battery, } +#[derive(Debug, Default)] +pub enum widget { + #[default] + Empty, + Battery, +} + #[derive(Debug, Default)] pub struct AppState { + selection: i32, active_screen: screen, } @@ -88,23 +97,63 @@ impl App { .flex(layout::Flex::SpaceBetween) .areas(inner); + let meow: [Rect; 2] = + Layout::horizontal([Constraint::Percentage(45), Constraint::Percentage(45)]) + .flex(layout::Flex::SpaceBetween) + .areas(selection_boxes[0]); + + let meow2: [Rect; 2] = + Layout::horizontal([Constraint::Percentage(45), Constraint::Percentage(45)]) + .flex(layout::Flex::SpaceBetween) + .areas(selection_boxes[1]); + let meow3: [Rect; 2] = + Layout::horizontal([Constraint::Percentage(45), Constraint::Percentage(45)]) + .flex(layout::Flex::SpaceBetween) + .areas(selection_boxes[2]); + let rah: [Rect; 6] = [meow[0], meow[1], meow2[0], meow2[1], meow3[0], meow3[1]]; // frame.render_widget( // Paragraph::new(text) // .block(Block::bordered().title(title)) // .centered(), // rec_2_split[0], // ); - let dashboard_boards: [screen; 1] = [screen::Battery]; + let dashboard_boards: [widget; 6] = [ + widget::Battery, + widget::Empty, + widget::Empty, + widget::Empty, + widget::Empty, + widget::Empty, + ]; + let mut index = 0; for (x) in (dashboard_boards) { + let mut selected: bool = false; + if index == self.state.selection { + selected = true; + } + let style_selected: Style = { + if selected { + Style::new().blue() + } else { + Style::new().white() + } + }; match x { - screen::Battery => { + widget::Battery => { let text = Paragraph::new("Battery widget!") - .block(Block::bordered()) + .block(Block::bordered().border_style(style_selected)) .centered(); - frame.render_widget(text, selection_boxes[0]); + frame.render_widget(text, rah[index as usize]); + } + widget::Empty => { + let text = Paragraph::new("Empty") + .block(Block::bordered().border_style(style_selected)) + .centered(); + frame.render_widget(text, rah[index as usize]); } _ => {} } + index += 1; } } @@ -129,7 +178,7 @@ impl App { (_, KeyCode::Esc | KeyCode::Char('q')) | (KeyModifiers::CONTROL, KeyCode::Char('c') | KeyCode::Char('C')) => self.quit(), // Add other key handlers here. - (_, KeyCode::Tab) => {} + (_, KeyCode::Tab) => self.state.selection += 1, _ => {} } }