# dialog（ダイアログ）

以下は、複数のファイルを選択するダイアログの例です：

```javascript
let result = await eagle.dialog.showOpenDialog({ 
    properties: ['openFile', 'multiSelections'] 
});
```

***

#### メソッド <a href="#z1a5y" id="z1a5y"></a>

## showOpenDialog(options) <a href="#tkp0d" id="tkp0d"></a>

ファイルを開くダイアログを表示します。

* `options` Object
  * `title` string (オプション) - ダイアログウィンドウのタイトル
  * `defaultPath` string (オプション) - ダイアログのデフォルト表示パス
  * `buttonLabel` string (オプション) - 「確認」ボタンのカスタムラベル。空の場合、デフォルトのラベルが使用されます。
  * `filters` [FileFilter](https://www.electronjs.org/zh/docs/latest/api/structures/file-filter)\[] (オプション)
    * `name` string
    * `extensions` string\[]
  * `properties` string\[] (オプション) - ダイアログ関連の属性が含まれます。以下の属性値がサポートされています。
    * `openFile` - ファイルの選択を許可
    * `openDirectory` - ディレクトリの選択を許可
    * `multiSelections`- 複数選択を許可。
    * `showHiddenFiles`- システムダイアログで隠しファイルが表示されるようにします。
    * `createDirectory` `macOS` - ダイアログを介して新しいディレクトリを作成できます。
    * `promptToCreate` `Windows`- ダイアログ内で入力されたファイルパスが存在しない場合、作成するように求める。これは実際にパス上にファイルを作成するわけではなく、存在しないアドレスを返すことを許可する
  * `message` string (オプション) `macOS` - 入力ボックスの上部に表示されるメッセージ。
* 返り値 `Promise<result: Object>`
  * `result`Object
    * `canceled` boolean - ダイアログがキャンセルされたかどうか
    * `filePaths` string\[] - 選択されたファイルパスの配列。ダイアログがキャンセルされた場合、空の配列になります。

```javascript
{
  filters: [
    { name: 'Images', extensions: ['jpg', 'png', 'gif'] },
    { name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
    { name: 'Custom File Type', extensions: ['as'] },
    { name: 'All Files', extensions: ['*'] }
  ]
}
```

```javascript
let result = await eagle.dialog.showOpenDialog({
    properties: ['openFile', 'openDirectory']
});
```

{% hint style="info" %}
注：この機能は Electron API の [dialog.showOpenDialog](https://www.electronjs.org/zh/docs/latest/api/dialog#dialogshowopendialogbrowserwindow-options) 機能に似ています。
{% endhint %}

***

## showSaveDialog(options) <a href="#g872m" id="g872m"></a>

ファイル保存ダイアログを表示します。

* `options` オブジェクト
  * `title` string（オプション） - ダイアログウィンドウのタイトル
  * `defaultPath` string（オプション） - ダイアログのデフォルト表示パス
  * `buttonLabel` string（オプション） - 「確認」ボタンのカスタムラベル。空の場合、デフォルトのラベルが使用されます。
  * `filters` [FileFilter](https://www.electronjs.org/zh/docs/latest/api/structures/file-filter)\[]（オプション）
    * `name` string
    * `extensions` string\[]
  * `properties` string\[] (オプション) - ダイアログに関連する属性を含む。次の属性値がサポートされています:
    * `openDirectory` - フォルダを選択できるようにする
    * `showHiddenFiles`- ダイアログに隠しファイルを表示する
    * `createDirectory` `macOS` - ダイアログを通じて新しいディレクトリを作成できるようにする
* 返り値 `Promise<result: Object>`
  * `result` オブジェクト
    * `canceled` boolean - ダイアログがキャンセルされたかどうか
    * `filePath` string - ダイアログがキャンセルされた場合、この値は `undefined` になります。

```javascript
{
  filters: [
    { name: 'Images', extensions: ['jpg', 'png', 'gif'] },
    { name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
    { name: 'Custom File Type', extensions: ['as'] },
    { name: 'All Files', extensions: ['*'] }
  ]
}
```

```javascript
let result = await eagle.dialog.showSaveDialog({
    properties: ['openDirectory']
});
```

{% hint style="info" %}
注：この機能は、Electron API の [dialog.showSaveDialog](https://www.electronjs.org/zh/docs/latest/api/dialog#dialogshowsavedialogbrowserwindow-options) 機能に似ています。
{% endhint %}

***

## showMessageBox(options) <a href="#grq5h" id="grq5h"></a>

メッセージダイアログを表示。

* `options`オブジェクト
  * `message` string - ダイアログの主要な内容
  * `title` string（オプション） - ダイアログのタイトル
  * `detail` string（オプション） - 追加情報
  * `buttons` strings\[]（オプション） - ボタンのテキストの配列
  * `type` string（オプション） - `none`、 `info`、 `error`、`question` または `warning` になることができます
* 返り値 `Promise<result: Object>`
  * `result`オブジェクト
    * `response` Interger - クリックされたボタンのインデックス

```javascript
let result = await eagle.dialog.showMessageBox({
    title: "Messagebox title",
    message: "Message from the Plugin process",
    detail: "Ultra message here",
    buttons: ["確認", "キャンセル"],
    type: "info"
});

console.log(result);		// {response: 0}
```

{% hint style="info" %}
この機能は、Electron API の [dialog.showSaveDialog](https://www.electronjs.org/zh/docs/latest/api/dialog#dialogshowsavedialogbrowserwindow-options) 機能と似ています。
{% endhint %}

***

## showErrorBox(title, content) <a href="#erokr" id="erokr"></a>

エラーメッセージを表示するダイアログボックス。

* `title` string - エラーボックスに表示されるタイトル
* `content` string - エラーボックスに表示されるテキストコンテンツ
* 戻り値 `Promise<void>`

{% code overflow="wrap" %}

```javascript
await eagle.dialog.showErrorBox("エラーボックスのタイトル", "プラグインプロセスからのエラーメッセージ");
```

{% endcode %}

{% hint style="info" %}
注：この機能は、Electron APIの[dialog.showSaveDialog](https://www.electronjs.org/zh/docs/latest/api/dialog#dialogshowsavedialogbrowserwindow-options)機能と似ています。
{% endhint %}

### &#x20;<a href="#nptwx" id="nptwx"></a>
