From 66e3423828892a72e5e525f2dc8d5ad91e634445 Mon Sep 17 00:00:00 2001 From: tcmal Date: Thu, 6 Jun 2024 21:39:23 +0100 Subject: track focus and draw borders --- src/colours.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/colours.rs (limited to 'src/colours.rs') diff --git a/src/colours.rs b/src/colours.rs new file mode 100644 index 0000000..6f862c3 --- /dev/null +++ b/src/colours.rs @@ -0,0 +1,44 @@ +use crate::error::*; +use xcb::{ + x::{AllocColor, Colormap}, + Connection, +}; + +pub struct Colours { + cmap: Colormap, + border_normal: u32, + border_focused: u32, +} + +impl Colours { + pub fn new_with(conn: &Connection, cmap: Colormap) -> Result { + let (border_normal, border_focused) = ( + conn.wait_for_reply(conn.send_request(&AllocColor { + cmap, + red: 0, + green: 0, + blue: 0, + }))?, + conn.wait_for_reply(conn.send_request(&AllocColor { + cmap, + red: u16::MAX, + green: 0, + blue: u16::MAX, + }))?, + ); + + Ok(Self { + cmap, + border_normal: border_normal.pixel(), + border_focused: border_focused.pixel(), + }) + } + + pub fn border_normal(&self) -> u32 { + self.border_normal + } + + pub fn border_focused(&self) -> u32 { + self.border_focused + } +} -- cgit v1.2.3