From 59a236d70b9bdd4d18ee95fb6890727c42f17194 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 13 Mar 2023 20:30:19 -0230 Subject: degree and radian modes --- src/ui.rs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/ui.rs') diff --git a/src/ui.rs b/src/ui.rs index 3d09221..76ecaf5 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -12,7 +12,7 @@ use tui::{ Frame, Terminal, }; -use crate::{Calculator, Constant, Function}; +use crate::{AngleMode, Calculator, Constant, Function}; const WIDTH: u16 = 32; @@ -20,8 +20,9 @@ impl Calculator { pub fn draw(&self, f: &mut Frame) { let chunks = layout(self.stack.len(), f.size()); f.render_widget(version_number_widget(), chunks[0]); - f.render_widget(stack_widget(&self.stack), chunks[2]); - f.render_widget(input_buffer_widget(&self.input_buffer), chunks[3]); + f.render_widget(angle_mode_widget(self.angle_mode), chunks[2]); + f.render_widget(stack_widget(&self.stack), chunks[3]); + f.render_widget(input_buffer_widget(&self.input_buffer), chunks[4]); } } @@ -53,16 +54,21 @@ fn layout(stack_size: usize, frame_size: Rect) -> Vec { .direction(Direction::Vertical) .constraints( [ - Constraint::Length(1), - Constraint::Max(u16::MAX), - Constraint::Length(stack_size as u16 + 2), - Constraint::Length(3), + Constraint::Length(1), // Version number + Constraint::Max(u16::MAX), // Fill + Constraint::Length(1), // Angle mode + Constraint::Length(stack_size as u16 + 2), // Stack + Constraint::Length(3), // Input buffer ] .as_ref(), ) .split(columns[0]) } +fn angle_mode_widget(angle_mode: AngleMode) -> impl Widget { + Paragraph::new(format!("{}", angle_mode)).alignment(Alignment::Right) +} + fn stack_widget(stack: &Vec) -> impl Widget { List::new( stack -- cgit v1.2.3