winio-ui-app-kit 0.6.0

AppKit backend for winio.
Documentation
use objc2_app_kit::{NSColor, NSColorSpace};
use winio_primitive::Color;

use crate::{Error, Result, catch};

/// Get the accent color.
pub fn accent_color() -> Result<Color> {
    catch(|| {
        let accent = NSColor::controlAccentColor();
        let color_space = NSColorSpace::genericRGBColorSpace();
        let accent = accent
            .colorUsingColorSpace(&color_space)
            .ok_or(Error::NullPointer)?;
        let mut r: f64 = 0.0;
        let mut g: f64 = 0.0;
        let mut b: f64 = 0.0;
        let mut a: f64 = 0.0;
        unsafe {
            accent.getRed_green_blue_alpha(&mut r, &mut g, &mut b, &mut a);
        }
        Ok(Color::new(
            (r * 255.0) as u8,
            (g * 255.0) as u8,
            (b * 255.0) as u8,
            (a * 255.0) as u8,
        ))
    })
    .flatten()
}