mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-10-01 16:18:11 +08:00
Simplify platform-specific keyboard layouts with Accel key and global platform variable (#748)
* Simplify platform-specific keyboard layouts with Accel key and global platform variable Co-authored-by: Dennis <dennis@kobert.dev>
This commit is contained in:
co-authored by
Dennis
parent
d8ae727ea9
commit
776992a297
@@ -0,0 +1,5 @@
|
||||
use crate::messages::portfolio::document::utility_types::misc::Platform;
|
||||
|
||||
use once_cell::sync::OnceCell;
|
||||
|
||||
pub static GLOBAL_PLATFORM: OnceCell<Platform> = OnceCell::new();
|
||||
@@ -0,0 +1,10 @@
|
||||
use crate::messages::portfolio::document::utility_types::misc::Platform;
|
||||
use crate::messages::prelude::*;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[impl_message(Message, Globals)]
|
||||
#[derive(PartialEq, Eq, Clone, Debug, Serialize, Deserialize)]
|
||||
pub enum GlobalsMessage {
|
||||
SetPlatform { platform: Platform },
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
use crate::messages::prelude::*;
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct GlobalsMessageHandler {}
|
||||
|
||||
impl MessageHandler<GlobalsMessage, ()> for GlobalsMessageHandler {
|
||||
#[remain::check]
|
||||
fn process_message(&mut self, message: GlobalsMessage, _data: (), _responses: &mut VecDeque<Message>) {
|
||||
match message {
|
||||
GlobalsMessage::SetPlatform { platform } => {
|
||||
GLOBAL_PLATFORM.set(platform).expect("Failed to set GLOBAL_PLATFORM");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
advertise_actions!(GlobalsMessageDiscriminant;
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
mod globals_message;
|
||||
mod globals_message_handler;
|
||||
|
||||
pub mod global_variables;
|
||||
|
||||
#[doc(inline)]
|
||||
pub use globals_message::{GlobalsMessage, GlobalsMessageDiscriminant};
|
||||
#[doc(inline)]
|
||||
pub use globals_message_handler::GlobalsMessageHandler;
|
||||
Reference in New Issue
Block a user