# HBox **コントロール機能**:子コントロールを水平方向に並べるためのレイアウトコンテナ。 **タイプ**:コンテナコントロール **親クラス**:`bricks.Layout` ## 初期化パラメータ - `options` (Object, オプション):設定オプション。`Layout` が持つ汎用オプションを継承。 - 特有のパラメータはなし。コンストラクタでは親クラスを呼び出し、CSS クラス `'hcontainer'` を設定するのみ。 ## 主なイベント - 特有のイベントなし。 - `keyselectable` が有効な場合、`Layout` から継承されるキーボードナビゲーションイベントをサポート: - `keydown`:方向キーに対応(左右で階層移動、上下で選択項目変更、Enter でクリックイベント発火)。 --- # FHBox **コントロール機能**:固定された水平レイアウトコンテナ。子要素の折り返しを防ぎ、折れない水平配置が必要なシーンに適している。 **タイプ**:コンテナコントロール **親クラス**:`bricks.HBox` → `bricks.Layout` ## 初期化パラメータ - `options` (Object, オプション):設定オプション。 - 追加パラメータなし。コンストラクタでは親クラスを呼び出した後、スタイル `flexWrap: 'nowrap'` を設定。 ## 主なイベント - `HBox` と同じ。`Layout` が提供するキーボードナビゲーションロジックに依存。 - 方向キーによるフォーカス制御と、Enter キーでのクリック発火をサポート。 --- # VBox **コントロール機能**:子コントロールを垂直方向に並べるためのレイアウトコンテナ。 **タイプ**:コンテナコントロール **親クラス**:`bricks.Layout` ## 初期化パラメータ - `options` (Object, オプション):設定オプション。 - 特有のパラメータなし。コンストラクタでは CSS クラス `'vcontainer'` を設定するのみ。 ## 主なイベント - 特有のイベントなし。 - `Layout` が定義するキーボードナビゲーション機能を同様にサポート(上下で選択、左右で階層の入出など)。 --- # FVBox **コントロール機能**:固定された垂直レイアウトコンテナ。子要素の折り返しを防ぎ、折れない垂直配置に使用。 **タイプ**:コンテナコントロール **親クラス**:`bricks.VBox` → `bricks.Layout` ## 初期化パラメータ - `options` (Object, オプション):設定オプション。 - 追加パラメータなし。コンストラクタで `flexWrap: 'nowrap'` を設定。 ## 主なイベント - `VBox` と同じ。完全なキーボードナビゲーション動作をサポート。 --- # Filler **コントロール機能**:フレックスレイアウト内で残りスペースを埋めるための伸縮可能なフィルコントロール。動的なレイアウトバランスを実現するために使用され、他のコンポーネント間のスペースを広げる目的でよく利用される。 **タイプ**:コンテナコントロール(ただし通常は子コントロールを追加しない) **親クラス**:`bricks.Layout` ## 初期化パラメータ - `options` (Object, オプション):設定オプション。 - 特有のパラメータなし。コンストラクタでは CSS クラス `'filler'` を設定。 - コメント内には当初 `flexGrow: 1` および `overflow: auto` の設定予定があったが、現在は未使用。 ## 主なイベント - 特有のイベントなし。 - 明示的に `keyselectable` を有効にすればキーボードナビゲーションスタックに含まれるが、実際の用途は少ない。 --- # ResponsableBox > (注:クラス名はおそらく「ResponsiveBox」の誤記と思われる) **コントロール機能**:レスポンシブレイアウトコンテナ。自身のアスペクト比に基づき、自動的に横または縦のレイアウトモードに切り替わる。幅が高さより大きい場合は横向き(hcontainer)、そうでない場合は縦向き(vcontainer)となる。 **タイプ**:コンテナコントロール **親クラス**:`bricks.Layout` ## 初期化パラメータ - `opts` (Object, オプション):親クラス `Layout` に渡される設定オプション。 - コンストラクタ内で `'element_resize'` イベントをバインドし、サイズ変更を監視。 ## 主なイベント - `element_resize`:コンテナのサイズ変更時に発火し、`reset_type()` メソッドを呼び出してレイアウト方向を再判定。 - 自動的に CSS クラスと幅・高さのスタイルを調整: - 幅 > 高さ:`'hcontainer'` を適用、高さ100%、幅は自動調整。 - 高さ ≥ 幅:`'vcontainer'` を適用、幅100%、高さは自動調整。 - ネストされたキーボードナビゲーションをサポート。動作は `Layout` によって一元管理される。 --- # Layout > 工場名(ファクトリ名)は直接登録されていないが、そのサブクラスは登録済み。上記すべてのコンテナクラスの基底クラスであり、主要な機能はここに集中している。 **コントロール機能**:基本的なレイアウトコンテナクラス。共通の子コントロール管理、キーボード選択対応、タイトル/説明の生成、ツールバー統合などの機能を提供。すべてのレイアウトコントロールの共通親クラス。 **タイプ**:コンテナコントロール **親クラス**:`bricks.JsWidget` ## 初期化パラメータ - `options` (Object, オプション) - `keyselectable` (Boolean):キーボード選択機能を有効にするかどうか。デフォルトは `false`。 - `title` (String):任意のタイトル文字列。`Title3` コントロールとして生成される。 - `description` (String):任意の説明文。`Text` コントロールとして生成される。 - `toolbar` (Object):ツールバー設定。`FloatTextIconBar` の作成に使用。 - その他、`JsWidget` から継承される汎用パラメータ。 ## 主なイベント - `keydown`:グローバルにバインドされ、`enable_key_select()` により有効化。以下のキーを処理: - `ArrowUp` / `ArrowDown`:上下で選択中の子コントロールを切り替え。 - `ArrowLeft`:`up_level()` を呼び出し、一つ上の階層に戻る。 - `ArrowRight`:`down_level()` を呼び出し、次の階層に入る。 - `Enter`:現在選択中のコントロールに対して `click` イベントを発火。 - `on_parent`:コントロールが親コンテナに追加または削除されたときに発行され、子コントロールに親の変更を通知。 - `element_resize`:主に `ResponsableBox` で使用されるが、`Layout` が DOM 要素操作の能力を提供。 - `click`:`enter_handler()` を介して、選択中の子コントロールに手動で送信可能。 さらに、以下の重要なメソッドも提供(イベントではないが、イベントフローに影響を与える): - `enable_key_select()` / `disable_key_select()`:キーボードナビゲーションの有効/無効化。グローバルスタック `key_selectable_stack` を管理。 - `add_widget(w, index)`:子コントロールを追加。自動的にDOMに挿入され、親子関係が構築される。 - `remove_widget(w)` / `clear_widgets()`:コントロールを削除。DOMとイベントの関連付けもクリーンアップ。 - `select_item(w)`:指定した子コントロールをハイライト(`.selected(bool)` メソッドをサポートしている必要あり)。