feat(animation): introduce AnimationPrefix enum

This commit is contained in:
thearturca
2024-09-28 20:09:51 +03:00
parent e449861c10
commit 67b2a7a284
3 changed files with 23 additions and 1 deletions

View File

@@ -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! {

View File

@@ -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),
}
}

View File

@@ -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);