# メニュー

**コントロール機能**：インタラクティブなメニュー部品を作成するために使用します。静的なメニュー項目、ネストされたサブメニュー、およびリモートのサブメニューを動的に読み込むことをサポートしています。メニュー項目をクリックすると、ページ遷移やポップアップウィンドウの表示などの動作をトリガーできます。  
**タイプ**：コンテナーコントロール  
**親クラスコントロール**：`bricks.VBox`

## 初期化パラメータ

| パラメータ名 | 型 | 説明 |
|------------|----|------|
| `options.bgcolor` | String | メニューの背景色。デフォルトは `\"white\"` |
| `options.items` | Array | メニュー項目の配列。各項目には label、url、icon、target などの属性が含まれます（詳細は `create_menuitem` および `create_children` メソッドを参照） |
| `options.item_cheight` | Number | メニュー項目の高さ単位（cheight）。アイコンとテキストのレイアウトに影響します |
| `options.menuitem_css` | String | メニュー項目にカスタムCSSスタイルを適用するためのクラス名 |
| `options.target` | String | メニュー項目クリック後のターゲットコンテナーの種類。例：`'PopupWindow'`、`'Popup'`、または他のwidget ID |
| `options.popup_options` | Object | ポップアップウィンドウまたはポップアップの表示動作をカスタマイズするための設定オプション |

> 注：`options` は親クラス `VBox` にも引き渡され、その一般的なレイアウトパラメータを継承します。

## 主なイベント

- **`item_click`**  
  発火タイミング：ユーザーがメニュー項目をクリックしたとき  
  コールバックパラメータ：`item` オブジェクト（`label`、`url`、`icon`、`target` などのフィールドを含む）  
  処理ロジック：`item.target` の値に基づいて、新しいウィンドウでの開く、ポップアップ表示、または指定されたコントロールの内容を置き換えるかを決定し、`widgetBuild` を使って対応するURLのコンテンツをロードします。

- **`command`**  
  発火タイミング：`menu_clicked` によるナビゲーション処理が完了した後に発行されます  
  コールバックパラメータ：`item_click` と同じ `opts` オブジェクト  
  用途：外部システムに追加のコマンド実行や状態更新を行うよう通知します。

> イベントのバインドはコンストラクタ内で `this.bind('item_click', ...)` を通じて設定され、`regen_menuitem_event` によってトリガーされます。