前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXHierarchyProperty
階層プロパティを表すクラスです。
#include <SFXHierarchyProperty.h.hpp>
class SFXHierarchyProperty;
SFMTYPEDEFCLASS(SFXHierarchyProperty)
        

解説

SFXHierarchyProperty クラスは、 属性キー(UInt32 型)から最大 4 バイトの属性値 (SFXHierarchyProperty::ValueRec 型)へのマップのプロパティを表すクラスです。

SFXHierarchyProperty クラスのインスタンスには、 階層的に親子関係を設定することが可能です。

例えば、 SFZTableView / SFOTableViewColumn / SFOTableCellReactor の各クラスが保持するプロパティは この順に親子関係があり、子プロパティに存在しない属性は親プロパティから継承します。

具体的には、 属性キー P-Key について、 親プロパティに属性値 P-ValueParent が設定されているが、 子プロパティには属性値が設定されていない場合、 子プロパティの属性値は P-ValueParent になります。

逆に、 親プロパティ、子プロパティに属性値としてそれぞれ P-ValueParent / P-ValueChild が設定されている場合は、 子プロパティの属性値はオーバーライドされ、 P-ValueChild になります。 親プロパティの属性値は何れの場合も、P-ValueParent です。

プロパティの親プロパティを設定するには、 SFXHierarchyProperty::SetParent 関数を利用します。 親プロパティが設定されていないプロパティはルートプロパティと呼びます。

以下の表は、フォント属性 SFLPROP_FONT をそれぞれのクラスに設定したときに、 実際のフォントの値がそれぞれのクラスでどのように見えるかを表した例です。

クラス名 設定した属性値 見かけの属性値
SFZTableView AEE_FONT_LARGE AEE_FONT_LARGE
SFOTableViewColumn なし AEE_FONT_LARGE
SFOTableCellReactor AEE_FONT_NORMAL AEE_FONT_NORMAL

親のプロパティでも自身のプロパティでも定義されていない属性キーは不定となり、その値の解釈はそれぞれのクラスに任されます。

属性値は SFXHierarchyProperty::ValueRec 共用体で構成され、型に応じたメンバにアクセスすることでキャストの手間を省くことができます。

SFZTableView / SFOTableViewColumn / SFOTableCellReactor / SFOTableCellTextReactor / SFOTableCellToggleReactor / SFOTableCellImageReactor クラスが内部に保持する、 階層プロパティ(SFXHierarchyProperty)の内容は以下の表にある通りです。

[Note] 注意

デフォルト値が記入されている属性は、 テーブルビュー(SFZTableView)のプロパティ(ルートプロパティ)にすべて設定されています。

ただし、SFLPROP_LEFTTOP_MARGIN_SIZE / SFLPROP_RIGHTTOP_MARGIN_SIZE 属性を除きます。

表 217. SFZTableView / SFOTableViewColumn / SFOTableCellReactor のプロパティ

属性キー 属性値(デフォルト値) 解説
SFLPROP_FONT - フォント: この属性が設定されていない場合は AEE_FONT_NORMAL
SFLPROP_ALIGNMENT - アライメント: この属性が設定されていない場合は (IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE)
SFLPROP_EDITABLE - 編集可能であるかどうかどうか: この属性が設定されていない場合は false(編集不可)
SFLPROP_HORIZONTAL_RULED_LINE_ENABLE true 水平罫線を表示するかどうか: デフォルトの設定は、true(水平罫線は表示される)
SFLPROP_VERTICAL_RULED_LINE_ENABLE true 垂直罫線を表示するか: デフォルトの設定は、true(垂直罫線は表示される)
SFLPROP_FIXED_WIDTH - 横幅(固定)
SFLPROP_FIXED_HEIGHT - 縦幅(固定): この属性は未使用
SFLPROP_LEFTTOP_MARGIN_SIZE SFOTableCellToggleReactor の場合: (1, 1)、SFOTableCellTextReactor の場合: (2, 1) 左上マージンサイズ: この属性が設定されていない場合、マージンは (0, 0)
SFLPROP_RIGHTBOTTOM_MARGIN_SIZE SFOTableCellToggleReactor の場合: (1, 1)、SFOTableCellTextReactor の場合: (2, 1) 右下マージンサイズ: この属性が設定されていない場合、マージンは (0, 0)
SFLPROP_COLOR_GRADIENT_STYLE 0 グラディエーション表示にするかどうか(0: しない、1: する)
SFLPROP_HEADER_BEVEL_LIGHT_COLOR SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) ヘッダーのベベルカラーのライトカラー
SFLPROP_HEADER_BEVEL_BASE_COLOR SFXRGBColor(0xDD, 0xDD, 0xDD, 0x00) ヘッダーのベベルカラーのベースカラー
SFLPROP_HEADER_BEVEL_DARK_COLOR SFXRGBColor(0x88, 0x88, 0x88, 0x00) ヘッダーのベベルカラーのダークカラー
SFLPROP_HEADER_SEPARATOR_COLOR SFXRGBColor(0x6E, 0x6E, 0x6E, 0x00) ヘッダーセパレーターの色
SFLPROP_OUTER_BEVEL_LIGHT_COLOR SFXRGBColor(0xAA, 0xAA, 0xAA, 0x00) 外枠のベベルカラーのライトカラー
SFLPROP_OUTER_BEVEL_BASE_COLOR SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) 外枠のベベルカラーのベースカラー
SFLPROP_OUTER_BEVEL_DARK_COLOR SFXRGBColor(0xEE, 0xEE, 0xEE, 0x00) 外枠のベベルカラーのダークカラー
SFLPROP_INNER_BEVEL_LIGHT_COLOR SFXRGBColor(0x6E, 0x6E, 0x6E, 0x00) 内枠のベベルカラーのライトカラー
SFLPROP_INNER_BEVEL_BASE_COLOR SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) 内枠のベベルカラーのベースカラー
SFLPROP_INNER_BEVEL_DARK_COLOR SFXRGBColor(0xAA, 0xAA, 0xAA, 0x00) 内枠のベベルカラーのダークカラー
SFLPROP_BACKGROUND_COLOR - 背景色: この属性は未使用
SFLPROP_BACKGROUND_GRADIENT_COLOR - 背景をグラディエーション表示にする色: この属性は未使用
SFLPROP_FOREGROUND_COLOR - 前景色: この属性が設定されていない場合は SFXRGBColor(0x00, 0x00, 0x00, 0x00) [黒色]
SFLPROP_FOREGROUND_GRADIENT_COLOR - 前景をグラディエーション表示にする色: この属性は未使用
SFLPROP_SELECTED_BACKGROUND_COLOR SFXRGBColor(0x71, 0x9C, 0xE2, 0x00) 選択時(含む、フォーカス状態)の背景色
SFLPROP_SELECTED_BACKGROUND_GRADIENT_COLOR SFXRGBColor(0x71, 0x9C, 0xE2, 0x00) 選択時(含む、フォーカス状態)の背景をグラディエーション表示にする色
SFLPROP_SELECTED_FOREGROUND_COLOR - 選択時(含む、フォーカス状態)の前景色: この属性が設定されていない場合は SFXRGBColor(0xFF, 0xFF, 0xFF, 0x00) [白色]
SFLPROP_SELECTED_FOREGROUND_GRADIENT_COLOR - 選択時(含む、フォーカス状態)の前景をグラディエーション表示する色: この属性は未使用
SFLPROP_RULED_LINE_COLOR SFXRGBColor(0xF0, 0xF0, 0xF0, 0x00) 罫線の色
SFLPROP_RULED_LINE_COLOR - スクロールの方向: この属性が設定されていない場合は SFYSingleTextWidget::DEFAULT_DIRECTION
SFLPROP_TEXT_SCROLL_INTERVAL - スクロールインターバル[単位:ミリ秒]: この属性が設定されていない場合は SFYSingleTextWidget::DEFAULT_SCROLL
SFLPROP_TEXT_SCROLL_WAITINTERVAL - スクロール開始までの待ち時間[単位:ミリ秒]: この属性が設定されていない場合は SFYSingleTextWidget::DEFAULT_WAIT
SFLPROP_TEXT_SCROLL_STEP - スクロール移動量[単位:ピクセル]: この属性が設定されていない場合は SFYSingleTextWidget::DEFAULT_STEP
[Note] 注意

ユーザー定義クラスで 階層プロパティ(SFXHierarchyProperty)を使用する場合、 属性の解釈やデフォルト値は以下の内容に関係なく自由に変更・設定可能です。

また、SFLPROP_USER_CLASS_BEGIN(0x8000)から SFLPROP_USER_CLASS_END(0xFFFE) の間にユーザー独自の属性を定義することも可能です。

[Caution] 未使用の属性について

未使用の属性に値を設定しても何も行われません。

参照

SFXHierarchyProperty::ValueRec | SFXHierarchyProperty::SetParent | SFYSingleTextWidget::DefaultEnum | SFYSingleTextWidget::DirectionEnum | AEEFont | IDF_ALIGN_ | SFXMargin | SFZTableView | SFOTableViewColumn | SFOTableCellReactor | SFOTableCellTextReactor | SFOTableCellToggleReactor | SFOTableCellImageReactor | SFXRGBColor

メンバ

コンストラクタ/デストラクタ
SFXHierarchyProperty( Void )
SFXHierarchyProperty クラスのコンストラクタです。
~SFXHierarchyProperty( Void )
SFXHierarchyProperty クラスのデストラクタです。
パブリック関数
Bool Contains( UInt32 key , Bool recursive = true )
指定された属性キーが含まれるか判定します。
ValueRec Get( UInt32 key , BoolPtr found = null , Bool recursive = true )
指定された属性キーに対する属性値を取得します。
Bool HasParent( Void )
親プロパティが設定されているかどうかを判定します。
SFCError Set( UInt32 key , ValueRec value )
指定された属性キーに指定された属性値を設定します。
Void SetParent( SFXHierarchyPropertyConstPtr parent )
親プロパティを設定します。
ValueRec
属性値を表す共用体です。

SFXHierarchyProperty::SFXHierarchyProperty
SFXHierarchyProperty クラスのコンストラクタです。
[ public, explicit ]
SFXHierarchyProperty(Void);

解説

このコンストラクタは、何も行いません。


SFXHierarchyProperty::~SFXHierarchyProperty
SFXHierarchyProperty クラスのデストラクタです。
[ public ]
~SFXHierarchyProperty(Void);

解説

このデストラクタは、何も行いません。


SFXHierarchyProperty::Contains
指定された属性キーが含まれるか判定します。
[ public, const ]
Bool Contains(
    UInt32 key              // 属性キー
    Bool recursive = true   // このプロパティだけでなく再帰的に親プロパティを辿って検索するかどうか
);

戻り値

  • 属性キーが含まれるとき: true
  • そうでないとき: false

解説

この関数は、 指定された属性キーが含まれるか判定します。

recursive 引数に true(デフォルト) に指定すると、 このプロパティに属性キー含まれなければ、再帰的にルートプロパティまで親プロパティを検索します。 false の場合は、このプロパティだけを検索します。

recursive 引数のデフォルト値は、true です。

[Note] 注意

SFXHierarchyProperty::Get 関数を使用しても属性キーの存在性を判定できますが、 この場合、属性値も取得できます。

参照

SFXHierarchyProperty::Get


SFXHierarchyProperty::Get
指定された属性キーに対する属性値を取得します。
[ public, const ]
ValueRec Get(
    UInt32 key              // 属性キー
    BoolPtr found = null    // 属性キーの存在性についての判定結果を格納する場所
    Bool recursive = true   // このプロパティだけでなく再帰的に親プロパティを辿って検索するかどうか
);

戻り値

属性値(SFXHierarchyProperty::ValueRec)。

解説

この関数は、 指定された属性キーに対する属性値を取得します。

recursive 引数に true(デフォルト) に指定すると、 このプロパティに属性キー含まれなければ、再帰的にルートプロパティまで親プロパティを検索します。 false の場合は、このプロパティだけを検索します。

属性キーが存在しなかった場合、 null に相当する SFXHierarchyProperty::ValueRec の値が取得されます。

recursive 引数のデフォルト値は、true です。

found 引数を指定すると、 この引数に指定した場所に属性キーの存在性についての判定結果が格納されます。 属性キーが存在しない場合は、null が格納されます。

found 引数のデフォルト値は、null です(属性キーの存在性についての判定結果は返されません)。

参照

SFXHierarchyProperty::ValueRec


SFXHierarchyProperty::HasParent
親プロパティが設定されているかどうかを判定します。
[ public, const ]
Bool HasParent(Void);

戻り値

  • 親プロパティがあるとき: true
  • 自身がルートのとき: false

解説

この関数は、 このプロパティに親プロパティが設定されているかどうかを判定します。

参照

SFXHierarchyProperty::SetParent


SFXHierarchyProperty::Set
指定された属性キーに指定された属性値を設定します。
[ public ]
SFCError Set(
    UInt32 key       // 属性キー
    ValueRec value   // 属性値
);

解説

この関数は、 指定された属性キーに指定された属性値を設定します。

[Note] 注意

SFXHierarchyProperty::ValueRec 共用体は各種変換コンストラクタを備えているため、 ValueRec 共用体型の値でなくても、値を設定できる場合があります。

使用例

ValueRec(SFXRGBColorConstRef param) 変換コンストラクタの適用

SFXHierarchyProperty property;

// 背景色を青色に設定する
property.Set(SFLPROP_BACKGROUND_COLOR, SFXRGBColor(0x00, 0x00, 0xBB, 0x00));

参照

SFXHierarchyProperty::ValueRec


SFXHierarchyProperty::SetParent
親プロパティを設定します。
[ public, const ]
Void SetParent(
    SFXHierarchyPropertyConstPtr parent   // 設定する親プロパティ
);

解説

この関数は、 このプロパティに親プロパティを設定します。

[Note] 注意

親プロパティを設定することで、子プロパティは親プロパティの属性を継承します。 また、子プロパティにおいて親プロパティの属性をオーバーライドすることも可能です。

親プロパティを持たないプロパティのことをルートプロパティと呼びます。

参照

SFXHierarchyProperty::HasParent


SFXHierarchyProperty::ValueRec
属性値を表す共用体です。
SFMTYPEDEFUNION(ValueRec)
union ValueRec {
    // 各種メンバ変数
    SIntN                   sn;
    UIntN                   un;
    SInt32                  s32;
    UInt32                  u32;
    SInt16                  s16;
    UInt16                  u16;
    SInt08                  s08;
    UInt08                  u08;
    Bool                    flag;
    VoidPtr                 ptr;
    AEEFont                 font;
    SFXRGBColor::AtomRec    color;
    SFXSize::AtomRec        size;
    SFXGrid::AtomRec        grid;
    // デフォルトコンストラクタ
                            ValueRec                (Void);
    // 各種変換コンストラクタ
                            ValueRec                (ValueRecConstRef param);
                            ValueRec                (SIntNConstRef param);
                            ValueRec                (UIntNConstRef param);
                            ValueRec                (SInt32ConstRef param);
                            ValueRec                (UInt32ConstRef param);
                            ValueRec                (SInt16ConstRef param);
                            ValueRec                (UInt16ConstRef param);
                            ValueRec                (SInt08ConstRef param);
                            ValueRec                (UInt08ConstRef param);
                            ValueRec                (VoidPtrConstRef param);
                            ValueRec                (SFXRGBColorConstRef param);
                            ValueRec                (SFXRGBColor::AtomRecConstRef param);
                            ValueRec                (SFXSizeConstRef param);
                            ValueRec                (SFXSize::AtomRecConstRef param);
                            ValueRec                (SFXGridConstRef param);
                            ValueRec                (SFXGrid::AtomRecConstRef param);
    // 設定関数
    ValueRecRef             Set                     (ValueRecConstRef param);
    ValueRecRef             Set                     (SIntNConstRef param);
    ValueRecRef             Set                     (UIntNConstRef param);
    ValueRecRef             Set                     (SInt32ConstRef param);
    ValueRecRef             Set                     (UInt32ConstRef param);
    ValueRecRef             Set                     (SInt16ConstRef param);
    ValueRecRef             Set                     (UInt16ConstRef param);
    ValueRecRef             Set                     (SInt08ConstRef param);
    ValueRecRef             Set                     (UInt08ConstRef param);
    ValueRecRef             Set                     (VoidPtrConstRef param);
    ValueRecRef             Set                     (SFXRGBColorConstRef param);
    ValueRecRef             Set                     (SFXRGBColor::AtomRecConstRef param);
    ValueRecRef             Set                     (SFXSizeConstRef param);
    ValueRecRef             Set                     (SFXSize::AtomRecConstRef param);
    ValueRecRef             Set                     (SFXGridConstRef param);
    ValueRecRef             Set                     (SFXGrid::AtomRecConstRef param);
    // 代入演算子
    ValueRecRef             operator=               (ValueRecConstRef param);
    ValueRecRef             operator=               (SIntNConstRef param);
    ValueRecRef             operator=               (UIntNConstRef param);
    ValueRecRef             operator=               (SInt32ConstRef param);
    ValueRecRef             operator=               (UInt32ConstRef param);
    ValueRecRef             operator=               (SInt16ConstRef param);
    ValueRecRef             operator=               (UInt16ConstRef param);
    ValueRecRef             operator=               (SInt08ConstRef param);
    ValueRecRef             operator=               (UInt08ConstRef param);
    ValueRecRef             operator=               (VoidPtrConstRef param);
    ValueRecRef             operator=               (SFXRGBColorConstRef param);
    ValueRecRef             operator=               (SFXRGBColor::AtomRecConstRef param);
    ValueRecRef             operator=               (SFXSizeConstRef param);
    ValueRecRef             operator=               (SFXSize::AtomRecConstRef param);
    ValueRecRef             operator=               (SFXGridConstRef param);
    ValueRecRef             operator=               (SFXGrid::AtomRecConstRef param);
};

解説

属性値は 4 バイト以下の値を表す共用体で、 様々な型の値を設定できるように設定関数、変換コンストラクタ、代入演算子が定義されています。

値を取得するときは、メンバ変数でアクセスします。

使用例

SFXRGBColor white(0xFF, 0xFF, 0xFF, 0x00);
SFXRGBColor color;
SFXHierarchyProperty::ValueRec value;

// 白色を設定する (設定関数)
value.Set(white);

// メンバ変数によるアクセス
color = value.color;

if (color == white) {
    TRACE("color is white.");
}

// 白色を設定する (代入演算子)
value = white;

// メンバ変数によるアクセス
color = value.color;

if (color == white) {
    TRACE("color is white, again.");
}

// 変換コンストラクタの適用
SFXHierarchyProperty::ValueRec another(white);

// メンバ変数によるアクセス
color = another.color;

if (color == white) {
    TRACE("color is white, again and again.");
}

参照

SFXRGBColor