wa
This commit is contained in:
59
src/main.rs
59
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,
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user