Lumino
ln::UIStackLayout Class Reference

UIStackLayout. More...

#include <UILayoutPanel.hpp>

Inheritance diagram for ln::UIStackLayout:
ln::UILayoutPanel ln::UIElement ln::IScrollInfo

Public Member Functions

void setOrientation (UILayoutOrientation orientation)
 (default: Vertical)
 
- Public Member Functions inherited from ln::UIElement
void setSize (const Size &size)
 要素のサイズを設定します。サイズには、border と padding の幅と高さは含まれません。(例:width 10, border 10 とすると、要素の最終サイズは 20 となります)
 
void setSize (float width, float height)
 要素のサイズを設定します。サイズには、border と padding の幅と高さは含まれません。(例:width 10, border 10 とすると、要素の最終サイズは 20 となります)
 
void setWidth (float value)
 setWidth
 
float width () const
 width
 
void setHeight (float value)
 setHeight
 
float height () const
 height
 
void setMargin (const Thickness &margin)
 要素の margin 値 (外側の余白) を設定します。
 
const Thicknessmargin () const
 要素の margin 値 (外側の余白) を取得します。
 
void setPadding (const Thickness &padding)
 要素の padding 値 (内側の余白) を設定します。この余白は論理ツリーの子要素のレイアウトに影響します。
 
const Thicknesspadding () const
 要素の padding 値 (内側の余白) を取得します。この余白は論理ツリーの子要素のレイアウトに影響します。
 
void setHAlignment (UIHAlignment value)
 要素の横方向の配置方法を設定します。
 
UIHAlignment hAlignment () const
 要素の横方向の配置方法を取得します。
 
void setVAlignment (UIVAlignment value)
 要素の縦方向の配置方法を設定します。
 
UIVAlignment vAlignment () const
 要素の縦方向の配置方法を取得します。
 
void setAlignments (UIHAlignment halign, UIVAlignment valign)
 要素の配置方法を設定します。
 
void setPosition (const Vector3 &pos)
 このオブジェクトの位置を設定します。
 
void setPosition (float x, float y, float z=0.0f)
 このオブジェクトの位置を設定します。
 
const Vector3position () const
 このオブジェクトの位置を位置を取得します。
 
void setRotation (const Quaternion &rot)
 このオブジェクトの回転を設定します。
 
void setEulerAngles (float x, float y, float z)
 このオブジェクトの回転をオイラー角から設定します。(radian)
 
const Quaternionrotation () const
 このオブジェクトの回転を取得します。
 
void setScale (const Vector3 &scale)
 このオブジェクトの拡大率を設定します。
 
void setScale (float xyz)
 このオブジェクトの拡大率を設定します。
 
void setScale (float x, float y)
 このオブジェクトの拡大率を設定します。
 
const Vector3scale () const
 このオブジェクトの拡大率を取得します。
 
void setCenterPoint (const Vector3 &value)
 このオブジェクトのローカルの中心位置を設定します。
 
void setCenterPoint (float x, float y, float z=0.0f)
 このオブジェクトのローカルの中心位置を設定します。
 
const Vector3centerPoint () const
 このオブジェクトのローカルの中心位置を取得します。
 
void setEnabled (bool value)
 要素の有効状態を設定します。
 
bool isEnabled () const
 要素の有効状態を取得します。
 
void setData (Variant *value)
 任意のユーザーデータを設定します。
 
Variantdata () const
 任意のユーザーデータを取得します。
 
void setBackgroundDrawMode (Sprite9DrawMode value)
 背景の描画モードを設定します。
 
Sprite9DrawMode backgroundDrawMode () const
 背景の描画モードを取得します。
 
void setBackgroundColor (const Color &value)
 背景の色を設定します。
 
const ColorbackgroundColor () const
 背景の色を取得します。
 
void setBackgroundImage (Texture *value)
 背景の描画に使用する画像を設定します。
 
TexturebackgroundImage () const
 背景の描画に使用する画像を取得します。
 
void setBackgroundShader (Shader *value)
 背景の描画に使用するシェーダを設定します。
 
ShaderbackgroundShader () const
 背景の描画に使用するシェーダを取得します。
 
void setBackgroundImageRect (const Rect &value)
 背景の描画に使用する画像の転送元の範囲を示す矩形を設定します。(Unit: px)
 
const RectbackgroundImageRect () const
 背景の描画に使用する画像の転送元の範囲を示す矩形を取得します。(Unit: px)
 
void setBackgroundImageBorder (const Thickness &value)
 背景の描画モードが BoxFrame である場合に参照される、転送元の枠の太さを設定します。(Unit: px)
 
const ThicknessbackgroundImageBorder () const
 背景の描画モードが BoxFrame である場合に参照される、転送元の枠の太さを取得します。(Unit: px)
 
void setBorderThickness (const Thickness &value)
 枠線の太さを設定します。
 
const ThicknessborderThickness () const
 枠線の太さを取得します。
 
void setBorderColor (const Color &value)
 枠線の色を設定します。
 
const ColorborderColor () const
 枠線の色を取得します。
 
void setCornerRadius (const CornerRadius &value)
 四角形の角の半径を設定します。
 
const CornerRadiuscornerRadius () const
 四角形の角の半径を取得します。
 
void setTextColor (const Color &value)
 テキストの色を設定します。
 
const ColortextColor () const
 テキストの色を取得します。
 
void setFontFamily (const String &value)
 フォントファミリ名を設定します。
 
const StringfontFamily () const
 フォントファミリ名を取得します。
 
void setFontSize (float value)
 フォントサイズを設定します。
 
float fontSize () const
 フォントサイズを取得します。
 
void setFontWeight (UIFontWeight value)
 フォントの太さを設定します。
 
UIFontWeight fontWeight () const
 フォントの太さを取得します。
 
void setFontStyle (UIFontStyle value)
 フォントのスタイルを設定します。
 
UIFontStyle fontStyle () const
 フォントのスタイルを取得します。
 
void setVisibility (UIVisibility value)
 可視状態を設定します。(default: UIVisibility::Visible)
 
UIVisibility visibility () const
 可視状態を取得します。
 
void setBlendMode (const Optional< BlendMode > &value)
 合成方法を設定します。(default: BlendMode::Normal)
 
BlendMode blendMode () const
 合成方法を取得します。
 
void setOpacity (float value)
 不透明度を設定します。(default: 1.0)
 
float opacity () const
 不透明度を取得します。
 
void setColorScale (const Color &value)
 カラースケールを設定します。(default: Color(1, 1, 1, 1))
 
const ColorcolorScale () const
 カラースケールを取得します。
 
void setBlendColor (const Color &value)
 ブレンドカラーを設定します。(default: Color(0, 0, 0, 0))
 
const ColorblendColor () const
 ブレンドカラーを取得します。
 
void setTone (const ColorTone &value)
 色調を設定します。(default: Tone(0, 0, 0, 0))
 
const ColorTonetone () const
 色調を取得します。
 
void addChild (UIElement *child)
 Add element to container. More...
 
void setFocusable (bool value)
 入力フォーカスを得ることができるかどうかを設定します。(default: false)
 
bool focusable () const
 入力フォーカスを得ることができるかどうかを取得します。
 
void addInto (UIElement *parent=nullptr)
 ウィンドウを前面にしてアクティブ化することを試みます。 More...
 
virtual void onRender (UIRenderingContext *context)
 この要素内の子ビジュアル要素の数を取得します。 More...
 

Protected Member Functions

bool init ()
 init
 
Size measureOverride (UILayoutContext *layoutContext, const Size &constraint) override
 この要素を表示するために必要なサイズを計測します。 [in] constraint : この要素を配置できる領域の最大サイズ。通常は親要素のサイズが渡されます。 More...
 
Size arrangeOverride (UILayoutContext *layoutContext, const Rect &finalArea) override
 Visual 子要素の配置を確定し、この要素の最終サイズを返します。 More...
 
- Protected Member Functions inherited from ln::UILayoutPanel
virtual float getExtentWidth () const
 エクステント (コンテンツ全体) の横幅を取得します。
 
virtual float getExtentHeight () const
 エクステント (コンテンツ全体) の縦幅を取得します。
 
virtual float getViewportWidth () const
 コンテンツに対する実際の表示領域の横幅を取得します。
 
virtual float getViewportHeight () const
 コンテンツに対する実際の表示領域の縦幅を取得します。
 
virtual void setHorizontalOffset (float offset)
 スクロールしたコンテンツの水平オフセットを設定します。
 
virtual float getHorizontalOffset () const
 スクロールしたコンテンツの水平オフセットを取得します。
 
virtual void setVerticalOffset (float offset)
 スクロールしたコンテンツの水平オフセットを設定します。
 
virtual float getVerticalOffset () const
 スクロールしたコンテンツの垂直オフセットを取得します。
 

Detailed Description

Member Function Documentation

◆ arrangeOverride()

Size ln::UIStackLayout::arrangeOverride ( UILayoutContext *  layoutContext,
const Rect finalArea 
)
overrideprotectedvirtual

Visual 子要素の配置を確定し、この要素の最終サイズを返します。

Parameters
[in]finalArea: 親要素がこの要素に対して割り当てた領域のサイズ。
Returns
要素の最終サイズ。要素の描画時にこのサイズを使用します。

派生クラスは finalArea よりも大きいサイズを返すと、描画時に見切れが発生します。

        finalArea には padding および border プロパティの余白は考慮されません。
        余白を正しく反映するためには派生クラスで padding および border プロパティを参照し、子要素の位置を計算します。

        finalArea.x と finalArea.y は、MarginedArea を基準としたオフセットで、通常は (0, 0) です。
        派生クラスで、ベースクラスのレイアウト処理をある特定のローカルエリア内で行いたい場合に指定されます。

        親要素は、各子要素の Arrange を呼び出し、適切に配置する必要があります。
        そうでない場合、子要素はレンダリングされません。(UIElement::arrangeOverride() は、子要素の配置は行いません)

Reimplemented from ln::UIElement.

◆ measureOverride()

Size ln::UIStackLayout::measureOverride ( UILayoutContext *  layoutContext,
const Size constraint 
)
overrideprotectedvirtual

この要素を表示するために必要なサイズを計測します。 [in] constraint : この要素を配置できる領域の最大サイズ。通常は親要素のサイズが渡されます。

Returns
この要素のレイアウトの際に必要となる最低限のサイズ。 この要素のサイズと、全ての子要素のサイズに基づき決定します。NaN や Inf であってはなりません。

constraint は、ScrollViewer 等のコンテンツとなった場合は Infinity が渡されることがあります。

このメソッドはフレームワークから呼び出されます。直接呼び出しても正しい結果は得られません。 このメソッドの実装から子要素の measure を行う場合は measureLayout() を呼び出します。

複数の子要素を並べてレイアウトしたい場合、サイズの合計を返します。 例えば 2 つの UIText を縦に並べる場合は、2つの measureLayout() の結果について、

  • width は 大きい方を返す
  • height は 2 つの合計を返す

constraint に padding と border は含まれていません。 通常、padding と border を加算したサイズを返すように実装します。 border については、inset または outset の場合分けが必要です。

Note
  • レイアウトのコツとしては、constraint から減算するのではなく、子要素を加算してくこと。constraint は Inf が含まれることがある。
  • 実装では padding と border のサイズを考慮する必要があるが、これは VisualChild をレイアウトしてほしいためこうする必要がある。(LogicalChild ではなく)

Reimplemented from ln::UIElement.


The documentation for this class was generated from the following file: