# ポップアップ

**コントロール機能**：ポップアップレイヤーコントロール。ページ上にモーダルまたは非モーダルのフローティングウィンドウを表示するために使用され、自動開閉、外部クリックでの閉じる、ドラッグ移動、サイズ変更、タイマーによる自動閉じるなどの機能をサポートしています。  
**タイプ**：コンテナコントロール  
**親クラスコントロール**：`bricks.VBox`

## 初期化パラメータ

| パラメータ名 | 型 | デフォルト値 | 説明 |
|--------------|----|--------------|------|
| `timeout` | number | `0` | 自動的に閉じるまでの遅延時間（ミリ秒）。0の場合は自動的に閉じません。 |
| `archor` | string | `'cc'` | ポップアップの位置アンカー。`tl`, `tc`, `tr`, `cl`, `cc`, `cr`, `bl`, `bc`, `br` のいずれかを指定し、画面に対する相対位置を表します。 |
| `widget` | string / Widget / null | `null` | 関連付けるターゲットコントロール（IDまたはオブジェクト）。位置決めや無効化に使用されます。 |
| `auto_open` | boolean | `true` | 作成後に自動的にポップアップを開くかどうか。 |
| `auto_dismiss` | boolean | `true` | ポップアップ外をクリックしたときに自動的に閉じるかどうか。 |
| `auto_destroy` | boolean | `true` | 閉じた後に自動的にコントロールを破棄するかどうか。 |
| `movable` | boolean | `true` | ドラッグによる移動を許可するかどうか。 |
| `resizable` | boolean | `false` | サイズ変更を許可するかどうか。 |
| `modal` | boolean | `true` | モーダルウィンドウであるか（マスクを表示し、ターゲットコントロールを無効化）。 |
| `content` | object | `undefined` | ポップアップ内容の設定オブジェクト。開いたときに非同期で読み込まれます。 |
| `dismiss_events` | array | `undefined` | 指定されたイベント名の配列。これらのイベントが発生すると、ポップアップが自動的に閉じます。 |

> 注：モバイル端末ではデフォルトの幅と高さは `100%`、デスクトップ端末では `70%` です。

## 主なイベント

| イベント名 | 発火タイミング | 説明 |
|------------|----------------|------|
| `opened` | ポップアップが表示され、レイアウトが完了した後に発火 | 動的コンテンツの読み込みなどに使用されます。 |
| `dismissed` | ポップアップが非表示になったときに発火 | リソースの解放などに使用されます。 |
| `destroy` | コントロールが破棄されたときに発火 | `auto_destroy` が true の場合のみ発火します。 |

---

# PopupWindow

**コントロール機能**：ドラッグ可能、拡縮可能、タイトルバー付きのアプリケーションレベルのウィンドウコントロール。デスクトップアプリケーションのウィンドウを模倣するために使用され、最小化、全画面表示、閉じるなどの操作をサポートしています。  
**タイプ**：コンテナコントロール  
**親クラスコントロール**：`bricks.Popup`

## 初期化パラメータ

| パラメータ名 | 型 | デフォルト値 | 説明 |
|--------------|----|--------------|------|
| `title` | string | `"[Untitle window]"` | ウィンドウのタイトルテキスト |
| `icon` | string | 組み込みアイコンパス | ウィンドウ左上に表示されるアイコンのURL |
| `rate` | number | `1.5` | アイコンの拡大比率 |
| `auto_open` | boolean | `true` | 作成後に自動的にウィンドウを開くかどうか |
| その他のパラメータ | —— | `Popup`から継承 | `width`, `height`, `modal`, `movable`, `resizable` など。すべて継承されており、デフォルトで移動可能・サイズ変更可能になっています。 |

> 注意：`PopupWindow` では `movable=true`、`resizable=true` が強制的に設定されており、デフォルトで `auto_dismiss=false`、`auto_destroy=false` となっています。

## 主なイベント

| イベント名 | 発火タイミング | 説明 |
|------------|----------------|------|
| `opened` | ウィンドウが開き、描画が完了した後に発火 | `Popup` から継承 |
| `dismissed` | ウィンドウが閉じられたとき（最小化も含む）に発火 | 状態の同期などに使用されます。 |
| `destroy` | `destroy()` メソッドが呼び出されたとき、または閉じるボタンがクリックされたときに発火 | 実際の破棄前にクリーンアップ処理を実行します。 |

### 組み込みツールバーのイベントバインディング

- `delete`：閉じるボタンをクリックすると発火。`destroy()` を呼び出してウィンドウを破棄します。
- `minimize`：最小化ボタンをクリックすると発火。`win_minimize()` を呼び出してウィンドウを非表示にし、`app.mwins` リストに追加します。
- `fullscreen`：全画面ボタンをクリックすると発火。全画面モードに入ります。

> 最小化されたウィンドウは `WindowsPanel` を使って再び開くことができます。