diff --git a/mods/view-scale/mod.js b/mods/view-scale/mod.js
index aed223d..ee122f9 100644
--- a/mods/view-scale/mod.js
+++ b/mods/view-scale/mod.js
@@ -17,35 +17,57 @@ module.exports = {
author: 'SP12893678',
options: [
{
- key: 'showUI',
+ key: 'show_ui',
label: 'show scale ui',
type: 'toggle',
value: true,
},
{
- key: 'canMouseWheel',
- label: 'use mouse wheel to scale',
- type: 'toggle',
- value: true,
+ key: 'offset',
+ label: 'set scale plus and minus offset',
+ type: 'input',
+ value: 10,
},
{
- key: 'canHotkey',
+ key: 'zoom',
+ label: 'set scale default value',
+ type: 'input',
+ value: 100,
+ },
+ {
+ key: 'can_hotkey',
label: 'use keyboard hotkey to scale',
type: 'toggle',
value: true,
},
{
- key: 'offset',
- label: 'set scale plus and minus offset',
- type: 'input',
- value: 10,
+ key: 'keyboard_select_modifier',
+ label:
+ 'keyboard hotkey select modifier',
+ type: 'select',
+ value: [
+ 'Control',
+ 'Alt',
+ ],
},
{
- key: 'zoom',
- label: 'set scale default value',
- type: 'input',
- value: 100,
- }
+ key: 'can_mouse_wheel',
+ label: 'use mouse wheel to scale',
+ type: 'toggle',
+ value: true,
+ },
+ {
+ key: 'mouse_wheel_select_modifier',
+ label:
+ 'mouse wheel select modifier',
+ type: 'select',
+ value: [
+ 'Control',
+ 'Alt',
+ 'Command',
+ 'Shift',
+ ],
+ },
],
hacks: {
'renderer/preload.js'(store, __exports) {
@@ -70,15 +92,9 @@ module.exports = {
const $scaleView = createElement('
100%
');
const $scaleMinusButton = createElement('-
');
- if(store().showUI){
- $scalePlusButton.addEventListener('click',()=>{
- zoomPlus()
- if(store().showUI) changeScaleViewUIValue()
- })
- $scaleMinusButton.addEventListener('click',()=>{
- zoomMinus()
- if(store().showUI) changeScaleViewUIValue()
- })
+ if(store().show_ui){
+ $scalePlusButton.addEventListener('click',()=> zoomPlus())
+ $scaleMinusButton.addEventListener('click',()=> zoomMinus())
$scaleSet.append($scalePlusButton)
$scaleSet.append($scaleView)
@@ -88,37 +104,30 @@ module.exports = {
changeScaleViewUIValue()
}
- if(store().canMouseWheel){
+
+ if(store().can_mouse_wheel){
document.defaultView.addEventListener('wheel', (event)=>{
- if (event.ctrlKey && event.deltaY < 0){
- zoomPlus()
- if(store().showUI) changeScaleViewUIValue()
- }
-
- if (event.ctrlKey && event.deltaY > 0){
- zoomMinus()
- if(store().showUI) changeScaleViewUIValue()
- }
+ let key = getSelectModifierInKeyBoradKey(store().mouse_wheel_select_modifier)
+ if (event[key] && event.deltaY < 0) zoomPlus()
+ if (event[key] && event.deltaY > 0) zoomMinus()
});
}
- if(store().canHotkey){
- document.defaultView.addEventListener('keydown', (event) => {
- if (event.key == '+' && event.ctrlKey){
- zoomPlus()
- if(store().showUI) changeScaleViewUIValue()
- }
-
- if (event.key == '-' && event.ctrlKey){
- zoomMinus()
- if(store().showUI) changeScaleViewUIValue()
- }
+ if(store().can_hotkey){
+ document.defaultView.addEventListener('keyup', (event) => {
+ let key = getSelectModifierInKeyBoradKey(store().keyboard_select_modifier)
+ if (event[key] && event.key == '+') zoomPlus()
+ if (event[key] && event.key == '-') zoomMinus()
})
}
+
+ document.defaultView.addEventListener('resize',(event) =>{
+ zoom = electron.webFrame.getZoomFactor()
+ if(store().show_ui) changeScaleViewUIValue()
+ });
const observer = new MutationObserver((list, observer) => {
electron.webFrame.setZoomFactor(zoom)
- if(store().showUI) changeScaleViewUIValue()
});
observer.observe(document.querySelector('.notion-frame'), {
@@ -126,12 +135,14 @@ module.exports = {
});
function zoomPlus() {
+ zoom = electron.webFrame.getZoomFactor()
if(zoom + offset > maxZoom) return
zoom += offset
electron.webFrame.setZoomFactor(zoom)
}
function zoomMinus() {
+ zoom = electron.webFrame.getZoomFactor()
if(zoom + offset < minZoom) return
zoom -= offset
electron.webFrame.setZoomFactor(zoom)
@@ -140,6 +151,27 @@ module.exports = {
function changeScaleViewUIValue() {
$scaleView.innerHTML = Math.round(zoom * 100) + "%"
}
+
+ function getSelectModifierInKeyBoradKey(select_modifier) {
+ let key = 'ctrlKey'
+ switch (select_modifier) {
+ case 'Control':
+ key = 'ctrlKey'
+ break;
+ case 'Alt':
+ key = 'altKey'
+ break;
+ case 'Command':
+ key = 'metaKey'
+ break;
+ case 'Shift':
+ key = 'shiftKey'
+ break;
+ default:
+ break;
+ }
+ return key
+ }
}
})
},