From 702b0a63bf75204d03f9229f1667cb2e77c1b8b8 Mon Sep 17 00:00:00 2001 From: Claire Neveu Date: Tue, 2 Apr 2024 23:04:48 -0400 Subject: [PATCH 1/5] feat: Add orientation support for clock --- src/config/common.rs | 13 +++++++++++++ src/config/mod.rs | 2 +- src/modules/clock.rs | 19 ++++++++++++++----- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/config/common.rs b/src/config/common.rs index 286e294e..876334a7 100644 --- a/src/config/common.rs +++ b/src/config/common.rs @@ -40,6 +40,19 @@ pub enum TransitionType { SlideEnd, } +#[derive(Debug, Deserialize, Clone)] +#[serde(rename_all = "snake_case")] +pub enum ModuleOrientation { + Horizontal, + Vertical, +} + +impl Default for ModuleOrientation { + fn default() -> Self { + ModuleOrientation::Horizontal + } +} + impl TransitionType { pub const fn to_revealer_transition_type( &self, diff --git a/src/config/mod.rs b/src/config/mod.rs index 52fcb8d6..e57fac8e 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -34,7 +34,7 @@ use color_eyre::Result; use serde::Deserialize; use std::collections::HashMap; -pub use self::common::{CommonConfig, TransitionType}; +pub use self::common::{CommonConfig, ModuleOrientation, TransitionType}; pub use self::truncate::TruncateMode; #[derive(Debug, Deserialize, Clone)] diff --git a/src/modules/clock.rs b/src/modules/clock.rs index 9978716c..295ae130 100644 --- a/src/modules/clock.rs +++ b/src/modules/clock.rs @@ -8,7 +8,7 @@ use serde::Deserialize; use tokio::sync::{broadcast, mpsc}; use tokio::time::sleep; -use crate::config::CommonConfig; +use crate::config::{CommonConfig, ModuleOrientation}; use crate::gtk_helpers::IronbarGtkExt; use crate::modules::{ Module, ModuleInfo, ModuleParts, ModulePopup, ModuleUpdateEvent, PopupButton, WidgetContext, @@ -31,6 +31,9 @@ pub struct ClockModule { #[serde(default = "default_locale")] locale: String, + #[serde(default)] + orientation: ModuleOrientation, + #[serde(flatten)] pub common: Option, } @@ -41,6 +44,7 @@ impl Default for ClockModule { format: default_format(), format_popup: default_popup_format(), locale: default_locale(), + orientation: ModuleOrientation::Horizontal, common: Some(CommonConfig::default()), } } @@ -97,10 +101,15 @@ impl Module