-## Synopsis
+# app
The `app` module is responsible for controlling the application's life time.
-## Synopsis
+# atom-delegate
The `atom-delegate` returns the delegate object for Chrome Content API. The
atom-shell would call methods of the delegate object when the corresponding
-## Synopsis
+# auto-updater
`auto-updater` module is a simple wrap around the Sparkle framework, it
provides auto update service for the application.
+# Build instructions (Mac)
+
## Prerequisites
* Mac OS X >= 10.7
+# Build instructions (Windows)
+
## Prerequisites
* Windows 7 or later
+# Build native modules
+
Since atom-shell is using a different V8 version from the official node, you
need to build native module against atom-shell's headers to use them.
-## Synopsis
+# clipboard
An example of writing a string to clipboard:
+# Coding style
+
## C++ and Python
For C++ and Python, we just follow Chromium's [Coding
-## Synopsis
+# crash-reporter
An example of automatically submitting crash reporters to remote server:
-## Synopsis
+# dialog
The `dialog` module provides functions to show system dialogs, so web
applications can get the same user experience with native applications.
-## Synopsis
+# ipc (browser)
The `ipc` module allows developers to send asynchronous messages to renderers.
To avoid possible dead-locks, it's not allowed to send synchronous messages in
-## Synopsis
+# ipc (renderer)
The `ipc` module provides a few methods so you can send synchronous and
asynchronous messages to the browser, and also receive messages sent from
+# menu-item
+
## Class: MenuItem
### new MenuItem(options)
-## Synopsis
+# menu
The `Menu` class is used to create native menus that can be used as
application menu and context menu. Each menu is consisted of multiple menu
-## Synopsis
+# power-monitor
The `power-monitor` module is used to monitor the power state change, you can
only use it on the browser side.
-## Synopsis
+# protocol
The `protocol` module can register a new protocol or intercept an existing
protocol, so you can custom the response to the requests for vairous protocols.
+# Quick start
+
## Introduction
Generally, atom-shell lets you create a web-based desktop application in pure
-## Synopsis
+# remote
It's common that the developers want to use modules in browsers from the
renderer, like closing current window, opening file dialogs, etc. Instead of
-## Synopsis
+# shell
The `shell` module provides functions related to desktop integration.
+# Source code directory structure
+
## Overview
The source code of atom-shell is separated into a few parts, and we are mostly
program.
* **browser** - The frontend including the main window, UI, and all browser
side things. This talks to the renderer to manage web pages.
+ * **ui** - Implementation of UI stuff for different platforms.
* **atom** - Initializes the javascript environment of browser.
* **default_app** - The default page to show when atom-shell is started
without providing an app.