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

148 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)` メソッドをサポートしている必要あり)。