Show a friendly guide when atom-shell is opened without app.

This commit is contained in:
Cheng Zhao 2014-05-05 15:45:50 +08:00
parent 3c0ec73d75
commit a132d2e5a0
4 changed files with 34 additions and 40 deletions

View file

@ -1,6 +1,4 @@
var app = require('app');
var dialog = require('dialog');
var ipc = require('ipc');
var Menu = require('menu');
var MenuItem = require('menu-item');
var BrowserWindow = require('browser-window');
@ -13,30 +11,12 @@ app.on('window-all-closed', function() {
app.quit();
});
app.on('open-url', function(event, url) {
dialog.showMessageBox({message: url, buttons: ['OK']});
});
app.on('ready', function() {
app.commandLine.appendSwitch('js-flags', '--harmony_collections');
mainWindow = new BrowserWindow({ width: 800, height: 600 });
mainWindow.loadUrl('file://' + __dirname + '/index.html');
mainWindow.on('page-title-updated', function(event, title) {
event.preventDefault();
this.setTitle('Atom Shell - ' + title);
});
mainWindow.on('closed', function() {
mainWindow = null;
});
mainWindow.on('unresponsive', function() {
console.log('unresponsive');
});
if (process.platform == 'darwin') {
var template = [
{
@ -117,16 +97,16 @@ app.on('ready', function() {
{
label: 'Reload',
accelerator: 'Command+R',
click: function() { BrowserWindow.getFocusedWindow().restart(); }
click: function() { mainWindow.restart(); }
},
{
label: 'Enter Fullscreen',
click: function() { BrowserWindow.getFocusedWindow().setFullscreen(true); }
click: function() { mainWindow.setFullscreen(true); }
},
{
label: 'Toggle DevTools',
accelerator: 'Alt+Command+I',
click: function() { BrowserWindow.getFocusedWindow().toggleDevTools(); }
click: function() { mainWindow.toggleDevTools(); }
},
]
},
@ -196,9 +176,4 @@ app.on('ready', function() {
menu = Menu.buildFromTemplate(template);
mainWindow.setMenu(menu);
}
ipc.on('message', function(processId, routingId, type) {
if (type == 'menu')
menu.popup(mainWindow);
});
});

View file

@ -1,18 +1,36 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Atom Shell</title>
<style></style>
</head>
<body>
This is the default mode of Atom Shell, please follow the instructions in
wiki to get started.
<script type="text/javascript" charset="utf-8">
var ipc = require('ipc');
<script>
var execPath = require('remote').process.execPath;
var command = execPath + ' path-to-your-app';
window.addEventListener('contextmenu', function (e) {
e.preventDefault();
ipc.send('menu');
}, false);
var openWiki = function() {
require('shell').openExternal('https://github.com/atom/atom-shell/blob/master/docs/tutorial/quick-start.md');
}
</script>
<h1>Welcome to Atom Shell!</h1>
<p>
Atom Shell is a cross-platform desktop application shell that enables you to
build native like applications with node.js and web page engine of Chromium.
</p>
<p>
To run your app with atom-shell, execute the following command under your
Console (or Terminal):
</p>
<script>document.write('<pre>' + command + '</pre>')</script>
<p>
The <code>path-to-your-app</code> should be the path to your own atom-shell
app, you can read the <a href="javascript:openWiki()">Quick Start</a> guide
in atom-shell's docs on how to write one.
</p>
</body>
</html>

View file

@ -1,5 +1,6 @@
{
"name": "atom-shell-default-app",
"productName": "Atom Shell Default App",
"version": "0.1.0",
"main": "main.js",
"dependencies": {

View file

@ -15,11 +15,11 @@ describe 'app module', ->
describe 'app.getName()', ->
it 'returns the name field of package.json', ->
assert.equal app.getName(), 'atom-shell-default-app'
assert.equal app.getName(), 'Atom Shell Default App'
describe 'app.setName(name)', ->
it 'overrides the name', ->
assert.equal app.getName(), 'atom-shell-default-app'
assert.equal app.getName(), 'Atom Shell Default App'
app.setName 'test-name'
assert.equal app.getName(), 'test-name'
app.setName 'atom-shell-default-app'
app.setName 'Atom Shell Default App'