From 56502fd0e520de4e353c89c94965099287beb07a Mon Sep 17 00:00:00 2001 From: Federico Terzi Date: Fri, 23 Jul 2021 22:14:44 +0200 Subject: [PATCH] feat(modulo): implement already_running flag on welcome gui --- espanso-modulo/src/sys/interop/interop.h | 2 ++ espanso-modulo/src/sys/interop/mod.rs | 2 ++ espanso-modulo/src/sys/welcome/mod.rs | 1 + espanso-modulo/src/sys/welcome/welcome.cpp | 6 ++++++ espanso-modulo/src/welcome/mod.rs | 1 + 5 files changed, 12 insertions(+) diff --git a/espanso-modulo/src/sys/interop/interop.h b/espanso-modulo/src/sys/interop/interop.h index 1fd0e9f..d5e1365 100644 --- a/espanso-modulo/src/sys/interop/interop.h +++ b/espanso-modulo/src/sys/interop/interop.h @@ -126,6 +126,8 @@ typedef struct WelcomeMetadata { const char *window_icon_path; const char *tray_image_path; + const int already_running; + // METHODS int (*dont_show_again_changed)(int); } WelcomeMetadata; diff --git a/espanso-modulo/src/sys/interop/mod.rs b/espanso-modulo/src/sys/interop/mod.rs index 7d8b06d..2ffa0d0 100644 --- a/espanso-modulo/src/sys/interop/mod.rs +++ b/espanso-modulo/src/sys/interop/mod.rs @@ -143,6 +143,8 @@ pub struct WelcomeMetadata { pub window_icon_path: *const c_char, pub tray_image_path: *const c_char, + pub already_running: c_int, + pub dont_show_again_changed: extern fn(c_int), } diff --git a/espanso-modulo/src/sys/welcome/mod.rs b/espanso-modulo/src/sys/welcome/mod.rs index afdf951..d5b631d 100644 --- a/espanso-modulo/src/sys/welcome/mod.rs +++ b/espanso-modulo/src/sys/welcome/mod.rs @@ -52,6 +52,7 @@ pub fn show(options: WelcomeOptions) { let welcome_metadata = WelcomeMetadata { window_icon_path: c_window_icon_path_ptr, tray_image_path: c_tray_image_path_ptr, + already_running: if options.is_already_running { 1 } else { 0 }, dont_show_again_changed, }; diff --git a/espanso-modulo/src/sys/welcome/welcome.cpp b/espanso-modulo/src/sys/welcome/welcome.cpp index ec9c863..d6c0201 100644 --- a/espanso-modulo/src/sys/welcome/welcome.cpp +++ b/espanso-modulo/src/sys/welcome/welcome.cpp @@ -64,6 +64,12 @@ DerivedWelcomeFrame::DerivedWelcomeFrame(wxWindow *parent) { this->tray_info_label->Hide(); } + + this->dont_show_checkbox->Hide(); + + if (welcome_metadata->already_running) { + this->title_label->SetLabel("Espanso is already running!"); + } } void DerivedWelcomeFrame::on_dont_show_change( wxCommandEvent& event ) { diff --git a/espanso-modulo/src/welcome/mod.rs b/espanso-modulo/src/welcome/mod.rs index 0fbae5f..4d7c2fe 100644 --- a/espanso-modulo/src/welcome/mod.rs +++ b/espanso-modulo/src/welcome/mod.rs @@ -22,6 +22,7 @@ pub use crate::sys::welcome::show; pub struct WelcomeOptions { pub window_icon_path: Option, pub tray_image_path: Option, + pub is_already_running: bool, pub handlers: WelcomeHandlers, }