Resolve warnings in cyberpunk-splash

This commit is contained in:
Savanni D'Gerinel 2023-10-04 16:20:28 -04:00
parent 5496e9ce10
commit d441e19479
2 changed files with 32 additions and 48 deletions

View File

@ -2,6 +2,7 @@
name = "cyberpunk-splash" name = "cyberpunk-splash"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"
license = "GPL-3.0-only"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

View File

@ -2,8 +2,8 @@ use cairo::{
Context, FontSlant, FontWeight, Format, ImageSurface, LineCap, LinearGradient, Pattern, Context, FontSlant, FontWeight, Format, ImageSurface, LineCap, LinearGradient, Pattern,
TextExtents, TextExtents,
}; };
use glib::{GString, Object}; use glib::Object;
use gtk::{gdk::Key, prelude::*, subclass::prelude::*, EventControllerKey}; use gtk::{prelude::*, subclass::prelude::*, EventControllerKey};
use std::{ use std::{
cell::RefCell, cell::RefCell,
rc::Rc, rc::Rc,
@ -14,12 +14,6 @@ use std::{
const WIDTH: i32 = 1600; const WIDTH: i32 = 1600;
const HEIGHT: i32 = 600; const HEIGHT: i32 = 600;
#[derive(Clone, Copy, Debug)]
enum Event {
Frames(u8),
Time(Duration),
}
#[derive(Clone, Copy, Debug)] #[derive(Clone, Copy, Debug)]
pub enum State { pub enum State {
Running { Running {
@ -50,7 +44,7 @@ impl State {
*self = Self::Running { *self = Self::Running {
last_update: Instant::now(), last_update: Instant::now(),
deadline: Instant::now() + *time_remaining, deadline: Instant::now() + *time_remaining,
timeout: timeout.clone(), timeout: *timeout,
}; };
} }
} }
@ -62,7 +56,7 @@ impl State {
{ {
*self = Self::Paused { *self = Self::Paused {
time_remaining: *deadline - Instant::now(), time_remaining: *deadline - Instant::now(),
timeout: timeout.clone(), timeout: *timeout,
} }
} }
} }
@ -108,13 +102,13 @@ impl TimeoutAnimation {
fn tick(&mut self, frames_elapsed: u8) { fn tick(&mut self, frames_elapsed: u8) {
let step_size = 1. / (self.duration * 60.); let step_size = 1. / (self.duration * 60.);
if self.ascending { if self.ascending {
self.intensity = self.intensity + step_size * frames_elapsed as f64; self.intensity += step_size * frames_elapsed as f64;
if self.intensity > 1. { if self.intensity > 1. {
self.intensity = 1.0; self.intensity = 1.0;
self.ascending = false; self.ascending = false;
} }
} else { } else {
self.intensity = self.intensity - step_size * frames_elapsed as f64; self.intensity -= step_size * frames_elapsed as f64;
if self.intensity < 0. { if self.intensity < 0. {
self.intensity = 0.0; self.intensity = 0.0;
self.ascending = true; self.ascending = true;
@ -148,7 +142,6 @@ impl SplashPrivate {
*self.height.borrow(), *self.height.borrow(),
2., 2.,
8., 8.,
8.,
(0.7, 0., 1.), (0.7, 0., 1.),
); );
@ -333,7 +326,7 @@ impl Splash {
let _ = context.set_source(&*background); let _ = context.set_source(&*background);
let _ = context.paint(); let _ = context.paint();
let state = s.imp().state.borrow().clone(); let state = *s.imp().state.borrow();
let time = match state { let time = match state {
State::Running { deadline, .. } => deadline - Instant::now(), State::Running { deadline, .. } => deadline - Instant::now(),
@ -359,7 +352,7 @@ impl Splash {
let mut saved_extents = s.imp().time_extents.borrow_mut(); let mut saved_extents = s.imp().time_extents.borrow_mut();
if saved_extents.is_none() { if saved_extents.is_none() {
*saved_extents = Some(time_extents.clone()); *saved_extents = Some(time_extents);
} }
let time_baseline_x = center_x - time_extents.width() / 2.; let time_baseline_x = center_x - time_extents.width() / 2.;
@ -372,8 +365,8 @@ impl Splash {
time_baseline_y, time_baseline_y,
); );
let (running, timeout_animation) = match state { let (running, timeout_animation) = match state {
State::Running { timeout, .. } => (true, timeout.clone()), State::Running { timeout, .. } => (true, timeout),
State::Paused { timeout, .. } => (false, timeout.clone()), State::Paused { timeout, .. } => (false, timeout),
}; };
match timeout_animation { match timeout_animation {
Some(ref animation) => { Some(ref animation) => {
@ -395,21 +388,18 @@ impl Splash {
let _ = context.show_text(&time); let _ = context.show_text(&time);
}; };
match *s.imp().time_extents.borrow() { if let Some(extents) = *s.imp().time_extents.borrow() {
Some(extents) => { context.set_source_rgb(0.7, 0.0, 1.0);
context.set_source_rgb(0.7, 0.0, 1.0); let time_meter = SlashMeter {
let time_meter = SlashMeter { orientation: gtk::Orientation::Horizontal,
orientation: gtk::Orientation::Horizontal, start_x: center_x + extents.width() / 2. + 50.,
start_x: center_x + extents.width() / 2. + 50., start_y: center_y + 100.,
start_y: center_y + 100., count: 5,
count: 5, fill_count: minutes as u8,
fill_count: minutes as u8, height: 60.,
height: 60., length: 100.,
length: 100., };
}; time_meter.draw(context);
time_meter.draw(&context);
}
None => {}
} }
} }
}); });
@ -544,7 +534,7 @@ impl SlashMeter {
gtk::Orientation::Horizontal => { gtk::Orientation::Horizontal => {
let angle: f64 = 0.8; let angle: f64 = 0.8;
let run = self.height / angle.tan(); let run = self.height / angle.tan();
let width = self.length as f64 / (self.count as f64 * 2.); let width = self.length / (self.count as f64 * 2.);
for c in 0..self.count { for c in 0..self.count {
context.set_line_width(1.); context.set_line_width(1.);
@ -579,10 +569,6 @@ trait Pen {
struct GlowPen { struct GlowPen {
blur_context: Context, blur_context: Context,
draw_context: Context, draw_context: Context,
line_width: f64,
blur_line_width: f64,
blur_size: f64,
} }
impl GlowPen { impl GlowPen {
@ -591,7 +577,6 @@ impl GlowPen {
height: i32, height: i32,
line_width: f64, line_width: f64,
blur_line_width: f64, blur_line_width: f64,
blur_size: f64,
color: (f64, f64, f64), color: (f64, f64, f64),
) -> Self { ) -> Self {
let blur_context = let blur_context =
@ -611,9 +596,6 @@ impl GlowPen {
Self { Self {
blur_context, blur_context,
draw_context, draw_context,
line_width,
blur_line_width,
blur_size,
} }
} }
} }
@ -630,8 +612,10 @@ impl Pen for GlowPen {
} }
fn stroke(&self) { fn stroke(&self) {
self.blur_context.stroke(); self.blur_context.stroke().expect("to draw the blur line");
self.draw_context.stroke(); self.draw_context
.stroke()
.expect("to draw the regular line");
} }
fn finish(self) -> Pattern { fn finish(self) -> Pattern {
@ -681,7 +665,7 @@ fn main() {
let countdown = match options.lookup::<String>("countdown") { let countdown = match options.lookup::<String>("countdown") {
Ok(Some(countdown_str)) => { Ok(Some(countdown_str)) => {
let parts = countdown_str.split(':').collect::<Vec<&str>>(); let parts = countdown_str.split(':').collect::<Vec<&str>>();
let duration = match parts.len() { match parts.len() {
2 => { 2 => {
let minutes = parts[0].parse::<u64>().unwrap(); let minutes = parts[0].parse::<u64>().unwrap();
let seconds = parts[1].parse::<u64>().unwrap(); let seconds = parts[1].parse::<u64>().unwrap();
@ -692,8 +676,7 @@ fn main() {
Duration::from_secs(seconds) Duration::from_secs(seconds)
} }
_ => Duration::from_secs(300), _ => Duration::from_secs(300),
}; }
duration
} }
_ => Duration::from_secs(300), _ => Duration::from_secs(300),
}; };
@ -725,7 +708,7 @@ fn main() {
let window = gtk::ApplicationWindow::new(app); let window = gtk::ApplicationWindow::new(app);
window.present(); window.present();
let splash = Splash::new(title.read().unwrap().clone(), state.read().unwrap().clone()); let splash = Splash::new(title.read().unwrap().clone(), *state.read().unwrap());
window.set_child(Some(&splash)); window.set_child(Some(&splash));
@ -763,7 +746,7 @@ fn main() {
loop { loop {
std::thread::sleep(Duration::from_millis(1000 / 60)); std::thread::sleep(Duration::from_millis(1000 / 60));
state.write().unwrap().run(Instant::now()); state.write().unwrap().run(Instant::now());
let _ = gtk_tx.send(state.read().unwrap().clone()); let _ = gtk_tx.send(*state.read().unwrap());
} }
} }
}); });