فهرست منبع

feat: add window api

mrxiaozhuox 3 سال پیش
والد
کامیت
f28fb7165a
2فایلهای تغییر یافته به همراه30 افزوده شده و 5 حذف شده
  1. 12 2
      packages/desktop/src/desktop_context.rs
  2. 18 3
      packages/desktop/src/lib.rs

+ 12 - 2
packages/desktop/src/desktop_context.rs

@@ -58,11 +58,21 @@ impl DesktopContext {
         let _ = self.proxy.send_event(UserWindowEvent::FocusWindow);
     }
 
+    /// set resizable state
+    pub fn resizable(&self, resizable: bool) {
+        let _ = self.proxy.send_event(UserWindowEvent::Resizable(resizable));
+    }
+
     /// set window title
-    pub fn title(&self, title: &str) {
+    pub fn set_title(&self, title: &str) {
         let _ = self
             .proxy
-            .send_event(UserWindowEvent::Title(String::from(title)));
+            .send_event(UserWindowEvent::SetTitle(String::from(title)));
+    }
+
+    /// hide the menu
+    pub fn hide_menu(&self) {
+        let _ = self.proxy.send_event(UserWindowEvent::HideMenu);
     }
 }
 

+ 18 - 3
packages/desktop/src/lib.rs

@@ -321,12 +321,25 @@ pub fn launch_with_props<P: 'static + Send>(
                             window.set_focus();
                         }
                     }
-                    UserWindowEvent::Title(content) => {
+
+                    UserWindowEvent::SetTitle(content) => {
                         for webview in desktop.webviews.values() {
                             let window = webview.window();
                             window.set_title(&content);
                         }
                     }
+                    UserWindowEvent::Resizable(state) => {
+                        for webview in desktop.webviews.values() {
+                            let window = webview.window();
+                            window.set_resizable(state);
+                        }
+                    }
+                    UserWindowEvent::HideMenu => {
+                        for webview in desktop.webviews.values() {
+                            let window = webview.window();
+                            window.hide_menu();
+                        }
+                    }
                 }
             }
             Event::MainEventsCleared => {}
@@ -344,10 +357,12 @@ pub enum UserWindowEvent {
     DragWindow,
     CloseWindow,
     FocusWindow,
-
-    Title(String),
     Minimize(bool),
     Maximize(bool),
+    Resizable(bool),
+
+    SetTitle(String),
+    HideMenu,
 }
 
 pub struct DesktopController {