35 lines · 1.1 KB · Rust
RawDownload
use cocoa::{    appkit::{NSAppearanceNameVibrantDark, NSAppearanceNameVibrantLight},    base::id,    foundation::NSString,};use gpui::WindowAppearance;use objc::{msg_send, sel, sel_impl};use std::ffi::CStr; pub(crate) unsafe fn window_appearance_from_native(appearance: id) -> WindowAppearance {    let name: id = msg_send![appearance, name];    unsafe {        if name == NSAppearanceNameVibrantLight {            WindowAppearance::VibrantLight        } else if name == NSAppearanceNameVibrantDark {            WindowAppearance::VibrantDark        } else if name == NSAppearanceNameAqua {            WindowAppearance::Light        } else if name == NSAppearanceNameDarkAqua {            WindowAppearance::Dark        } else {            println!(                "unknown appearance: {:?}",                CStr::from_ptr(name.UTF8String())            );            WindowAppearance::Light        }    }} #[link(name = "AppKit", kind = "framework")]unsafe extern "C" {    pub static NSAppearanceNameAqua: id;    pub static NSAppearanceNameDarkAqua: id;}