Skip to content
This repository has been archived by the owner on Aug 6, 2023. It is now read-only.

Commit

Permalink
refactor(examples): show more use case in gauge example
Browse files Browse the repository at this point in the history
  • Loading branch information
fdehau committed Jun 16, 2021
1 parent 38dcddb commit 8da5f74
Showing 1 changed file with 20 additions and 10 deletions.
30 changes: 20 additions & 10 deletions examples/gauge.rs
@@ -1,13 +1,14 @@
#[allow(dead_code)]
mod util;

use crate::util::event::{Event, Events};
use std::{error::Error, io};
use crate::util::event::{Config, Event, Events};
use std::{error::Error, io, time::Duration};
use termion::{event::Key, input::MouseTerminal, raw::IntoRawMode, screen::AlternateScreen};
use tui::{
backend::TermionBackend,
layout::{Constraint, Direction, Layout},
style::{Color, Modifier, Style},
text::Span,
widgets::{Block, Borders, Gauge},
Terminal,
};
Expand All @@ -24,25 +25,25 @@ impl App {
App {
progress1: 0,
progress2: 0,
progress3: 0.0,
progress3: 0.45,
progress4: 0,
}
}

fn update(&mut self) {
self.progress1 += 5;
self.progress1 += 1;
if self.progress1 > 100 {
self.progress1 = 0;
}
self.progress2 += 10;
self.progress2 += 2;
if self.progress2 > 100 {
self.progress2 = 0;
}
self.progress3 += 0.001;
if self.progress3 > 1.0 {
self.progress3 = 0.0;
}
self.progress4 += 3;
self.progress4 += 1;
if self.progress4 > 100 {
self.progress4 = 0;
}
Expand All @@ -57,7 +58,9 @@ fn main() -> Result<(), Box<dyn Error>> {
let backend = TermionBackend::new(stdout);
let mut terminal = Terminal::new(backend)?;

let events = Events::new();
let events = Events::with_config(Config {
tick_rate: Duration::from_millis(100),
});

let mut app = App::new();

Expand Down Expand Up @@ -91,10 +94,18 @@ fn main() -> Result<(), Box<dyn Error>> {
.label(label);
f.render_widget(gauge, chunks[1]);

let label = Span::styled(
format!("{:.2}%", app.progress3 * 100.0),
Style::default()
.fg(Color::Red)
.add_modifier(Modifier::ITALIC | Modifier::BOLD),
);
let gauge = Gauge::default()
.block(Block::default().title("Gauge3").borders(Borders::ALL))
.gauge_style(Style::default().fg(Color::Yellow))
.ratio(app.progress3);
.ratio(app.progress3)
.label(label)
.use_unicode(true);
f.render_widget(gauge, chunks[2]);

let label = format!("{}/100", app.progress2);
Expand All @@ -106,8 +117,7 @@ fn main() -> Result<(), Box<dyn Error>> {
.add_modifier(Modifier::ITALIC),
)
.percent(app.progress4)
.label(label)
.use_unicode(true);
.label(label);
f.render_widget(gauge, chunks[3]);
})?;

Expand Down

0 comments on commit 8da5f74

Please sign in to comment.