|
@@ -115,6 +115,16 @@ impl DesktopContext {
|
|
|
let _ = self.proxy.send_event(SetDecorations(decoration));
|
|
|
}
|
|
|
|
|
|
+ /// set window zoom level
|
|
|
+ pub fn set_zoom_level(&self, scale_factor: f64) {
|
|
|
+ let _ = self.proxy.send_event(SetZoomLevel(scale_factor));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// launch print modal
|
|
|
+ pub fn print(&self) {
|
|
|
+ let _ = self.proxy.send_event(Print);
|
|
|
+ }
|
|
|
+
|
|
|
/// opens DevTool window
|
|
|
pub fn devtool(&self) {
|
|
|
let _ = self.proxy.send_event(DevTool);
|
|
@@ -148,6 +158,9 @@ pub enum UserWindowEvent {
|
|
|
SetTitle(String),
|
|
|
SetDecorations(bool),
|
|
|
|
|
|
+ SetZoomLevel(f64),
|
|
|
+
|
|
|
+ Print,
|
|
|
DevTool,
|
|
|
|
|
|
Eval(String),
|
|
@@ -191,11 +204,22 @@ pub(super) fn handler(
|
|
|
SetTitle(content) => window.set_title(&content),
|
|
|
SetDecorations(state) => window.set_decorations(state),
|
|
|
|
|
|
- DevTool => {}
|
|
|
+ SetZoomLevel(scale_factor) => webview.zoom(scale_factor),
|
|
|
|
|
|
- Eval(code) => webview
|
|
|
- .evaluate_script(code.as_str())
|
|
|
- .expect("eval shouldn't panic"),
|
|
|
+ Print => {
|
|
|
+ if let Err(e) = webview.print() {
|
|
|
+ // we can't panic this error.
|
|
|
+ log::warn!("Open print modal failed: {e}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ DevTool => webview.open_devtools(),
|
|
|
+
|
|
|
+ Eval(code) => {
|
|
|
+ if let Err(e) = webview.evaluate_script(code.as_str()) {
|
|
|
+ // we can't panic this error.
|
|
|
+ log::warn!("Eval script error: {e}");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|