From f8b2a4d652f686e740da9f94e491a4711186de7d Mon Sep 17 00:00:00 2001
From: Devine Lu Linvega <aliceffekt@gmail.com>
Date: Sun, 14 Jul 2019 20:21:12 +0900
Subject: [PATCH] Added zoom

---
 desktop/sources/index.html       |  5 ++++-
 desktop/sources/scripts/ronin.js | 22 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/desktop/sources/index.html b/desktop/sources/index.html
index a775c71..62e6443 100644
--- a/desktop/sources/index.html
+++ b/desktop/sources/index.html
@@ -26,7 +26,7 @@
       ronin.controller.add("default","*","Fullscreen",() => { app.toggleFullscreen() },"CmdOrCtrl+Enter");
       ronin.controller.add("default","*","Hide",() => { app.toggleVisible() },"CmdOrCtrl+H");
       ronin.controller.add("default","*","Inspect",() => { app.inspect() },"CmdOrCtrl+.");
-      ronin.controller.add("default","*","Reset",() => { dotgrid.reset(); dotgrid.theme.reset() },"CmdOrCtrl+Backspace");
+      ronin.controller.add("default","*","Reset",() => { ronin.reset(); ronin.theme.reset() },"CmdOrCtrl+Backspace");
       ronin.controller.add("default","*","Quit",() => { ronin.source.quit() },"CmdOrCtrl+Q");
       ronin.controller.add("default","File","New",() => { ronin.source.new() },"CmdOrCtrl+N")
       ronin.controller.add("default","File","Save",() => { ronin.source.save() },"CmdOrCtrl+S")
@@ -40,6 +40,9 @@
       ronin.controller.addRole('default', 'Edit', 'paste')
       ronin.controller.addRole('default', 'Edit', 'delete')
       ronin.controller.addRole('default', 'Edit', 'selectall')
+      ronin.controller.add("default","View","Zoom In",() => { ronin.modZoom(0.25) },"CmdOrCtrl+=")
+      ronin.controller.add("default","View","Zoom Out",() => { ronin.modZoom(-0.25) },"CmdOrCtrl+-")
+      ronin.controller.add("default","View","Zoom Reset",() => { ronin.modZoom(1,true) },"CmdOrCtrl+0")
       ronin.controller.add("default","Project","Run",() => { ronin.commander.run(); },"CmdOrCtrl+R");
       ronin.controller.add("default","Project","Reload Run",() => { ronin.source.revert(); ronin.commander.run(); },"CmdOrCtrl+Shift+R");
       ronin.controller.add("default","Commander","Toggle",() => { ronin.commander.toggle(); },"CmdOrCtrl+K");
diff --git a/desktop/sources/scripts/ronin.js b/desktop/sources/scripts/ronin.js
index 7cf3dd4..1ac9076 100644
--- a/desktop/sources/scripts/ronin.js
+++ b/desktop/sources/scripts/ronin.js
@@ -56,6 +56,28 @@ function Ronin () {
   this.load = function (content = this.default()) {
 
   }
+
+  // Zoom
+
+  this.modZoom = function (mod = 0, set = false) {
+    try {
+      const { webFrame } = require('electron')
+      const currentZoomFactor = webFrame.getZoomFactor()
+      webFrame.setZoomFactor(set ? mod : currentZoomFactor + mod)
+      console.log(window.devicePixelRatio)
+    } catch (err) {
+      console.log('Cannot zoom')
+    }
+  }
+
+  this.setZoom = function (scale) {
+    try {
+      webFrame.setZoomFactor(scale)
+    } catch (err) {
+      console.log('Cannot zoom')
+    }
+  }
+
   // Events
 
   this.drag = (e) => {