Add the 'app' built-in module.
This commit is contained in:
parent
d151d494bd
commit
66404b5f15
5 changed files with 84 additions and 0 deletions
3
atom.gyp
3
atom.gyp
|
@ -6,6 +6,7 @@
|
||||||
'app/atom_main.cc',
|
'app/atom_main.cc',
|
||||||
],
|
],
|
||||||
'coffee_sources': [
|
'coffee_sources': [
|
||||||
|
'browser/api/lib/app.coffee',
|
||||||
'browser/api/lib/atom.coffee',
|
'browser/api/lib/atom.coffee',
|
||||||
'browser/api/lib/ipc.coffee',
|
'browser/api/lib/ipc.coffee',
|
||||||
'browser/api/lib/window.coffee',
|
'browser/api/lib/window.coffee',
|
||||||
|
@ -21,6 +22,8 @@
|
||||||
'lib_sources': [
|
'lib_sources': [
|
||||||
'app/atom_main_delegate.cc',
|
'app/atom_main_delegate.cc',
|
||||||
'app/atom_main_delegate.h',
|
'app/atom_main_delegate.h',
|
||||||
|
'browser/api/atom_api_app.cc',
|
||||||
|
'browser/api/atom_api_app.h',
|
||||||
'browser/api/atom_api_browser_ipc.cc',
|
'browser/api/atom_api_browser_ipc.cc',
|
||||||
'browser/api/atom_api_browser_ipc.h',
|
'browser/api/atom_api_browser_ipc.h',
|
||||||
'browser/api/atom_api_event.cc',
|
'browser/api/atom_api_event.cc',
|
||||||
|
|
42
browser/api/atom_api_app.cc
Normal file
42
browser/api/atom_api_app.cc
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// Copyright (c) 2013 GitHub, Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
#include "browser/api/atom_api_app.h"
|
||||||
|
|
||||||
|
#include "browser/browser.h"
|
||||||
|
#include "vendor/node/src/node.h"
|
||||||
|
|
||||||
|
namespace atom {
|
||||||
|
|
||||||
|
namespace api {
|
||||||
|
|
||||||
|
// static
|
||||||
|
v8::Handle<v8::Value> App::Quit(const v8::Arguments &args) {
|
||||||
|
v8::HandleScope scope;
|
||||||
|
|
||||||
|
Browser::Get()->Quit();
|
||||||
|
|
||||||
|
return v8::Undefined();
|
||||||
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
v8::Handle<v8::Value> App::Terminate(const v8::Arguments &args) {
|
||||||
|
v8::HandleScope scope;
|
||||||
|
|
||||||
|
Browser::Get()->Terminate();
|
||||||
|
|
||||||
|
return v8::Undefined();
|
||||||
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
void App::Initialize(v8::Handle<v8::Object> target) {
|
||||||
|
node::SetMethod(target, "quit", Quit);
|
||||||
|
node::SetMethod(target, "terminate", Terminate);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace api
|
||||||
|
|
||||||
|
} // namespace atom
|
||||||
|
|
||||||
|
NODE_MODULE(atom_browser_app, atom::api::App::Initialize)
|
30
browser/api/atom_api_app.h
Normal file
30
browser/api/atom_api_app.h
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
// Copyright (c) 2013 GitHub, Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
#ifndef ATOM_BROWSER_API_ATOM_API_APP_H_
|
||||||
|
#define ATOM_BROWSER_API_ATOM_API_APP_H_
|
||||||
|
|
||||||
|
#include "base/basictypes.h"
|
||||||
|
#include "v8/include/v8.h"
|
||||||
|
|
||||||
|
namespace atom {
|
||||||
|
|
||||||
|
namespace api {
|
||||||
|
|
||||||
|
class App {
|
||||||
|
public:
|
||||||
|
static void Initialize(v8::Handle<v8::Object> target);
|
||||||
|
|
||||||
|
private:
|
||||||
|
static v8::Handle<v8::Value> Quit(const v8::Arguments &args);
|
||||||
|
static v8::Handle<v8::Value> Terminate(const v8::Arguments &args);
|
||||||
|
|
||||||
|
DISALLOW_IMPLICIT_CONSTRUCTORS(App);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace api
|
||||||
|
|
||||||
|
} // namespace atom
|
||||||
|
|
||||||
|
#endif // ATOM_BROWSER_API_ATOM_API_APP_H_
|
8
browser/api/lib/app.coffee
Normal file
8
browser/api/lib/app.coffee
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
binding = process.atomBinding 'app'
|
||||||
|
EventEmitter = require('events').EventEmitter
|
||||||
|
|
||||||
|
class App extends EventEmitter
|
||||||
|
quit: binding.quit
|
||||||
|
terminate: binding.terminate
|
||||||
|
|
||||||
|
module.exports = new App
|
|
@ -9,6 +9,7 @@
|
||||||
NODE_EXT_LIST_START
|
NODE_EXT_LIST_START
|
||||||
|
|
||||||
// Module names start with `atom_browser_` can only be used by browser process.
|
// Module names start with `atom_browser_` can only be used by browser process.
|
||||||
|
NODE_EXT_LIST_ITEM(atom_browser_app)
|
||||||
NODE_EXT_LIST_ITEM(atom_browser_ipc)
|
NODE_EXT_LIST_ITEM(atom_browser_ipc)
|
||||||
NODE_EXT_LIST_ITEM(atom_browser_window)
|
NODE_EXT_LIST_ITEM(atom_browser_window)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue