Fix many typos, update as upstream
This commit is contained in:
parent
ba7ddd66a1
commit
3914ff2ac5
14 changed files with 307 additions and 213 deletions
|
@ -17,7 +17,7 @@
|
||||||
## API 레퍼런스
|
## API 레퍼런스
|
||||||
|
|
||||||
* [개요](api/synopsis.md)
|
* [개요](api/synopsis.md)
|
||||||
* [프로세스 객체](api/process.md)
|
* [process](api/process.md)
|
||||||
* [크롬 Command-Line 스위치 지원](api/chrome-command-line-switches.md)
|
* [크롬 Command-Line 스위치 지원](api/chrome-command-line-switches.md)
|
||||||
|
|
||||||
커스텀 DOM elements:
|
커스텀 DOM elements:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# global-shortcut
|
# global-shortcut
|
||||||
|
|
||||||
`global-shortcut` 모듈은 운영체제의 전역 키보드 단축키를 등록/해제 하는 방법을 제공합니다.
|
`global-shortcut` 모듈은 운영체제의 전역 키보드 단축키를 등록/해제 하는 방법을 제공합니다.
|
||||||
이 모듈을 사용하여 사용자가 다양한 단축키 작업을 할 수 있도록 단축키를 정의 할 수 있습니다.
|
이 모듈을 사용하여 사용자가 다양한 작업을 편하게 할 수 있도록 단축키를 정의 할 수 있습니다.
|
||||||
|
|
||||||
**참고:** 등록된 단축키는 어플리케이션이 백그라운드로 작동(창이 포커스 되지 않음) 할 때도 계속해서 작동합니다.
|
**참고:** 등록된 단축키는 어플리케이션이 백그라운드로 작동(창이 포커스 되지 않음) 할 때도 계속해서 작동합니다.
|
||||||
이 모듈은 `app` 모듈의 `ready` 이벤트 이전에 사용할 수 없습니다.
|
이 모듈은 `app` 모듈의 `ready` 이벤트 이전에 사용할 수 없습니다.
|
||||||
|
|
|
@ -1,12 +1,18 @@
|
||||||
# menu-item
|
# MenuItem
|
||||||
|
|
||||||
|
`menu-item` 모듈은 어플리케이션 또는 컨텐츠 [`menu`](menu.md)에 아이템을 추가할 수 있도록 관련 클래스를 제공합니다.
|
||||||
|
|
||||||
|
[`menu`](menu.md)에서 예제를 확인할 수 있습니다.
|
||||||
|
|
||||||
## Class: MenuItem
|
## Class: MenuItem
|
||||||
|
|
||||||
|
`MenuItem` 인스턴스 객체에서 사용할 수 있는 메서드입니다:
|
||||||
|
|
||||||
### new MenuItem(options)
|
### new MenuItem(options)
|
||||||
|
|
||||||
* `options` Object
|
* `options` Object
|
||||||
* `click` Function - 메뉴 아이템이 클릭될 때 호출되는 콜백 함수
|
* `click` Function - 메뉴 아이템이 클릭될 때 `click(menuItem, browserWindow)` 형태로 호출 되는 콜백 함수
|
||||||
* `selector` String - First Responder가 클릭될 때 호출 되는 선택자 (OS X 전용)
|
* `role` String - 메뉴 아이템의 액션을 정의합니다. 이 속성을 지정하면 `click` 속성이 무시됩니다.
|
||||||
* `type` String - `MenuItem`의 타입 `normal`, `separator`, `submenu`, `checkbox` 또는 `radio` 사용가능
|
* `type` String - `MenuItem`의 타입 `normal`, `separator`, `submenu`, `checkbox` 또는 `radio` 사용가능
|
||||||
* `label` String
|
* `label` String
|
||||||
* `sublabel` String
|
* `sublabel` String
|
||||||
|
@ -18,3 +24,29 @@
|
||||||
* `submenu` Menu - 보조메뉴를 설정합니다. `type`이 `submenu`일 경우 반드시 설정해야합니다. 일반 메뉴 아이템일 경우 생략할 수 있습니다.
|
* `submenu` Menu - 보조메뉴를 설정합니다. `type`이 `submenu`일 경우 반드시 설정해야합니다. 일반 메뉴 아이템일 경우 생략할 수 있습니다.
|
||||||
* `id` String - 현재 메뉴 아이템에 대해 유일키를 지정합니다. 이 키는 이후 `position` 옵션에서 사용할 수 있습니다.
|
* `id` String - 현재 메뉴 아이템에 대해 유일키를 지정합니다. 이 키는 이후 `position` 옵션에서 사용할 수 있습니다.
|
||||||
* `position` String - 미리 지정한 `id`를 이용하여 메뉴 아이템의 위치를 세밀하게 조정합니다.
|
* `position` String - 미리 지정한 `id`를 이용하여 메뉴 아이템의 위치를 세밀하게 조정합니다.
|
||||||
|
|
||||||
|
When creating menu items, it is recommended to specify `role` instead of
|
||||||
|
manually implementing the behavior if there is matching action, so menu can have
|
||||||
|
best native experience.
|
||||||
|
|
||||||
|
The `role` property can have following values:
|
||||||
|
|
||||||
|
* `undo`
|
||||||
|
* `redo`
|
||||||
|
* `cut`
|
||||||
|
* `copy`
|
||||||
|
* `paste`
|
||||||
|
* `selectall`
|
||||||
|
* `minimize` - Minimize current window
|
||||||
|
* `close` - Close current window
|
||||||
|
|
||||||
|
On OS X `role` can also have following additional values:
|
||||||
|
|
||||||
|
* `about` - Map to the `orderFrontStandardAboutPanel` action
|
||||||
|
* `hide` - Map to the `hide` action
|
||||||
|
* `hideothers` - Map to the `hideOtherApplications` action
|
||||||
|
* `unhide` - Map to the `unhideAllApplications` action
|
||||||
|
* `front` - Map to the `arrangeInFront` action
|
||||||
|
* `window` - The submenu is a "Window" menu
|
||||||
|
* `help` - The submenu is a "Help" menu
|
||||||
|
* `services` - The submenu is a "Services" menu
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
# menu
|
# Menu
|
||||||
|
|
||||||
`Menu` 클래스는 어플리케이션 메뉴와 컨텍스트 메뉴를 만들 때 사용됩니다.
|
`menu` 클래스는 어플리케이션 메뉴와 [컨텍스트 메뉴](https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/PopupGuide/ContextMenus)를 만들 때 사용됩니다.
|
||||||
메뉴는 여러 개의 메뉴 아이템으로 구성되고 서브 메뉴를 가질 수도 있습니다.
|
이 모듈은 메인 프로세스용 모듈이지만 `remote` 모듈을 통해 랜더러 프로세스에서도 사용할 수 있습니다.
|
||||||
|
|
||||||
|
각 메뉴는 여러 개의 [메뉴 아이템](menu-item.md)으로 구성되고 서브 메뉴를 가질 수도 있습니다.
|
||||||
|
|
||||||
다음 예제는 웹 페이지 내에서 [remote](remote.md) 모듈을 활용하여 동적으로 메뉴를 생성하는 예제입니다.
|
다음 예제는 웹 페이지 내에서 [remote](remote.md) 모듈을 활용하여 동적으로 메뉴를 생성하는 예제입니다.
|
||||||
|
그리고 유저가 페이지에서 오른쪽 클릭을 할 때마다 마우스 위치에 팝업 형태로 메뉴를 표시합니다:
|
||||||
이 예제에서 만들어진 메뉴는 유저가 페이지에서 오른쪽 클릭을 할 때 마우스 위치에 팝업 형태로 표시됩니다:
|
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<!-- index.html -->
|
<!-- index.html -->
|
||||||
|
@ -26,69 +27,22 @@ window.addEventListener('contextmenu', function (e) {
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
|
|
||||||
다음 예제는 template API를 활용하여 어플리케이션 메뉴를 만드는 간단한 예제입니다:
|
또 하나의 예를 들자면 다음 예제는 랜더러 프로세스에서 template API를 사용하여 어플리케이션 메뉴를 만듭니다:
|
||||||
|
|
||||||
**Windows 와 Linux 유저 주의:** 각 메뉴 아이템의 `selector` 멤버는 Mac 운영체제 전용입니다. [Accelerator 옵션](accelerator.md)
|
```javascript
|
||||||
|
|
||||||
```html
|
|
||||||
<!-- index.html -->
|
|
||||||
<script>
|
|
||||||
var remote = require('remote');
|
|
||||||
var Menu = remote.require('menu');
|
|
||||||
var template = [
|
var template = [
|
||||||
{
|
|
||||||
label: 'Electron',
|
|
||||||
submenu: [
|
|
||||||
{
|
|
||||||
label: 'About Electron',
|
|
||||||
selector: 'orderFrontStandardAboutPanel:'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'separator'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Services',
|
|
||||||
submenu: []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'separator'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Hide Electron',
|
|
||||||
accelerator: 'CmdOrCtrl+H',
|
|
||||||
selector: 'hide:'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Hide Others',
|
|
||||||
accelerator: 'CmdOrCtrl+Shift+H',
|
|
||||||
selector: 'hideOtherApplications:'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Show All',
|
|
||||||
selector: 'unhideAllApplications:'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'separator'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Quit',
|
|
||||||
accelerator: 'CmdOrCtrl+Q',
|
|
||||||
selector: 'terminate:'
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: 'Edit',
|
label: 'Edit',
|
||||||
submenu: [
|
submenu: [
|
||||||
{
|
{
|
||||||
label: 'Undo',
|
label: 'Undo',
|
||||||
accelerator: 'CmdOrCtrl+Z',
|
accelerator: 'CmdOrCtrl+Z',
|
||||||
selector: 'undo:'
|
role: 'undo'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Redo',
|
label: 'Redo',
|
||||||
accelerator: 'Shift+CmdOrCtrl+Z',
|
accelerator: 'Shift+CmdOrCtrl+Z',
|
||||||
selector: 'redo:'
|
role: 'redo'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'separator'
|
type: 'separator'
|
||||||
|
@ -96,23 +50,23 @@ var template = [
|
||||||
{
|
{
|
||||||
label: 'Cut',
|
label: 'Cut',
|
||||||
accelerator: 'CmdOrCtrl+X',
|
accelerator: 'CmdOrCtrl+X',
|
||||||
selector: 'cut:'
|
role: 'cut'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Copy',
|
label: 'Copy',
|
||||||
accelerator: 'CmdOrCtrl+C',
|
accelerator: 'CmdOrCtrl+C',
|
||||||
selector: 'copy:'
|
role: 'copy'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Paste',
|
label: 'Paste',
|
||||||
accelerator: 'CmdOrCtrl+V',
|
accelerator: 'CmdOrCtrl+V',
|
||||||
selector: 'paste:'
|
role: 'paste'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Select All',
|
label: 'Select All',
|
||||||
accelerator: 'CmdOrCtrl+A',
|
accelerator: 'CmdOrCtrl+A',
|
||||||
selector: 'selectAll:'
|
role: 'selectall'
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -121,62 +75,144 @@ var template = [
|
||||||
{
|
{
|
||||||
label: 'Reload',
|
label: 'Reload',
|
||||||
accelerator: 'CmdOrCtrl+R',
|
accelerator: 'CmdOrCtrl+R',
|
||||||
click: function() { remote.getCurrentWindow().reload(); }
|
click: function(item, focusedWindow) {
|
||||||
|
if (focusedWindow)
|
||||||
|
focusedWindow.reload();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Toggle DevTools',
|
label: 'Toggle Full Screen',
|
||||||
accelerator: 'Alt+CmdOrCtrl+I',
|
accelerator: (function() {
|
||||||
click: function() { remote.getCurrentWindow().toggleDevTools(); }
|
if (process.platform == 'darwin')
|
||||||
|
return 'Ctrl+Command+F';
|
||||||
|
else
|
||||||
|
return 'F11';
|
||||||
|
})(),
|
||||||
|
click: function(item, focusedWindow) {
|
||||||
|
if (focusedWindow)
|
||||||
|
focusedWindow.setFullScreen(!focusedWindow.isFullScreen());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Toggle Developer Tools',
|
||||||
|
accelerator: (function() {
|
||||||
|
if (process.platform == 'darwin')
|
||||||
|
return 'Alt+Command+I';
|
||||||
|
else
|
||||||
|
return 'Ctrl+Shift+I';
|
||||||
|
})(),
|
||||||
|
click: function(item, focusedWindow) {
|
||||||
|
if (focusedWindow)
|
||||||
|
focusedWindow.toggleDevTools();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Window',
|
label: 'Window',
|
||||||
|
role: 'window',
|
||||||
submenu: [
|
submenu: [
|
||||||
{
|
{
|
||||||
label: 'Minimize',
|
label: 'Minimize',
|
||||||
accelerator: 'CmdOrCtrl+M',
|
accelerator: 'CmdOrCtrl+M',
|
||||||
selector: 'performMiniaturize:'
|
role: 'minimize'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Close',
|
label: 'Close',
|
||||||
accelerator: 'CmdOrCtrl+W',
|
accelerator: 'CmdOrCtrl+W',
|
||||||
selector: 'performClose:'
|
role: 'close'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Help',
|
||||||
|
role: 'help',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: 'Learn More',
|
||||||
|
click: function() { require('shell').openExternal('http://electron.atom.io') }
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
if (process.platform == 'darwin') {
|
||||||
|
var name = require('app').getName();
|
||||||
|
template.unshift({
|
||||||
|
label: name,
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: 'About ' + name,
|
||||||
|
role: 'about'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'separator'
|
type: 'separator'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Bring All to Front',
|
label: 'Services',
|
||||||
selector: 'arrangeInFront:'
|
role: 'services',
|
||||||
}
|
submenu: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'separator'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Hide ' + name,
|
||||||
|
accelerator: 'Command+H',
|
||||||
|
role: 'hide'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Hide Others',
|
||||||
|
accelerator: 'Command+Shift+H',
|
||||||
|
role: 'hideothers:'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Show All',
|
||||||
|
role: 'unhide:'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'separator'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Quit',
|
||||||
|
accelerator: 'Command+Q',
|
||||||
|
click: function() { app.quit(); }
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
});
|
||||||
{
|
// Window menu.
|
||||||
label: 'Help',
|
template[3].submenu.push(
|
||||||
submenu: []
|
{
|
||||||
}
|
type: 'separator'
|
||||||
];
|
},
|
||||||
|
{
|
||||||
|
label: 'Bring All to Front',
|
||||||
|
role: 'front'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
menu = Menu.buildFromTemplate(template);
|
menu = Menu.buildFromTemplate(template);
|
||||||
|
|
||||||
Menu.setApplicationMenu(menu);
|
Menu.setApplicationMenu(menu);
|
||||||
</script>
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Class: Menu
|
## Class: Menu
|
||||||
|
|
||||||
### new Menu()
|
### `new Menu()`
|
||||||
|
|
||||||
새로운 메뉴를 생성합니다.
|
새로운 메뉴를 생성합니다.
|
||||||
|
|
||||||
### Class Method: Menu.setApplicationMenu(menu)
|
### Methods
|
||||||
|
|
||||||
|
`menu` 클래스는 다음과 같은 메서드를 가지고 있습니다:
|
||||||
|
|
||||||
|
### `Menu.setApplicationMenu(menu)`
|
||||||
|
|
||||||
* `menu` Menu
|
* `menu` Menu
|
||||||
|
|
||||||
지정한 `menu`를 이용하여 어플리케이션 메뉴를 만듭니다. OS X에선 상단바에 표시되며 Windows와 Linux에선 각 창의 상단에 표시됩니다.
|
지정한 `menu`를 어플리케이션 메뉴로 만듭니다. OS X에선 상단바에 표시되며 Windows와 Linux에선 각 창의 상단에 표시됩니다.
|
||||||
|
|
||||||
### Class Method: Menu.sendActionToFirstResponder(action)
|
### `Menu.sendActionToFirstResponder(action)` _OS X_
|
||||||
|
|
||||||
* `action` String
|
* `action` String
|
||||||
|
|
||||||
|
@ -185,7 +221,7 @@ Menu.setApplicationMenu(menu);
|
||||||
|
|
||||||
**참고:** 이 메서드는 OS X에서만 사용할 수 있습니다.
|
**참고:** 이 메서드는 OS X에서만 사용할 수 있습니다.
|
||||||
|
|
||||||
### Class Method: Menu.buildFromTemplate(template)
|
### `Menu.buildFromTemplate(template)`
|
||||||
|
|
||||||
* `template` Array
|
* `template` Array
|
||||||
|
|
||||||
|
@ -193,57 +229,58 @@ Menu.setApplicationMenu(menu);
|
||||||
|
|
||||||
또한 `template`에는 다른 속성도 추가할 수 있으며 메뉴가 만들어질 때 해당 메뉴 아이템의 프로퍼티로 변환됩니다.
|
또한 `template`에는 다른 속성도 추가할 수 있으며 메뉴가 만들어질 때 해당 메뉴 아이템의 프로퍼티로 변환됩니다.
|
||||||
|
|
||||||
### Menu.popup(browserWindow, [x, y])
|
### `Menu.popup(browserWindow[, x, y])`
|
||||||
|
|
||||||
* `browserWindow` BrowserWindow
|
* `browserWindow` BrowserWindow
|
||||||
* `x` Number
|
* `x` Number (optional)
|
||||||
* `y` Number
|
* `y` Number (만약 `x`를 지정했을 경우 `y`도 필수로 지정해야 합니다)
|
||||||
|
|
||||||
메뉴를 `browserWindow` 안에서 팝업으로 표시합니다.
|
메뉴를 `browserWindow` 내부 팝업으로 표시합니다.
|
||||||
옵션으로 메뉴를 표시할 `(x,y)` 좌표를 임의로 지정할 수 있습니다. 따로 지정하지 않은 경우 마우스 커서 위치에 표시됩니다.
|
옵션으로 메뉴를 표시할 `(x,y)` 좌표를 지정할 수 있습니다.
|
||||||
|
따로 좌표를 지정하지 않은 경우 마우스 커서 위치에 표시됩니다.
|
||||||
|
|
||||||
### Menu.append(menuItem)
|
### `Menu.append(menuItem)`
|
||||||
|
|
||||||
* `menuItem` MenuItem
|
* `menuItem` MenuItem
|
||||||
|
|
||||||
메뉴의 리스트 끝에 `menuItem`을 삽입합니다.
|
메뉴의 리스트 끝에 `menuItem`을 삽입합니다.
|
||||||
|
|
||||||
### Menu.insert(pos, menuItem)
|
### `Menu.insert(pos, menuItem)`
|
||||||
|
|
||||||
* `pos` Integer
|
* `pos` Integer
|
||||||
* `menuItem` MenuItem
|
* `menuItem` MenuItem
|
||||||
|
|
||||||
`pos` 위치에 `menuItem`을 삽입합니다.
|
`pos` 위치에 `menuItem`을 삽입합니다.
|
||||||
|
|
||||||
### Menu.items
|
### `Menu.items()`
|
||||||
|
|
||||||
메뉴가 가지고 있는 메뉴 아이템들의 배열입니다.
|
메뉴가 가지고 있는 메뉴 아이템들의 배열입니다.
|
||||||
|
|
||||||
## OS X 어플리케이션 메뉴에 대해 알아 둬야 할 것들
|
## OS X 어플리케이션 메뉴에 대해 알아 둬야 할 것들
|
||||||
|
|
||||||
OS X에선 Windows, Linux와 달리 완전히 다른 어플리케이션 메뉴 스타일을 가지고 있습니다.
|
OS X에선 Windows, Linux와 달리 완전히 다른 어플리케이션 메뉴 스타일을 가지고 있습니다.
|
||||||
어플리케이션을 네이티브처럼 작동할 수 있도록 하기 위해선 다음의 몇 가지 유의 사항을 숙지해야 합니다.
|
그래서 어플리케이션을 네이티브처럼 작동할 수 있도록 하기 위해 다음 몇 가지 유의 사항을 숙지해야 합니다.
|
||||||
|
|
||||||
### 기본 메뉴
|
### 기본 메뉴
|
||||||
|
|
||||||
OS X엔 `Services`나 `Windows`와 같은 많은 시스템 지정 기본 메뉴가 있습니다.
|
OS X엔 `Services`나 `Windows`와 같은 많은 시스템 지정 기본 메뉴가 있습니다.
|
||||||
기본 메뉴를 만들려면 다음 중 하나를 메뉴의 라벨로 지정하기만 하면 됩니다.
|
기본 메뉴를 만들려면 반드시 다음 리스트 중 한 가지를 선택하여 메뉴의 `role`로 지정해야 합니다.
|
||||||
그러면 Electron이 자동으로 인식하여 해당 메뉴를 기본 메뉴로 만듭니다:
|
그러면 Electron이 자동으로 인식하여 해당 메뉴를 기본 메뉴로 만듭니다:
|
||||||
|
|
||||||
* `Window`
|
* `window`
|
||||||
* `Help`
|
* `help`
|
||||||
* `Services`
|
* `services`
|
||||||
|
|
||||||
### 기본 메뉴 아이템 동작
|
### 메뉴 아이템 기본 동작
|
||||||
|
|
||||||
OS X는 몇몇의 메뉴 아이템에 대해 `About xxx`, `Hide xxx`, `Hide Others`와 같은 기본 동작을 제공하고 있습니다. (`selector`라고 불립니다)
|
OS X는 몇가지 메뉴 아이템에 대해 `About xxx`, `Hide xxx`, `Hide Others`와 같은 기본 동작을 제공하고 있습니다.
|
||||||
메뉴 아이템의 기본 동작을 지정하려면 메뉴 아이템의 `selector` 속성을 사용하면 됩니다.
|
메뉴 아이템의 기본 동작을 지정하려면 반드시 메뉴 아이템의 `role` 속성을 지정해야 합니다.
|
||||||
|
|
||||||
### 메인 메뉴의 이름
|
### 메인 메뉴의 이름
|
||||||
|
|
||||||
OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번째 라벨은 언제나 어플리케이션의 이름이 됩니다.
|
OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번째 라벨은 언제나 어플리케이션의 이름이 됩니다.
|
||||||
어플리케이션 이름을 변경하려면 앱 번들내의 `Info.plist` 파일을 수정해야합니다.
|
어플리케이션 이름을 변경하려면 앱 번들내의 `Info.plist` 파일을 수정해야합니다.
|
||||||
자세한 내용은 [About Information Property List Files](https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html)을 참고하세요.
|
자세한 내용은 [About Information Property List Files][AboutInformationPropertyListFiles] 문서를 참고하세요.
|
||||||
|
|
||||||
## 메뉴 아이템 위치
|
## 메뉴 아이템 위치
|
||||||
|
|
||||||
|
@ -257,7 +294,7 @@ OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번
|
||||||
* `endof` - 이 아이템을 id의 논리 그룹에 맞춰서 각 그룹의 항목 뒤에 삽입합니다. (그룹은 분리자 아이템에 의해 만들어집니다)
|
* `endof` - 이 아이템을 id의 논리 그룹에 맞춰서 각 그룹의 항목 뒤에 삽입합니다. (그룹은 분리자 아이템에 의해 만들어집니다)
|
||||||
만약 참조된 아이템의 분리자 그룹이 존재하지 않을 경우 지정된 id로 새로운 분리자 그룹을 만든 후 해당 그룹의 뒤에 삽입됩니다.
|
만약 참조된 아이템의 분리자 그룹이 존재하지 않을 경우 지정된 id로 새로운 분리자 그룹을 만든 후 해당 그룹의 뒤에 삽입됩니다.
|
||||||
|
|
||||||
위치를 지정한 아이템의 뒤에 위치가 지정되지 않은 아이템이 있을 경우 해당 아이템의 위치가 지정되기 전까지 이전에 위치가 지정된 아이템의 위치 지정을 따릅니다.
|
위치를 지정한 아이템의 뒤에 위치가 지정되지 않은 아이템이 있을 경우 각 아이템의 위치가 지정되기 전까지 모든 아이템이 위치가 지정된 아이템의 뒤에 삽입됩니다.
|
||||||
이에 따라 위치를 이동하고 싶은 특정 그룹의 아이템들이 있을 경우 해당 그룹의 맨 첫번째 메뉴 아이템의 위치만을 지정하면 됩니다.
|
이에 따라 위치를 이동하고 싶은 특정 그룹의 아이템들이 있을 경우 해당 그룹의 맨 첫번째 메뉴 아이템의 위치만을 지정하면 됩니다.
|
||||||
|
|
||||||
### 예제
|
### 예제
|
||||||
|
@ -309,3 +346,5 @@ OS X에선 지정한 어플리케이션 메뉴에 상관없이 메뉴의 첫번
|
||||||
- 2
|
- 2
|
||||||
- 3
|
- 3
|
||||||
```
|
```
|
||||||
|
|
||||||
|
[AboutInformationPropertyListFiles]: https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
# NativeImage
|
# NativeImage
|
||||||
|
|
||||||
Electron은 파일 경로나 `NativeImage` 인스턴스를 전달하여 사용하는 이미지 API를 가지고 있습니다. `null`을 전달할 경우 빈 이미지가 사용됩니다.
|
Electron은 파일 경로 또는 `NativeImage` 인스턴스를 통해 이미지를 사용할 수 있는 API를 가지고 있습니다.
|
||||||
|
`null`을 전달할 경우 빈 이미지가 생성됩니다.
|
||||||
|
|
||||||
예를 들어 트레이 메뉴를 만들거나 윈도우의 아이콘을 설정할 때 다음과 같이 `문자열`인 파일 경로를 전달할 수 있습니다:
|
예를 들어 트레이 메뉴를 만들거나 윈도우의 아이콘을 설정할 때 다음과 같이 파일 경로를 전달하여 이미지를 사용할 수 있습니다:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var appIcon = new Tray('/Users/somebody/images/icon.png');
|
var appIcon = new Tray('/Users/somebody/images/icon.png');
|
||||||
var window = new BrowserWindow({icon: '/Users/somebody/images/window.png'});
|
var window = new BrowserWindow({icon: '/Users/somebody/images/window.png'});
|
||||||
```
|
```
|
||||||
|
|
||||||
또는 클립보드로부터 이미지를 읽어올 수 있습니다:
|
이 예제는 클립보드로부터 가져온 `NativeImage`로 트레이 메뉴를 생성합니다:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var clipboard = require('clipboard');
|
var clipboard = require('clipboard');
|
||||||
|
@ -19,7 +20,8 @@ var appIcon = new Tray(image);
|
||||||
|
|
||||||
## 지원하는 포맷
|
## 지원하는 포맷
|
||||||
|
|
||||||
현재 `PNG` 와 `JPEG` 포맷을 지원하고 있습니다. 손실 없는 이미지 압축과 투명도 지원을 위해 `PNG` 사용을 권장합니다.
|
현재 `PNG` 와 `JPEG` 이미지 포맷을 지원하고 있습니다.
|
||||||
|
손실 없는 이미지 압축과 투명도 지원을 위해 `PNG` 사용을 권장합니다.
|
||||||
|
|
||||||
그리고 Windows에서는 `ICO` 포맷도 사용할 수 있습니다.
|
그리고 Windows에서는 `ICO` 포맷도 사용할 수 있습니다.
|
||||||
|
|
||||||
|
@ -27,9 +29,9 @@ var appIcon = new Tray(image);
|
||||||
|
|
||||||
플랫폼이 high-DPI를 지원하는 경우 `@2x`와 같이 이미지의 파일명 뒤에 접미사를 추가하여 고해상도 이미지로 지정할 수 있습니다.
|
플랫폼이 high-DPI를 지원하는 경우 `@2x`와 같이 이미지의 파일명 뒤에 접미사를 추가하여 고해상도 이미지로 지정할 수 있습니다.
|
||||||
|
|
||||||
예를 들어 `icon.png` 라는 기본 해상도의 이미지를 기준으로 크기를 두 배로 늘린 이미지를 `icon@2x.png`와 같이 이름을 지정하면 고해상도 이미지로 처리됩니다.
|
예를 들어 `icon.png` 라는 기본 해상도의 이미지를 기준으로 크기를 두 배로 늘린 이미지를 `icon@2x.png` 처럼 지정하면 고해상도 이미지로 처리됩니다.
|
||||||
|
|
||||||
서로 다른 해상도(DPI)의 이미지를 지원하고 싶다면 다중 해상도의 이미지를 접미사를 붙여 한 폴더에 넣으면 됩니다. 이 이미지를 사용(로드)할 땐 접미사를 붙이지 않습니다:
|
서로 다른 해상도(DPI)의 이미지를 같이 지원하고 싶다면 다중 해상도의 이미지를 접미사를 붙여 한 폴더에 같이 넣으면 됩니다. 이 이미지를 사용(로드)할 땐 따로 접미사를 붙이지 않습니다:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
images/
|
images/
|
||||||
|
@ -64,69 +66,79 @@ var appIcon = new Tray('/Users/somebody/images/icon.png');
|
||||||
|
|
||||||
가장 일반적으로 템플릿 이미지는 밝고 어두운 테마 색상으로 변경할 수 있는 메뉴 바 아이콘 등에 사용되고 있습니다.
|
가장 일반적으로 템플릿 이미지는 밝고 어두운 테마 색상으로 변경할 수 있는 메뉴 바 아이콘 등에 사용되고 있습니다.
|
||||||
|
|
||||||
템플릿 이미지는 Mac 운영체제만 지원합니다.
|
**참고:** 템플릿 이미지는 OS X 운영체제만 지원합니다.
|
||||||
|
|
||||||
템플릿 이미지를 지정하려면 다음 예제와 같이 파일명에 `Template` 문자열을 추가해야 합니다:
|
템플릿 이미지를 지정하려면 다음 예제와 같이 파일명에 `Template` 문자열을 추가해야 합니다:
|
||||||
|
|
||||||
* `xxxTemplate.png`
|
* `xxxTemplate.png`
|
||||||
* `xxxTemplate@2x.png`
|
* `xxxTemplate@2x.png`
|
||||||
|
|
||||||
## nativeImage.createEmpty()
|
## Methods
|
||||||
|
|
||||||
|
`NativeImage` 클래스는 다음과 같은 메서드를 가지고 있습니다:
|
||||||
|
|
||||||
|
### `NativeImage.createEmpty()`
|
||||||
|
|
||||||
빈 `NativeImage` 인스턴스를 만듭니다.
|
빈 `NativeImage` 인스턴스를 만듭니다.
|
||||||
|
|
||||||
## nativeImage.createFromPath(path)
|
### `NativeImage.createFromPath(path)`
|
||||||
|
|
||||||
* `path` String
|
* `path` String
|
||||||
|
|
||||||
`path`로부터 이미지를 로드하여 새로운 `NativeImage` 인스턴스를 만듭니다.
|
`path`로부터 이미지를 로드하여 새로운 `NativeImage` 인스턴스를 만듭니다.
|
||||||
|
|
||||||
## nativeImage.createFromBuffer(buffer[, scaleFactor])
|
### `NativeImage.createFromBuffer(buffer[, scaleFactor])`
|
||||||
|
|
||||||
* `buffer` [Buffer][buffer]
|
* `buffer` [Buffer][buffer]
|
||||||
* `scaleFactor` Double
|
* `scaleFactor` Double (optional)
|
||||||
|
|
||||||
`buffer`로부터 이미지를 로드하여 새로운 `NativeImage` 인스턴스를 만듭니다. `scaleFactor`는 1.0이 기본입니다.
|
`buffer`로부터 이미지를 로드하여 새로운 `NativeImage` 인스턴스를 만듭니다. `scaleFactor`는 1.0이 기본입니다.
|
||||||
|
|
||||||
## nativeImage.createFromDataUrl(dataUrl)
|
### `NativeImage.createFromDataUrl(dataUrl)`
|
||||||
|
|
||||||
* `dataUrl` String
|
* `dataUrl` String
|
||||||
|
|
||||||
`dataUrl`로부터 이미지를 로드하여 새로운 `NativeImage` 인스턴스를 만듭니다.
|
`dataUrl`로부터 이미지를 로드하여 새로운 `NativeImage` 인스턴스를 만듭니다.
|
||||||
|
|
||||||
## Class: NativeImage
|
## Instance Methods
|
||||||
|
|
||||||
이미지를 표현한 클래스입니다.
|
`nativeImage` 인스턴스 객체에서 사용할 수 있는 메서드 입니다:
|
||||||
|
|
||||||
### NativeImage.toPng()
|
```javascript
|
||||||
|
var NativeImage = require('native-image');
|
||||||
|
|
||||||
|
var image = NativeImage.createFromPath('/Users/somebody/images/icon.png');
|
||||||
|
```
|
||||||
|
|
||||||
|
### `image.toPng()`
|
||||||
|
|
||||||
`PNG` 이미지를 인코딩한 데이터를 [Buffer][buffer]로 반환합니다.
|
`PNG` 이미지를 인코딩한 데이터를 [Buffer][buffer]로 반환합니다.
|
||||||
|
|
||||||
### NativeImage.toJpeg(quality)
|
### `image.toJpeg(quality)`
|
||||||
|
|
||||||
* `quality` Integer (0 - 100 사이의 값)
|
* `quality` Integer 0 - 100 사이의 값 (**required**)
|
||||||
|
|
||||||
`JPEG` 이미지를 인코딩한 데이터를 [Buffer][buffer]로 반환합니다.
|
`JPEG` 이미지를 인코딩한 데이터를 [Buffer][buffer]로 반환합니다.
|
||||||
|
|
||||||
### NativeImage.toDataUrl()
|
### `image.toDataUrl()`
|
||||||
|
|
||||||
이미지의 data URL을 반환합니다.
|
이미지를 data URL로 반환합니다.
|
||||||
|
|
||||||
### NativeImage.isEmpty()
|
### `image.isEmpty()`
|
||||||
|
|
||||||
이미지가 비었는지를 체크합니다.
|
이미지가 비었는지 확인합니다.
|
||||||
|
|
||||||
### NativeImage.getSize()
|
### `image.getSize()`
|
||||||
|
|
||||||
이미지의 사이즈를 반환합니다.
|
이미지의 사이즈를 반환합니다.
|
||||||
|
|
||||||
### NativeImage.setTemplateImage(option)
|
### `image.setTemplateImage(option)`
|
||||||
|
|
||||||
* `option` Boolean
|
* `option` Boolean
|
||||||
|
|
||||||
해당 이미지를 템플릿 이미지로 설정합니다.
|
해당 이미지를 템플릿 이미지로 설정합니다.
|
||||||
|
|
||||||
### NativeImage.isTemplateImage()
|
### `image.isTemplateImage()`
|
||||||
|
|
||||||
이미지가 템플릿 이미지인지 확인합니다.
|
이미지가 템플릿 이미지인지 확인합니다.
|
||||||
|
|
||||||
|
|
|
@ -16,18 +16,22 @@ app.on('ready', function() {
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
## Event: suspend
|
## Events
|
||||||
|
|
||||||
|
`power-monitor` 모듈은 다음과 같은 이벤트를 가지고 있습니다:
|
||||||
|
|
||||||
|
## Event: `suspend`
|
||||||
|
|
||||||
시스템이 절전모드로 진입할 때 발생하는 이벤트입니다.
|
시스템이 절전모드로 진입할 때 발생하는 이벤트입니다.
|
||||||
|
|
||||||
## Event: resume
|
## Event: `resume`
|
||||||
|
|
||||||
시스템의 절전모드가 해제될 때 발생하는 이벤트입니다.
|
시스템의 절전모드가 해제될 때 발생하는 이벤트입니다.
|
||||||
|
|
||||||
## Event: on-ac
|
## Event: `on-ac`
|
||||||
|
|
||||||
시스템이 AC 어뎁터 충전기를 사용하기 시작할 때 발생하는 이벤트입니다.
|
시스템이 AC 어뎁터 충전기를 사용하기 시작할 때 발생하는 이벤트입니다.
|
||||||
|
|
||||||
## Event: on-battery
|
## Event: `on-battery`
|
||||||
|
|
||||||
시스템이 배터리를 사용하기 시작할 때 발생하는 이벤트입니다.
|
시스템이 배터리를 사용하기 시작할 때 발생하는 이벤트입니다.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# power-save-blocker
|
# powerSaveBlocker
|
||||||
|
|
||||||
`power-save-blocker` 모듈은 시스템이 저전력 모드(슬립)로 진입하는 것을 막고 앱 및 화면이 항상 활성화되어 있는 상태를 만들 수 있도록 해줍니다.
|
`power-save-blocker` 모듈은 시스템이 저전력(슬립) 모드로 진입하는 것을 막고 앱 시스템과 화면이 항상 활성화 상태를 유지할 수 있도록 하는 몇가지 유틸리티를 제공하는 모듈입니다.
|
||||||
|
|
||||||
예제:
|
예제:
|
||||||
|
|
||||||
|
@ -13,31 +13,34 @@ console.log(powerSaveBlocker.isStarted(id));
|
||||||
powerSaveBlocker.stop(id);
|
powerSaveBlocker.stop(id);
|
||||||
```
|
```
|
||||||
|
|
||||||
## powerSaveBlocker.start(type)
|
## Methods
|
||||||
|
|
||||||
|
`powerSaveBlocker` 모듈은 다음과 같은 메서드를 가지고 있습니다:
|
||||||
|
|
||||||
|
### `powerSaveBlocker.start(type)`
|
||||||
|
|
||||||
* `type` String - Power save blocker 종류
|
* `type` String - Power save blocker 종류
|
||||||
* `prevent-app-suspension` - 저전력 모드 등으로 인한 어플리케이션 작동 중단을 방지합니다.
|
* `prevent-app-suspension` - 저전력 모드 등으로 인한 어플리케이션 작동 중단을 방지합니다.
|
||||||
시스템을 항시 활성화 상태로 만듭니다, 하지만 화면은 자동으로 꺼질 수 있습니다. 사용 예시: 파일 다운로드, 음악 재생 등.
|
시스템을 항시 활성화 상태로 만듭니다. 하지만 화면은 자동으로 꺼질 수 있습니다. 사용 예시: 파일 다운로드, 음악 재생 등.
|
||||||
* `prevent-display-sleep`- 슬립 모드 등으로 인한 어플리케이션의 작동 중단을 방지합니다.
|
* `prevent-display-sleep`- 슬립 모드 등으로 인한 어플리케이션의 작동 중단을 방지합니다.
|
||||||
시스템을 항시 활성화 상태로 만들고 슬립 모드(화면 꺼짐)를 방지합니다. 사용 예시: 비디오 재생 등.
|
시스템을 항시 활성화 상태로 만들고 슬립 모드(화면 꺼짐)를 방지합니다. 사용 예시: 비디오 재생 등.
|
||||||
|
|
||||||
Power save blocker를 시작하고 시스템이 저전력 모드(슬립)로 진입하는 것을 막습니다. 정수로 된 식별 ID를 반환합니다.
|
시스템이 저전력 모드(슬립)로 진입하는 것을 막기 시작합니다. 정수로 된 식별 ID를 반환합니다.
|
||||||
|
|
||||||
**참고:**
|
**참고:** `prevent-display-sleep` 모드는 `prevent-app-suspension` 보다 우선 순위가 높습니다.
|
||||||
`prevent-display-sleep` 모드는 `prevent-app-suspension` 보다 우선순위가 높습니다.
|
두 모드 중 가장 높은 우선 순위의 모드만 작동합니다. 다시 말해 `prevent-display-sleep` 모드는 언제나 `prevent-app-suspension` 모드의 효과를 덮어씌웁니다.
|
||||||
가장 높은 우선순위의 모드만 작동합니다. 다시 말해 `prevent-display-sleep` 모드는 언제나 `prevent-app-suspension` 모드의 효과를 덮어씌웁니다.
|
|
||||||
|
|
||||||
예를 들어 A-요청이 `prevent-app-suspension` 모드를 사용하고 B-요청이 `prevent-display-sleep`를 사용하는 API 호출이 있었다 치면
|
예를 들어 A-요청이 `prevent-app-suspension` 모드를 사용하고 B-요청이 `prevent-display-sleep`를 사용하는 API 호출이 있었다 치면
|
||||||
`prevent-display-sleep` 모드를 사용하는 B의 작동이 중단(stop)되기 전까지 작동하다 B가 중단되면 `prevent-app-suspension` 모드를 사용하는 A가 작동하기 시작합니다.
|
`prevent-display-sleep` 모드를 사용하는 B의 작동이 중단(stop)되기 전까지 작동하다 B가 중단되면 `prevent-app-suspension` 모드를 사용하는 A가 작동하기 시작합니다.
|
||||||
|
|
||||||
## powerSaveBlocker.stop(id)
|
### `powerSaveBlocker.stop(id)`
|
||||||
|
|
||||||
* `id` Integer - `powerSaveBlocker.start`로 부터 반환되는 power save blocker 식별 ID.
|
* `id` Integer - `powerSaveBlocker.start`로 부터 반환되는 power save blocker 식별 ID.
|
||||||
|
|
||||||
설정한 power save blocker를 중지합니다.
|
설정한 power save blocker를 중지합니다.
|
||||||
|
|
||||||
## powerSaveBlocker.isStarted(id)
|
### `powerSaveBlocker.isStarted(id)`
|
||||||
|
|
||||||
* `id` Integer - `powerSaveBlocker.start`로 부터 반환되는 power save blocker 식별 ID.
|
* `id` Integer - `powerSaveBlocker.start`로 부터 반환되는 power save blocker 식별 ID.
|
||||||
|
|
||||||
해당하는 id의 `powerSaveBlocker`가 실행중인지 확인합니다.
|
지정한 id의 `powerSaveBlocker`가 실행 중인지 확인합니다.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# 프로세스 객체
|
# process
|
||||||
|
|
||||||
Electron의 `process` 객체는 기존의 node와는 달리 약간의 차이점이 있습니다:
|
Electron의 `process` 객체는 기존의 node와는 달리 약간의 차이점이 있습니다:
|
||||||
|
|
||||||
|
@ -7,11 +7,15 @@ Electron의 `process` 객체는 기존의 node와는 달리 약간의 차이점
|
||||||
* `process.versions['chrome']` String - Chromium의 버전.
|
* `process.versions['chrome']` String - Chromium의 버전.
|
||||||
* `process.resourcesPath` String - JavaScript 소스코드의 경로.
|
* `process.resourcesPath` String - JavaScript 소스코드의 경로.
|
||||||
|
|
||||||
## process.hang
|
## Methods
|
||||||
|
|
||||||
|
`process` 객체는 다음과 같은 메서드를 가지고 있습니다:
|
||||||
|
|
||||||
|
### `process.hang()`
|
||||||
|
|
||||||
현재 프로세스의 주 스레드를 중단시킵니다.
|
현재 프로세스의 주 스레드를 중단시킵니다.
|
||||||
|
|
||||||
## process.setFdLimit(maxDescriptors) _OS X_ _Linux_
|
### `process.setFdLimit(maxDescriptors)` _OS X_ _Linux_
|
||||||
|
|
||||||
* `maxDescriptors` Integer
|
* `maxDescriptors` Integer
|
||||||
|
|
||||||
|
|
|
@ -1,34 +1,39 @@
|
||||||
# shell
|
# shell
|
||||||
|
|
||||||
`shell` 모듈은 데스크톱 환경 통합에 관련하여 제공되는 모듈입니다.
|
`shell` 모듈은 데스크톱 환경 통합에 관련한 유틸리티를 제공하는 모듈입니다.
|
||||||
|
|
||||||
다음 예제는 기본 브라우저로 설정된 URL을 엽니다:
|
다음 예제는 설정된 URL을 유저의 기본 브라우저로 엽니다:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var shell = require('shell');
|
var shell = require('shell');
|
||||||
shell.openExternal('https://github.com');
|
shell.openExternal('https://github.com');
|
||||||
```
|
```
|
||||||
|
|
||||||
## shell.showItemInFolder(fullPath)
|
## Methods
|
||||||
|
|
||||||
|
`shell` 모듈은 다음과 같은 메서드를 가지고 있습니다:
|
||||||
|
|
||||||
|
### `shell.showItemInFolder(fullPath)`
|
||||||
|
|
||||||
* `fullPath` String
|
* `fullPath` String
|
||||||
|
|
||||||
지정한 파일을 탐색기에서 보여줍니다. 가능한 경우 탐색기 내에서 파일을 선택합니다.
|
지정한 파일을 탐색기에서 보여줍니다. 가능한 경우 탐색기 내에서 파일을 선택합니다.
|
||||||
|
|
||||||
## shell.openItem(fullPath)
|
### `shell.openItem(fullPath)`
|
||||||
|
|
||||||
* `fullPath` String
|
* `fullPath` String
|
||||||
|
|
||||||
지정한 파일을 데스크톱 기본 프로그램으로 엽니다.
|
지정한 파일을 데스크톱 기본 프로그램으로 엽니다.
|
||||||
|
|
||||||
## shell.openExternal(url)
|
### `shell.openExternal(url)`
|
||||||
|
|
||||||
* `url` String
|
* `url` String
|
||||||
|
|
||||||
제공된 외부 프로토콜 URL을 기반으로 데스크톱의 기본 프로그램으로 엽니다. (예를 들어 mailto: URL은 해당 URL을 기본 메일 에이전트로 엽니다.)
|
제공된 외부 프로토콜 URL을 기반으로 데스크톱의 기본 프로그램으로 엽니다. (예를 들어 mailto: URL은 유저의 기본 이메일 에이전트로 URL을 엽니다.)
|
||||||
|
|
||||||
역주: 폴더는 'file:\\\\C:\\'와 같이 지정하여 열 수 있습니다. (`\\`로 경로를 표현한 이유는 Escape 문자열을 참고하세요.)
|
역주: 폴더는 'file:\\\\C:\\'와 같이 지정하여 열 수 있습니다. (`\\`로 경로를 표현한 이유는 Escape 문자열을 참고하세요.)
|
||||||
|
|
||||||
## shell.moveItemToTrash(fullPath)
|
### `shell.moveItemToTrash(fullPath)`
|
||||||
|
|
||||||
* `fullPath` String
|
* `fullPath` String
|
||||||
|
|
||||||
|
@ -36,6 +41,6 @@ Move the given file to trash and returns boolean status for the operation.
|
||||||
|
|
||||||
지정한 파일을 휴지통으로 이동합니다. 작업의 성공여부를 boolean 형으로 리턴합니다.
|
지정한 파일을 휴지통으로 이동합니다. 작업의 성공여부를 boolean 형으로 리턴합니다.
|
||||||
|
|
||||||
## shell.beep()
|
### `shell.beep()`
|
||||||
|
|
||||||
비프음을 재생합니다.
|
비프음을 재생합니다.
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
# 개요
|
# 개요
|
||||||
|
|
||||||
Electron은 모든 [node.js's built-in 모듈](http://nodejs.org/api/)과 third-party node 모듈을 완벽하게 지원합니다. ([네이티브 모듈](../tutorial/using-native-node-modules.md)을 포함해서)
|
Electron은 모든 [Node.js의 built-in 모듈](http://nodejs.org/api/)과 third-party node 모듈을 완벽하게 지원합니다. ([네이티브 모듈](../tutorial/using-native-node-modules.md) 포함)
|
||||||
|
|
||||||
Electron은 네이티브 데스크톱 어플리케이션을 개발 할 수 있도록 추가적인 built-in 모듈을 제공합니다.
|
Electron은 네이티브 데스크톱 어플리케이션을 개발 할 수 있도록 추가적인 built-in 모듈을 제공합니다.
|
||||||
몇몇 모듈은 메인 프로세스에서만 사용할 수 있고 어떤 모듈은 랜더러 프로세스에서만 사용할 수 있습니다. 또한 두 프로세스 모두 사용할 수 있는 모듈도 있습니다.
|
몇몇 모듈은 메인 프로세스에서만 사용할 수 있고 어떤 모듈은 랜더러 프로세스(웹 페이지)에서만 사용할 수 있습니다.
|
||||||
기본적인 규칙은 다음과 같습니다: GUI와 저 수준 시스템에 관련된 모듈은 오직 메인 프로세스에서만 사용할 수 있습니다.
|
또한 두 프로세스 모두 사용할 수 있는 모듈도 있습니다.
|
||||||
[메인 프로세스 vs. 랜더러 프로세스](../tutorial/quick-start.md#메인 프로세스) 컨셉에 익숙해야 이 모듈들을 사용하기 쉬우므로 해당 문서를 정독하는 것을 권장합니다.
|
|
||||||
|
|
||||||
|
기본적인 규칙으로 [GUI](https://en.wikipedia.org/wiki/Graphical_user_interface)와 저 수준 시스템에 관련된 모듈들은 오직 메인 프로세스에서만 사용할 수 있습니다.
|
||||||
|
[메인 프로세스 vs. 랜더러 프로세스](../tutorial/quick-start.md#메인 프로세스) 컨셉에 익숙해야 이 모듈들을 사용하기 쉬우므로 관련 문서를 읽어 보는 것을 권장합니다.
|
||||||
|
|
||||||
메인 프로세스 스크립트는 일반 `node.js` 스크립트와 같습니다:
|
메인 프로세스 스크립트는 일반 Node.js 스크립트와 비슷합니다:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var app = require('app');
|
var app = require('app');
|
||||||
|
@ -22,7 +23,7 @@ app.on('ready', function() {
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
웹 페이지 역시 예외적인 node module을 사용할 수 있다는 점을 제외하면 일반 웹 페이지와 다를게 없습니다:
|
랜더러 프로세스도 예외적인 node module들을 사용할 수 있다는 점을 제외하면 일반 웹 페이지와 크게 다를게 없습니다:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Tray
|
# Tray
|
||||||
|
|
||||||
`Tray`는 OS의 알림영역에 아이콘을 표시합니다. 보통 컨텍스트 메뉴(context menu)를 같이 사용합니다.
|
`Tray`는 OS의 알림 영역에 아이콘을 표시합니다. 보통 컨텍스트 메뉴(context menu)를 같이 사용합니다.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var app = require('app');
|
var app = require('app');
|
||||||
|
@ -29,19 +29,25 @@ __플랫폼별 한계:__
|
||||||
* 앱 알림 표시기는 컨텍스트 메뉴를 가지고 있을 때만 보입니다.
|
* 앱 알림 표시기는 컨텍스트 메뉴를 가지고 있을 때만 보입니다.
|
||||||
* Linux에서 앱 알림 표시기가 사용될 경우, `clicked` 이벤트는 무시됩니다.
|
* Linux에서 앱 알림 표시기가 사용될 경우, `clicked` 이벤트는 무시됩니다.
|
||||||
|
|
||||||
이러한 이유로 만약 Tray API가 모든 플랫폼에서 똑같이 작동하게 하고 싶다면, 설계시 `clicked` 이벤트에 의존하지 말아야합니다.
|
이러한 이유로 Tray API가 모든 플랫폼에서 똑같이 작동하게 하고 싶다면 `clicked` 이벤트에 의존해선 안됩니다.
|
||||||
그리고 언제나 컨텍스트 메뉴를 포함해서 사용해야 합니다.
|
그리고 언제나 컨텍스트 메뉴를 포함해야 합니다.
|
||||||
|
|
||||||
## Class: Tray
|
## Class: Tray
|
||||||
|
|
||||||
`Tray`는 [EventEmitter][event-emitter]를 상속 받았습니다.
|
`Tray`는 [EventEmitter][event-emitter]를 상속 받았습니다.
|
||||||
|
|
||||||
### new Tray(image)
|
### `new Tray(image)`
|
||||||
|
|
||||||
* `image` [NativeImage](native-image.md)
|
* `image` [NativeImage](native-image.md)
|
||||||
|
|
||||||
전달된 `image`를 이용하여 트레이 아이콘을 만듭니다.
|
전달된 `image`를 이용하여 트레이 아이콘을 만듭니다.
|
||||||
|
|
||||||
|
## Events
|
||||||
|
|
||||||
|
`Tray` 모듈은 다음과 같은 이벤트를 가지고 있습니다:
|
||||||
|
|
||||||
|
**참고:** 몇가지 이벤트는 특정한 플랫폼에서만 작동합니다.
|
||||||
|
|
||||||
### Event: 'clicked'
|
### Event: 'clicked'
|
||||||
|
|
||||||
* `event` Event
|
* `event` Event
|
||||||
|
@ -57,9 +63,9 @@ __플랫폼별 한계:__
|
||||||
|
|
||||||
트레이 아이콘이 클릭될 때 발생하는 이벤트입니다.
|
트레이 아이콘이 클릭될 때 발생하는 이벤트입니다.
|
||||||
|
|
||||||
__주의:__ `bounds`는 OS X 와 Windows 7 이후 버전에서만 작동합니다.
|
__주의:__ `bounds`는 OS X 와 Windows에서만 작동합니다.
|
||||||
|
|
||||||
### Event: 'right-clicked'
|
### Event: 'right-clicked' _OS X_ _Windows_
|
||||||
|
|
||||||
* `event` Event
|
* `event` Event
|
||||||
* `altKey` Boolean
|
* `altKey` Boolean
|
||||||
|
@ -74,9 +80,7 @@ __주의:__ `bounds`는 OS X 와 Windows 7 이후 버전에서만 작동합니
|
||||||
|
|
||||||
트레이 아이콘을 오른쪽 클릭될 때 호출 됩니다.
|
트레이 아이콘을 오른쪽 클릭될 때 호출 됩니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 OS X 와 Windows 운영체제에서만 작동합니다.
|
### Event: 'double-clicked' _OS X_ _Windows_
|
||||||
|
|
||||||
### Event: 'double-clicked'
|
|
||||||
|
|
||||||
* `event` Event
|
* `event` Event
|
||||||
* `altKey` Boolean
|
* `altKey` Boolean
|
||||||
|
@ -91,76 +95,66 @@ __주의:__ 이 기능은 OS X 와 Windows 운영체제에서만 작동합니다
|
||||||
|
|
||||||
트레이 아이콘이 더블 클릭될 때 발생하는 이벤트입니다.
|
트레이 아이콘이 더블 클릭될 때 발생하는 이벤트입니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 OS X 와 Windows 운영체제에서만 작동합니다.
|
### Event: 'balloon-show' _Windows_
|
||||||
|
|
||||||
### Event: 'balloon-show'
|
|
||||||
|
|
||||||
알림풍선이 보여질 때 발생하는 이벤트입니다.
|
알림풍선이 보여질 때 발생하는 이벤트입니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 Windows에서만 작동합니다.
|
### Event: 'balloon-clicked' _Windows_
|
||||||
|
|
||||||
### Event: 'balloon-clicked'
|
|
||||||
|
|
||||||
알림풍선이 클릭될 때 발생하는 이벤트입니다.
|
알림풍선이 클릭될 때 발생하는 이벤트입니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 Windows에서만 작동합니다.
|
### Event: 'balloon-closed' _Windows_
|
||||||
|
|
||||||
### Event: 'balloon-closed'
|
|
||||||
|
|
||||||
알림풍선이 시간이 지나 사라지거나 유저가 클릭하여 닫을 때 발생하는 이벤트입니다.
|
알림풍선이 시간이 지나 사라지거나 유저가 클릭하여 닫을 때 발생하는 이벤트입니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 Windows에서만 작동합니다.
|
### Event: 'drop-files' _OS X_
|
||||||
|
|
||||||
### Event: 'drop-files'
|
|
||||||
|
|
||||||
* `event`
|
* `event`
|
||||||
* `files` Array - 드롭된 파일의 경로
|
* `files` Array - 드롭된 파일의 경로
|
||||||
|
|
||||||
트레이 아이콘에 파일이 드롭되면 발생하는 이벤트입니다.
|
트레이 아이콘에 파일이 드롭되면 발생하는 이벤트입니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 OS X에서만 작동합니다.
|
## Methods
|
||||||
|
|
||||||
### Tray.destroy()
|
`Tray` 모듈은 다음과 같은 메서드를 가지고 있습니다:
|
||||||
|
|
||||||
|
**참고:** 몇가지 메서드는 특정한 플랫폼에서만 작동합니다.
|
||||||
|
|
||||||
|
### `Tray.destroy()`
|
||||||
|
|
||||||
트레이 아이콘을 즉시 삭제시킵니다.
|
트레이 아이콘을 즉시 삭제시킵니다.
|
||||||
|
|
||||||
### Tray.setImage(image)
|
### `Tray.setImage(image)`
|
||||||
|
|
||||||
* `image` [NativeImage](native-image.md)
|
* `image` [NativeImage](native-image.md)
|
||||||
|
|
||||||
`image`를 사용하여 트레이 아이콘의 이미지를 설정합니다.
|
`image`를 사용하여 트레이 아이콘의 이미지를 설정합니다.
|
||||||
|
|
||||||
### Tray.setPressedImage(image)
|
### `Tray.setPressedImage(image)` _OS X_
|
||||||
|
|
||||||
* `image` [NativeImage](native-image.md)
|
* `image` [NativeImage](native-image.md)
|
||||||
|
|
||||||
`image`를 사용하여 트레이 아이콘이 눌렸을 때의 이미지를 설정합니다.
|
`image`를 사용하여 트레이 아이콘이 눌렸을 때의 이미지를 설정합니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 OS X에서만 작동합니다.
|
### `Tray.setToolTip(toolTip)`
|
||||||
|
|
||||||
### Tray.setToolTip(toolTip)
|
|
||||||
|
|
||||||
* `toolTip` String
|
* `toolTip` String
|
||||||
|
|
||||||
트레이 아이콘의 툴팁 텍스트를 설정합니다.
|
트레이 아이콘의 툴팁 텍스트를 설정합니다.
|
||||||
|
|
||||||
### Tray.setTitle(title)
|
### `Tray.setTitle(title)` _OS X_
|
||||||
|
|
||||||
* `title` String
|
* `title` String
|
||||||
|
|
||||||
상태바에서 트레이 아이콘 옆에 표시되는 제목 텍스트를 설정합니다.
|
상태바에서 트레이 아이콘 옆에 표시되는 제목 텍스트를 설정합니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 OS X에서만 작동합니다.
|
### `Tray.setHighlightMode(highlight)` _OS X_
|
||||||
|
|
||||||
### Tray.setHighlightMode(highlight)
|
|
||||||
|
|
||||||
* `highlight` Boolean
|
* `highlight` Boolean
|
||||||
|
|
||||||
트레이 아이콘을 클릭했을 때 하이라이트 될지 설정합니다.
|
트레이 아이콘을 클릭했을 때 하이라이트 될지 설정합니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 OS X에서만 작동합니다.
|
### `Tray.displayBalloon(options)` _Windows_
|
||||||
|
|
||||||
### Tray.displayBalloon(options)
|
|
||||||
|
|
||||||
* `options` Object
|
* `options` Object
|
||||||
* `icon` [NativeImage](native-image.md)
|
* `icon` [NativeImage](native-image.md)
|
||||||
|
@ -169,19 +163,15 @@ __주의:__ 이 기능은 OS X에서만 작동합니다.
|
||||||
|
|
||||||
트레이에 알림풍선을 생성합니다.
|
트레이에 알림풍선을 생성합니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 Windows에서만 작동합니다.
|
### `Tray.popContextMenu([position])` _OS X_ _Windows_
|
||||||
|
|
||||||
### Tray.popContextMenu([position])
|
* `position` Object (optional) - 팝업 메뉴 위치
|
||||||
|
|
||||||
* `position` Object - 팝 메뉴 위치
|
|
||||||
* `x` Integer
|
* `x` Integer
|
||||||
* `y` Integer
|
* `y` Integer
|
||||||
|
|
||||||
`position`은 Windows에서만 사용할 수 있으며 기본값은 (0, 0)입니다.
|
`position`은 Windows에서만 사용할 수 있으며 기본값은 (0, 0)입니다.
|
||||||
|
|
||||||
__주의:__ 이 기능은 Windows 와 OS X에서만 작동합니다.
|
### `Tray.setContextMenu(menu)`
|
||||||
|
|
||||||
### Tray.setContextMenu(menu)
|
|
||||||
|
|
||||||
* `menu` Menu
|
* `menu` Menu
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
* Clang 3.4 또는 최신 버전
|
* Clang 3.4 또는 최신 버전
|
||||||
* GTK+ 와 libnotify의 개발용 헤더
|
* GTK+ 와 libnotify의 개발용 헤더
|
||||||
|
|
||||||
Ubuntu를 사용하고 있다면 다음 커맨드로 설치하면 합니다:
|
Ubuntu를 사용하고 있다면 다음과 같이 라이브러리를 설치해야 합니다:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk2.0-dev \
|
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk2.0-dev \
|
||||||
|
@ -18,7 +18,15 @@ $ sudo apt-get install build-essential clang libdbus-1-dev libgtk2.0-dev \
|
||||||
libxss1 libnss3-dev gcc-multilib g++-multilib
|
libxss1 libnss3-dev gcc-multilib g++-multilib
|
||||||
```
|
```
|
||||||
|
|
||||||
다른 배포판의 경우 yum과 같은 패키지 매니저를 통해 패키지를 설치 할 수 있습니다. 패키지의 이름은 대부분 비슷할 것입니다.
|
Fedora를 사용하고 있다면 다음과 같이 라이브러리를 설치해야 합니다:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ sudo yum install clang dbus-devel gtk2-devel libnotify-devel libgnome-keyring-devel \
|
||||||
|
xorg-x11-server-utils libcap-devel cups-devel libXtst-devel \
|
||||||
|
alsa-lib-devel libXrandr-devel GConf2-devel nss-devel
|
||||||
|
```
|
||||||
|
|
||||||
|
다른 배포판의 경우 pacman 같은 패키지 매니저를 통해 패키지를 설치 할 수 있습니다. 패키지의 이름은 대부분 위 예시와 비슷할 것입니다.
|
||||||
또는 소스코드를 내려받아 직접 빌드하는 방법도 있습니다.
|
또는 소스코드를 내려받아 직접 빌드하는 방법도 있습니다.
|
||||||
|
|
||||||
## 가상머신을 사용하여 빌드 하는 경우
|
## 가상머신을 사용하여 빌드 하는 경우
|
||||||
|
|
|
@ -24,7 +24,7 @@ var app = require('app');
|
||||||
app.addRecentDocument('/Users/USERNAME/Desktop/work.type');
|
app.addRecentDocument('/Users/USERNAME/Desktop/work.type');
|
||||||
```
|
```
|
||||||
|
|
||||||
그리고 [app.clearRecentDocuments](clearrecentdocuments) API로 최근 문서 리스트를 비울 수 있습니다:
|
그리고 [app.clearRecentDocuments][clearrecentdocuments] API로 최근 문서 리스트를 비울 수 있습니다:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
app.clearRecentDocuments();
|
app.clearRecentDocuments();
|
||||||
|
|
|
@ -7,12 +7,8 @@
|
||||||
> ChromeDriver는 Chromium의 WebDriver wire 프로토콜 스텐드얼론 서버 구현입니다.
|
> ChromeDriver는 Chromium의 WebDriver wire 프로토콜 스텐드얼론 서버 구현입니다.
|
||||||
> Chromium 과 WebDriver 팀 멤버에 의해 개발되었습니다.
|
> Chromium 과 WebDriver 팀 멤버에 의해 개발되었습니다.
|
||||||
|
|
||||||
Electron의 [releases](https://github.com/atom/electron/releases) 페이지에서 `chromedriver` 릴리즈 압축파일을 찾을 수 있습니다.
|
Electron과 `chromedriver`를 같이 사옹하려면 드라이버에서 Electron을 찾을 수 있도록 해야 하고
|
||||||
`chromedriver`의 Electron 배포판과 upstream과의 차이는 없습니다.
|
Electron은 Chrome 브라우저와 비슷하다는 점을 기억해야 합니다.
|
||||||
`chromedriver`와 Electron을 함께 사용하려면 몇가지 설정이 필요합니다.
|
|
||||||
|
|
||||||
또한 releases에는 `chromedriver`를 포함하여 주 버전만 업데이트 됩니다. (예시: `vX.X.0` releases)
|
|
||||||
왜냐하면 `chromedriver`는 Electron 자체에서 자주 업데이트하지 않기 때문입니다.
|
|
||||||
|
|
||||||
## WebDriverJs 설정하기
|
## WebDriverJs 설정하기
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue