use mlua::UserData; use self::{editor::EditorTheme, view::SheetViewTheme}; use super::DUMMY_CONFIG; mod bar; pub mod editor; pub mod view; pub mod style; #[derive(Clone, Debug, Default)] pub struct Theme { pub view: SheetViewTheme, pub editor: EditorTheme, } impl Theme { pub const fn new() -> Self { Self { view: SheetViewTheme::new(), editor: EditorTheme::new(), } } } impl UserData for Theme { fn add_fields<'lua, F: mlua::prelude::LuaUserDataFields<'lua, Self>>(fields: &mut F) { fields.add_field_function_get("view", |_, _| Ok(DUMMY_CONFIG.theme.view)); fields.add_field_function_get("editor", |_, _| Ok(DUMMY_CONFIG.theme.editor)) } }