Skip to content

Commit

Permalink
settings & updater
Browse files Browse the repository at this point in the history
  • Loading branch information
RoderickQiu committed Jan 23, 2019
1 parent eeecdc9 commit 851acb6
Show file tree
Hide file tree
Showing 9 changed files with 399 additions and 98 deletions.
31 changes: 26 additions & 5 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,36 @@
<script>if (typeof module === 'object') { window.module = module; module = undefined; }</script><!-- solve the electron-jquery conflict -->
<script src="res/lib/jquery-3.3.1.min.js"></script>
<script src="res/lib/bootstrap.min.js"></script>
<script src="updater.js"></script>
<link rel="stylesheet" type="text/css" href="res/lib/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="style.css" />
<script>
function about() {
const { BrowserWindow } = require('electron').remote;
let aboutWin = new BrowserWindow({ width: 233, height: 216, resizable: false, frame: false, show: false, center: true, webPreferences: { nodeIntegration: true } });
aboutWin.loadFile("about.html");
if (store.get("top") == true || store.get("top") == undefined) aboutWin.setAlwaysOnTop(true);
aboutWin.once('ready-to-show', () => {
aboutWin.show()
aboutWin.show();
})
}
function settings() {
const { BrowserWindow } = require('electron').remote;
var ipc = require('electron').ipcRenderer;
let settingsWin = new BrowserWindow({ width: 480, height: 540, resizable: false, frame: false, show: false, center: true, webPreferences: { nodeIntegration: true } });
settingsWin.loadFile("settings.html");
if (store.get("top") == true || store.get("top") == undefined) settingsWin.setAlwaysOnTop(true);
settingsWin.once('ready-to-show', () => {
settingsWin.show();
})
settingsWin.on('closed', () => {
ipc.send('reload');
})
}
</script>
</head>

<body>
<body onpaste="return false"><!-- prevent people from pasting abnormal content -->
<script>
function keydown(e) {
var currKey = 0, e = e || event;
Expand All @@ -35,21 +50,27 @@
</script>
<div class="d-flex mx-auto justify-content-center align-items-center text-dark" id="main">
<div id="controller">
<a href="javascript:settings()" class="small rest">Settings</a>&nbsp;
<a href="javascript:about()" class="small rest">About</a>&nbsp;
<a href="javascript:window.close()" class="small rest">X</a>
</div>
<div id="set" class="justify-content-center">
<form action="timer.html" method="GET">
<input name="title" id="title" placeholder="please enter a title" type="text" class="small" maxlength="14" /><br /><br />
<input name="work-time" id="work-time" placeholder="work for (minutes)" type="number" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
<input name="work-time" id="work-time" placeholder="work for (minutes)" type="number" onkeypress="return (/[0-9]/.test(String.fromCharCode(event.keyCode)))"
style="ime-mode:Disabled" class="work lead" autofocus required /><br /><br />
<input name="rest-time" id="rest-time" placeholder="then rest for (minutes)" type="number" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
<input name="rest-time" id="rest-time" placeholder="then rest for (minutes)" type="number" onkeypress="return (/[0-9]/.test(String.fromCharCode(event.keyCode)))"
style="ime-mode:Disabled" class="rest lead" required /><br /><br />
<input name="loop" id="loop" placeholder="loop for how many times" type="number" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
<input name="loop" id="loop" placeholder="loop for how many times" type="number" onkeypress="return (/[0-9]/.test(String.fromCharCode(event.keyCode)))"
style="ime-mode:Disabled" class="small" required /><br /><!-- control that only numbers are OK -->
</form>
</div>
</div>
<script>
$("#work-time").val(store.get("worktime"));
$("#rest-time").val(store.get("resttime"));
$("#loop").val(store.get("looptime"));
</script>
</body>

</html>
13 changes: 11 additions & 2 deletions main.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
const { app, BrowserWindow, ipcMain, Tray, Menu, globalShortcut } = require('electron')
const Store = require('electron-store');
const store = new Store();

// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let win
Expand Down Expand Up @@ -48,14 +51,14 @@ app.on('will-quit', () => {
globalShortcut.unregisterAll()
})



// Electron 会在初始化后并准备
// 创建浏览器窗口时,调用这个函数。
// 部分 API 在 ready 事件触发后才能使用。
app.on('ready', () => {
createWindow()

if (store.get("top") == true || store.get("top") == undefined) win.setAlwaysOnTop(true);

tray = new Tray('./res/icons/iconWin.ico')
const contextMenu = Menu.buildFromTemplate([
{ label: 'Show/Hide', click: () => { win.isVisible() ? win.hide() : win.show() } },
Expand Down Expand Up @@ -130,6 +133,12 @@ ipcMain.on('warninggiver', function () {
}
})

ipcMain.on('reload', function () {
if (win != null) {
win.reload();
}
})

/* 参考:
- https://blog.avocode.com/4-must-know-tips-for-building-cross-platform-electron-apps-f3ae9c2bffff [need proxy]
- https://electronjs.org/docs
Expand Down
Loading

0 comments on commit 851acb6

Please sign in to comment.