7.8 KiB
HBox
コントロール機能:子コントロールを水平方向に並べるためのレイアウトコンテナ。
タイプ:コンテナコントロール
親クラス:bricks.Layout
初期化パラメータ
options(Object, オプション):設定オプション。Layoutが持つ汎用オプションを継承。- 特有のパラメータはなし。コンストラクタでは親クラスを呼び出し、CSS クラス
'hcontainer'を設定するのみ。
- 特有のパラメータはなし。コンストラクタでは親クラスを呼び出し、CSS クラス
主なイベント
- 特有のイベントなし。
keyselectableが有効な場合、Layoutから継承されるキーボードナビゲーションイベントをサポート:keydown:方向キーに対応(左右で階層移動、上下で選択項目変更、Enter でクリックイベント発火)。
FHBox
コントロール機能:固定された水平レイアウトコンテナ。子要素の折り返しを防ぎ、折れない水平配置が必要なシーンに適している。
タイプ:コンテナコントロール
親クラス:bricks.HBox → bricks.Layout
初期化パラメータ
options(Object, オプション):設定オプション。- 追加パラメータなし。コンストラクタでは親クラスを呼び出した後、スタイル
flexWrap: 'nowrap'を設定。
- 追加パラメータなし。コンストラクタでは親クラスを呼び出した後、スタイル
主なイベント
HBoxと同じ。Layoutが提供するキーボードナビゲーションロジックに依存。- 方向キーによるフォーカス制御と、Enter キーでのクリック発火をサポート。
VBox
コントロール機能:子コントロールを垂直方向に並べるためのレイアウトコンテナ。
タイプ:コンテナコントロール
親クラス:bricks.Layout
初期化パラメータ
options(Object, オプション):設定オプション。- 特有のパラメータなし。コンストラクタでは CSS クラス
'vcontainer'を設定するのみ。
- 特有のパラメータなし。コンストラクタでは CSS クラス
主なイベント
- 特有のイベントなし。
Layoutが定義するキーボードナビゲーション機能を同様にサポート(上下で選択、左右で階層の入出など)。
FVBox
コントロール機能:固定された垂直レイアウトコンテナ。子要素の折り返しを防ぎ、折れない垂直配置に使用。
タイプ:コンテナコントロール
親クラス:bricks.VBox → bricks.Layout
初期化パラメータ
options(Object, オプション):設定オプション。- 追加パラメータなし。コンストラクタで
flexWrap: 'nowrap'を設定。
- 追加パラメータなし。コンストラクタで
主なイベント
VBoxと同じ。完全なキーボードナビゲーション動作をサポート。
Filler
コントロール機能:フレックスレイアウト内で残りスペースを埋めるための伸縮可能なフィルコントロール。動的なレイアウトバランスを実現するために使用され、他のコンポーネント間のスペースを広げる目的でよく利用される。
タイプ:コンテナコントロール(ただし通常は子コントロールを追加しない)
親クラス:bricks.Layout
初期化パラメータ
options(Object, オプション):設定オプション。- 特有のパラメータなし。コンストラクタでは CSS クラス
'filler'を設定。 - コメント内には当初
flexGrow: 1およびoverflow: autoの設定予定があったが、現在は未使用。
- 特有のパラメータなし。コンストラクタでは CSS クラス
主なイベント
- 特有のイベントなし。
- 明示的に
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)メソッドをサポートしている必要あり)。