From 67b2a7a284e7aa367d90c39d22fae199866ae40c Mon Sep 17 00:00:00 2001 From: thearturca Date: Sat, 28 Sep 2024 20:09:51 +0300 Subject: [PATCH] feat(animation): introduce `AnimationPrefix` enum --- komorebi/src/animation/mod.rs | 1 + komorebi/src/animation/prefix.rs | 19 +++++++++++++++++++ komorebi/src/window.rs | 4 +++- 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 komorebi/src/animation/prefix.rs diff --git a/komorebi/src/animation/mod.rs b/komorebi/src/animation/mod.rs index e35c1962..6fb54cf4 100644 --- a/komorebi/src/animation/mod.rs +++ b/komorebi/src/animation/mod.rs @@ -12,6 +12,7 @@ pub mod animation; pub use animation::Animation; pub mod animation_manager; pub mod lerp; +pub mod prefix; pub mod style; lazy_static! { diff --git a/komorebi/src/animation/prefix.rs b/komorebi/src/animation/prefix.rs new file mode 100644 index 00000000..38247931 --- /dev/null +++ b/komorebi/src/animation/prefix.rs @@ -0,0 +1,19 @@ +use clap::ValueEnum; +use schemars::JsonSchema; +use serde::Deserialize; +use serde::Serialize; +use strum::Display; +use strum::EnumString; + +#[derive( + Copy, Clone, Debug, Serialize, Deserialize, Display, EnumString, ValueEnum, JsonSchema, +)] +pub enum AnimationPrefix { + WindowMove, +} + +pub fn new_animation_key(prefix: AnimationPrefix, key: String) -> String { + match prefix { + AnimationPrefix::WindowMove => format!("window_move:{}", key), + } +} diff --git a/komorebi/src/window.rs b/komorebi/src/window.rs index 10df51d0..2de01638 100644 --- a/komorebi/src/window.rs +++ b/komorebi/src/window.rs @@ -1,4 +1,6 @@ use crate::animation::lerp::Lerp; +use crate::animation::prefix::new_animation_key; +use crate::animation::prefix::AnimationPrefix; use crate::animation::ANIMATION_DURATION; use crate::animation::ANIMATION_ENABLED; use crate::animation::ANIMATION_MANAGER; @@ -212,7 +214,7 @@ impl Window { std::thread::spawn(move || { Animation::animate( - format!("window_move:{}", hwnd).as_str(), + new_animation_key(AnimationPrefix::WindowMove, hwnd.to_string()).as_str(), duration, |progress: f64| { let new_rect = start_rect.lerp(target_rect, progress, style);