bricks/docs/ja/layout.md
2025-11-19 12:30:39 +08:00

7.8 KiB
Raw Permalink Blame History

HBox

コントロール機能:子コントロールを水平方向に並べるためのレイアウトコンテナ。
タイプ:コンテナコントロール
親クラスbricks.Layout

初期化パラメータ

  • options (Object, オプション):設定オプション。Layout が持つ汎用オプションを継承。
    • 特有のパラメータはなし。コンストラクタでは親クラスを呼び出し、CSS クラス 'hcontainer' を設定するのみ。

主なイベント

  • 特有のイベントなし。
  • keyselectable が有効な場合、Layout から継承されるキーボードナビゲーションイベントをサポート:
    • keydown方向キーに対応左右で階層移動、上下で選択項目変更、Enter でクリックイベント発火)。

FHBox

コントロール機能:固定された水平レイアウトコンテナ。子要素の折り返しを防ぎ、折れない水平配置が必要なシーンに適している。
タイプ:コンテナコントロール
親クラスbricks.HBoxbricks.Layout

初期化パラメータ

  • options (Object, オプション):設定オプション。
    • 追加パラメータなし。コンストラクタでは親クラスを呼び出した後、スタイル flexWrap: 'nowrap' を設定。

主なイベント

  • HBox と同じ。Layout が提供するキーボードナビゲーションロジックに依存。
  • 方向キーによるフォーカス制御と、Enter キーでのクリック発火をサポート。

VBox

コントロール機能:子コントロールを垂直方向に並べるためのレイアウトコンテナ。
タイプ:コンテナコントロール
親クラスbricks.Layout

初期化パラメータ

  • options (Object, オプション):設定オプション。
    • 特有のパラメータなし。コンストラクタでは CSS クラス 'vcontainer' を設定するのみ。

主なイベント

  • 特有のイベントなし。
  • Layout が定義するキーボードナビゲーション機能を同様にサポート(上下で選択、左右で階層の入出など)。

FVBox

コントロール機能:固定された垂直レイアウトコンテナ。子要素の折り返しを防ぎ、折れない垂直配置に使用。
タイプ:コンテナコントロール
親クラスbricks.VBoxbricks.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:上下で選択中の子コントロールを切り替え。
    • ArrowLeftup_level() を呼び出し、一つ上の階層に戻る。
    • ArrowRightdown_level() を呼び出し、次の階層に入る。
    • Enter:現在選択中のコントロールに対して click イベントを発火。
  • on_parent:コントロールが親コンテナに追加または削除されたときに発行され、子コントロールに親の変更を通知。
  • element_resize:主に ResponsableBox で使用されるが、Layout が DOM 要素操作の能力を提供。
  • clickenter_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) メソッドをサポートしている必要あり)。