Skip to content

Commit 7988c0d

Browse files
committed
Remove selectors from menu
1 parent 6aa9d8f commit 7988c0d

File tree

5 files changed

+156
-98
lines changed

5 files changed

+156
-98
lines changed

gulpfile.coffee

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ gulp.task 'webpack', ->
6666
'menu-item'
6767
'browser-window'
6868
'dialog'
69+
'shell'
6970
# Module
7071
'chokidar'
7172
]

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,4 @@
5656
"webpack": "^1.10.1",
5757
"yargs": "^3.15.0"
5858
}
59-
}
59+
}

src/main/events.coffee

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
module.exports =
2+
OPEN_NEW_WINDOW: 'open-new-window'
3+
OPEN_FILE: 'open-file'
4+
QUIT: 'quit'
5+
OPEN_ABOUT_DIALOG: 'open-about-dialog'
26
TOGGLE_DEVTOOLS: 'toggle-devtools'
37
RELOAD: 'reload'
4-
OPEN_FILE: 'open-file'
5-
OPEN_NEW_WINDOW: 'open-new-window'
8+
OPEN_HELP: 'open-help'

src/main/main.coffee

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
require('crash-reporter').start()
22
app = require 'app'
3+
dialog = require 'dialog'
4+
shell = require 'shell'
35
{writeFileSync, readFileSync} = require 'fs'
46

57
mediator = require './mediator'
@@ -18,6 +20,9 @@ class Main
1820
app.on 'quit', @onQuit
1921

2022
mediator.on events.OPEN_NEW_WINDOW, @onOpenNewWindowRequested
23+
mediator.on events.QUIT, @onQuitRequested
24+
mediator.on events.OPEN_ABOUT_DIALOG, @onOpenAboutDialogRequested
25+
mediator.on events.OPEN_HELP, @onOpenHelpRequested
2126

2227
onReady: =>
2328
@menu = new Menu
@@ -32,13 +37,33 @@ class Main
3237

3338
onOpenNewWindowRequested: => @openNewWindow()
3439

35-
onQuitRequested: => app.quit()
40+
onQuitRequested: => @quit()
41+
42+
onOpenAboutDialogRequested: => @openAboutDialog()
43+
44+
onOpenHelpRequested: => @openHelp()
3645

3746
openNewWindow: ->
3847
window = new Window
3948
window.on 'closed', @onWindowClosed
4049
@windows.push window
4150

51+
quit: -> app.quit()
52+
53+
openAboutDialog: ->
54+
dialog.showMessageBox
55+
type: 'info' # String - Can be "none", "info" or "warning"
56+
buttons: ['ok'] # Array - Array of texts for buttons
57+
title: 'About Markn' # String - Title of the message box, some platforms will not show it
58+
message: 'Markn' # String - Content of the message box
59+
detail: """
60+
Lightweight markdown viewer
61+
v0.0.1
62+
""" # String - Extra information of the message
63+
# icon NativeImage
64+
65+
openHelp: -> shell.openExternal "https://github.com/minodisk/markn/blob/v#{app.getVersion()}/README.md#readme"
66+
4267
onWindowClosed: (e) =>
4368
window = e.currentTarget
4469
window.removeAllListeners()

src/main/menu.coffee

Lines changed: 123 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -8,99 +8,128 @@ events = require './events'
88
module.exports = class
99

1010
constructor: ->
11-
Menu.setApplicationMenu Menu.buildFromTemplate [
12-
label: 'Markn'
13-
submenu: [
14-
label: 'About Electron'
15-
selector: 'orderFrontStandardAboutPanel:'
16-
,
17-
type: 'separator'
18-
,
19-
label: 'Hide Electron'
20-
accelerator: 'CommandOrControl+H'
21-
selector: 'hide:'
22-
,
23-
label: 'Hide Others'
24-
accelerator: 'CommandOrControl+Shift+H'
25-
selector: 'hideOtherApplications:'
26-
,
27-
label: 'Show All'
28-
selector: 'unhideAllApplications:'
29-
,
30-
type: 'separator'
31-
,
32-
label: 'Quit'
33-
accelerator: 'CommandOrControl+Q'
34-
selector: 'terminate:'
35-
]
36-
,
37-
label: 'File'
38-
submenu: [
39-
label: 'New Window'
40-
accelerator: 'CommandOrControl+N'
41-
click: -> mediator.emit events.OPEN_NEW_WINDOW
42-
,
43-
label: 'Open File'
44-
accelerator: 'CommandOrControl+O'
45-
click: -> mediator.emit events.OPEN_FILE
46-
]
47-
,
48-
label: 'Edit'
49-
submenu: [
50-
label: 'Undo'
51-
accelerator: 'CommandOrControl+Z'
52-
selector: 'undo:'
53-
,
54-
label: 'Redo'
55-
accelerator: 'Shift+CommandOrControl+Z'
56-
selector: 'redo:'
57-
,
58-
type: 'separator'
59-
,
60-
label: 'Cut'
61-
accelerator: 'CommandOrControl+X'
62-
selector: 'cut:'
63-
,
64-
label: 'Copy'
65-
accelerator: 'CommandOrControl+C'
66-
selector: 'copy:'
67-
,
68-
label: 'Paste'
69-
accelerator: 'CommandOrControl+V'
70-
selector: 'paste:'
71-
,
72-
label: 'Select All'
73-
accelerator: 'CommandOrControl+A'
74-
selector: 'selectAll:'
11+
Menu.setApplicationMenu Menu.buildFromTemplate if Menu.sendActionToFirstResponder?
12+
[
13+
label: 'Markn'
14+
submenu: [
15+
label: 'About Markn'
16+
click: -> mediator.emit events.OPEN_ABOUT_DIALOG
17+
,
18+
type: 'separator'
19+
,
20+
label: 'Hide Electron'
21+
accelerator: 'CommandOrControl+H'
22+
selector: 'hide:'
23+
,
24+
label: 'Hide Others'
25+
accelerator: 'CommandOrControl+Shift+H'
26+
selector: 'hideOtherApplications:'
27+
,
28+
label: 'Show All'
29+
selector: 'unhideAllApplications:'
30+
,
31+
type: 'separator'
32+
,
33+
label: 'Quit'
34+
accelerator: 'CommandOrControl+Q'
35+
selector: 'terminate:'
36+
]
37+
,
38+
label: 'File'
39+
submenu: [
40+
label: 'New Window'
41+
accelerator: 'CommandOrControl+N'
42+
click: -> mediator.emit events.OPEN_NEW_WINDOW
43+
,
44+
label: 'Open File'
45+
accelerator: 'CommandOrControl+O'
46+
click: -> mediator.emit events.OPEN_FILE
47+
]
48+
,
49+
label: 'Edit'
50+
submenu: [
51+
# label: 'Undo'
52+
# accelerator: 'CommandOrControl+Z'
53+
# selector: 'undo:'
54+
# ,
55+
# label: 'Redo'
56+
# accelerator: 'Shift+CommandOrControl+Z'
57+
# selector: 'redo:'
58+
# ,
59+
# type: 'separator'
60+
# ,
61+
label: 'Cut'
62+
accelerator: 'CommandOrControl+X'
63+
selector: 'cut:'
64+
,
65+
label: 'Copy'
66+
accelerator: 'CommandOrControl+C'
67+
selector: 'copy:'
68+
,
69+
label: 'Paste'
70+
accelerator: 'CommandOrControl+V'
71+
selector: 'paste:'
72+
,
73+
label: 'Select All'
74+
accelerator: 'CommandOrControl+A'
75+
selector: 'selectAll:'
76+
]
77+
,
78+
label: 'View'
79+
submenu: [
80+
label: 'Reload'
81+
accelerator: 'CommandOrControl+R'
82+
click: -> mediator.emit events.RELOAD
83+
,
84+
label: 'Toggle DevTools'
85+
accelerator: 'Alt+CommandOrControl+I'
86+
click: -> mediator.emit events.TOGGLE_DEVTOOLS
87+
]
88+
,
89+
label: 'Window'
90+
submenu: [
91+
label: 'Minimize'
92+
accelerator: 'CommandOrControl+M'
93+
selector: 'performMiniaturize:'
94+
,
95+
label: 'Close'
96+
accelerator: 'CommandOrControl+W'
97+
selector: 'performClose:'
98+
,
99+
type: 'separator'
100+
,
101+
label: 'Bring All to Front'
102+
selector: 'arrangeInFront:'
103+
]
104+
,
105+
label: 'Help'
106+
submenu: [
107+
label: 'Markn Help'
108+
click: -> mediator.emit events.OPEN_HELP
109+
]
75110
]
76-
,
77-
label: 'View'
78-
submenu: [
79-
label: 'Reload'
80-
accelerator: 'CommandOrControl+R'
81-
click: -> mediator.emit events.RELOAD
82-
,
83-
label: 'Toggle DevTools'
84-
accelerator: 'Alt+CommandOrControl+I'
85-
click: -> mediator.emit events.TOGGLE_DEVTOOLS
86-
]
87-
,
88-
label: 'Window'
89-
submenu: [
90-
label: 'Minimize'
91-
accelerator: 'CommandOrControl+M'
92-
selector: 'performMiniaturize:'
93-
,
94-
label: 'Close'
95-
accelerator: 'CommandOrControl+W'
96-
selector: 'performClose:'
97-
,
98-
type: 'separator'
99-
,
100-
label: 'Bring All to Front'
101-
selector: 'arrangeInFront:'
111+
else
112+
[
113+
label: 'File'
114+
submenu: [
115+
label: 'New Window'
116+
accelerator: 'CommandOrControl+N'
117+
click: -> mediator.emit events.OPEN_NEW_WINDOW
118+
,
119+
label: 'Open File'
120+
accelerator: 'CommandOrControl+O'
121+
click: -> mediator.emit events.OPEN_FILE
122+
,
123+
type: 'separator'
124+
,
125+
label: 'Exit'
126+
accelerator: 'CommandOrControl+Q'
127+
click: -> mediator.emit events.QUIT
128+
]
129+
,
130+
label: 'Help'
131+
submenu: [
132+
label: 'About Markn'
133+
click: -> mediator.emit events.OPEN_ABOUT_DIALOG
134+
]
102135
]
103-
,
104-
label: 'Help'
105-
submenu: []
106-
]

0 commit comments

Comments
 (0)