# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.eagle.cool/plugin-api/ja-jp/api/dialog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
