/// Displays the current date and time. /// /// A custom date/time format string can be set in the config. /// /// Clicking the widget opens a popup containing the current time /// with second-level precision and a calendar. pub mod clock; pub mod launcher; pub mod mpd; pub mod script; pub mod sysinfo; pub mod tray; pub mod workspaces; /// Shamelessly stolen from here: /// use glib::IsA; use gtk::{Application, Widget}; use serde::de::DeserializeOwned; use serde_json::Value; #[derive(Clone)] pub enum ModuleLocation { Left, Center, Right, } pub struct ModuleInfo<'a> { pub app: &'a Application, pub location: ModuleLocation, } pub trait Module where W: IsA, { /// Consumes the module config /// and produces a GTK widget of type `W` fn into_widget(self, info: &ModuleInfo) -> W; fn from_value(v: &Value) -> Box where Self: DeserializeOwned, { serde_json::from_value(v.clone()).unwrap() } }