前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFOTableViewColumn
テーブルビューカラムを表すクラスです。
#include <SFOTableViewColumn.h.hpp>
class SFOTableViewColumn : public SFORefObject;
SFMTYPEDEFREFOBJECT(SFOTableViewColumn)
        

継承図

SFOTableViewColumn クラスの継承図

協調図

SFOTableViewColumn クラスの協調図

解説

SFOTableViewColumn クラスは、 テーブルビューの 1 つの列を表します。

このクラスは、主に以下の 4 つの機能を提供します。

参照

SFZTableView | SFOTableModelBase | SFOTableCellReactor | SFXHierarchyProperty

メンバ

コンストラクタ/デストラクタ
SFOTableViewColumn( Void )
SFOTableViewColumn クラスのコンストラクタです。
SFOTableViewColumn( SFXWideStringConstRef title , SInt32 modelColumnIndex , SFOTableCellReactorSmpConstRef reactor )
SFOTableViewColumn クラスのコンストラクタです。
~SFOTableViewColumn( Void )
SFOTableViewColumn クラスのデストラクタです。
パブリック関数
SFOTableCellReactorSmpConstRef GetCellReactor( Void )
テーブルセルリアクターを取得します。
SInt32 GetModelColumnIndex( Void )
対応するテーブルモデルカラムのインデックスを取得します。
ValueRec GetProperty( UInt32 key , BoolPtr found = null , Bool recursive = true )
指定された属性キーに対応する属性値を取得します。
SFXWideStringConstRef GetTitle( Void )
タイトル名を取得します。
Bool HasProperty( UInt32 key , Bool recursive = true )
指定された属性キーに対応する属性値が設定されているかどうかを判定します。
static
SFOTableViewColumnSmp
NewInstance( SFCErrorPtr exception = null )
新しいインスタンスを作成します。
static
SFOTableViewColumnSmp
NewInstance( SFXWideStringConstRef title , SInt32 modelColumnIndex , SFOTableCellReactorSmpConstRef reactor , SFCErrorPtr exception = null )
新しいインスタンスを作成します。
Void SetCellReactor( SFOTableCellReactorSmpConstRef param )
指定されたテーブルセルリアクターを設定します。
Void SetModelColumnIndex( SInt32 index )
対応するテーブルモデルカラムのインデックスを設定します。
SFCError SetProperty( UInt32 key , ValueRec value )
指定された属性キーに対応する属性値を設定します。
SFCError SetTitle( SFXWideStringConstRef title )
タイトル名を設定します。
プロテクト関数
Void DrawHeaderColumn( SFXGraphicsPtr graphics , SFXRectangleConstRef bound )
テーブルビューカラムのヘッダー部を描画します。
static
SFORefObjectSmp
Factory( SFORefObjectPtr object , SFCErrorPtr exception ) (SFORefObject から継承)
NewInstance 関数の実装を補助します。
SFCError Initialize( Void ) (SFORefObject から継承)
初期化を行います。

SFOTableViewColumn::SFOTableViewColumn
SFOTableViewColumn クラスのコンストラクタです。
[ protected, explicit ]
SFOTableViewColumn(Void);
[ protected, explicit ]
SFOTableViewColumn(
    SFXWideStringConstRef title              // 列タイトル名
    SInt32 modelColumnIndex                  // 対応するテーブルモデルカラム番号
    SFOTableCellReactorSmpConstRef reactor   // テーブルセルリアクター (セルの描画や振る舞いの委譲先)
);

解説

このコンストラクタでは、 title 引数、modelColumnIndex 引数、reactor 引数を指定することにより、 このテーブルビューカラムのタイトル名、テーブルモデルカラム、テーブルセルリアクターを設定することが可能です。

[Note] 注意

このコンストラクタは SFOTableViewColumn::NewInstance 関数から間接的に呼び出されます。

参照

SFOTableViewColumn::NewInstance | SFOTableViewColumn::SetTitle | SFOTableViewColumn::SetModelColumnIndex | SFOTableViewColumn::SetCellReactor | SFOTableCellReactor


SFOTableViewColumn::~SFOTableViewColumn
SFOTableViewColumn クラスのデストラクタです。
[ protected, virtual ]
~SFOTableViewColumn(Void);

解説

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


SFOTableViewColumn::DrawHeaderColumn
テーブルビューカラムのヘッダー部を描画します。
[ protected, virtual, const ]
Void DrawHeaderColumn(
    SFXGraphicsPtr graphics      // グラフィックスオブジェクト
    SFXRectangleConstRef bound   // ヘッダー領域
);

解説

この関数は、 テーブルビューカラムのヘッダー部を描画します。

[Note] 注意

階層プロパティの整列属性(SFLPROP_ALIGNMENT)、 フォント属性(SFLPROP_FONT)、前景色(SFLPROP_FOREGROUND_COLOR)を使用してヘッダー領域にタイトル名を描画します。

参照

SFXHierarchyProperty


SFOTableViewColumn::GetCellReactor
テーブルセルリアクターを取得します。
[ public, const ]
SFOTableCellReactorSmpConstRef GetCellReactor(Void);

戻り値

テーブルセルリアクター(SFOTableCellReactor)。

解説

この関数は、 テーブルビューカラムに設定されているテーブルセルリアクター(SFOTableCellReactor)を取得します。

[Note] 注意

テーブルビューカラムへのテーブルセルリアクターの設定は、 SFOTableViewColumn::SetCellReactor 関数を利用して行います。

参照

SFOTableViewColumn::SetCellReactor | SFOTableCellReactor


SFOTableViewColumn::GetModelColumnIndex
対応するテーブルモデルカラムのインデックスを取得します。
[ public, const ]
SInt32 GetModelColumnIndex(Void);

戻り値

列番号。

解説

この関数は、 このテーブルビューカラムに対応するテーブルモデルカラムのインデックスを取得します。

参照

SFOTableViewColumn::SetModelColumnIndex | SFOTableModelBase


SFOTableViewColumn::GetProperty
指定された属性キーに対応する属性値を取得します。
[ public, const ]
ValueRec GetProperty(
    UInt32 key              // 検索する属性キー
    BoolPtr found = null    // null 以外の BoolPtr 値を指定すると、属性キーの有無が返る
    Bool recursive = true   // 親プロパティを再帰的に検索するかどうか
);

戻り値

指定された属性キーに対応する属性値(SFXHierarchyProperty::ValueRec)。

解説

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

キーが見つからなかった場合、null 値が返ります。

[Note] SFXHierarchyProperty::ValueRec の null 値

SFXHierarchyProperty::ValueRec は最大 4 バイトの共用体で、null 値はその全てのビットが 0 になります。 従って、型が SFXRGBColor の場合は SFXRGBColor(0x00, 0x00, 0x00, 0x00) で黒色、Bool の場合は false となります。

found 引数を null 以外の BoolPtr 値を指定すると、 属性キーの有無が返ります。 属性キーの有無を判定するだけなら SFOTableViewColumn::HasProperty 関数も利用可能です。

recursive 引数に true を指定すると、 このクラスのプロパティにキーが存在しない場合は、 親プロパティが検索対象になり、。 最初にヒットした最下層クラスのプロパティの属性値が返ります。

[Note] 親プロパティ

このクラスのプロパティの親プロパティは、 SFZTableView クラスのプロパティです。

このクラスのプロパティにキーが存在しない場合は、 SFZTableView クラスのプロパティが検索対象となります。

キーが見つかった場合、検索はその時点で終了します。

[Note] 注意

属性についての詳細は、 SFXHierarchyProperty クラスの解説を参照してください。

参照

SFOTableViewColumn::SetProperty | SFOTableViewColumn::HasProperty | SFXHierarchyProperty::ValueRec | SFXHierarchyProperty | SFZTableView


SFOTableViewColumn::GetTitle
タイトル名を取得します。
[ public, const ]
SFXWideStringConstRef GetTitle(Void);

戻り値

列のタイトル名

解説

この関数は、 このテーブルビューカラムのタイトル名を取得します。

参照

SFOTableViewColumn::SetTitle | SFXWideString


SFOTableViewColumn::HasProperty
指定された属性キーに対応する属性値が設定されているかどうかを判定します。
[ public, const ]
Bool HasProperty(
    UInt32 key              // 検索する属性キー
    Bool recursive = true   // 親プロパティを再帰的に検索するかどうか
);

戻り値

  • キーが見つかったとき: true
  • そうでないとき: false

解説

この関数は、 指定された属性キーに対応する属性値が設定されているかどうかを判定します。

recursive 引数に true を指定すると、 このクラスのプロパティに属性キーが存在しない場合は、 親プロパティが検索対象になり、。 最初にヒットした最下層クラスのプロパティの属性値が返ります。

[Note] 親プロパティ

このクラスのプロパティの親プロパティは、 SFZTableView クラスのプロパティです。

このクラスのプロパティに属性キーが存在しない場合は、 SFZTableView クラスのプロパティが検索対象となります。

属性キーが見つかった場合、検索はその時点で終了します。

[Note] 注意

属性キーの有無の判定と属性値の取得を同時に行う場合は、 SFOTableViewColumn::GetProperty 関数を使用することを推奨します。 この場合、検索の回数が半分になり、パフォーマンスは向上します。

参照

SFOTableViewColumn::SetProperty | SFOTableViewColumn::GetProperty | SFXHierarchyProperty | SFZTableView


SFOTableViewColumn::NewInstance
新しいインスタンスを作成します。
[ public, static ]
SFOTableViewColumnSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);
[ public, static ]
SFOTableViewColumnSmp NewInstance(
    SFXWideStringConstRef title              // 列タイトル名
    SInt32 modelColumnIndex                  // 対応するテーブルモデルカラムのインデックス
    SFOTableCellReactorSmpConstRef reactor   // テーブルセルリアクター(セルの描画やセル選択時の振る舞いの委譲先)
    SFCErrorPtr exception = null             // エラー値
);

引数

exception

関数内部で発生したエラー値を返します。

戻り値

  • 成功したとき: null 以外のポインタ
  • 失敗したとき: null ポインタ

解説

この関数は、SFOTableViewColumn インスタンスを作成します。

インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。

exception 引数を指定した場合、 この引数にはエラー値が返ります。

title 引数、modelColumnIndex 引数、reactor 引数を指定することにより、 このテーブルビューカラムのタイトル名、テーブルモデルカラム、テーブルセルリアクターを設定することが可能です。

[Note] 内部処理

内部でインスタンスの生成は new 演算子で行われ、その後 SFORefObject::Factory 関数に渡されます。

使用例

以下は、SFOTableViewColumn インスタンスを生成するためのコードです。

// SFOTableViewColumn のインスタンスを生成する
SFOTableViewColumnSmp vcol;
SFCError error;

if ((vcol = SFOTableViewColumn::NewInstance(&error)) == SFERR_NO_ERROR) {
    // .. (省略) ..
}

参照

SFOTableViewColumn::SetTitle | SFOTableViewColumn::SetModelColumnIndex | SFOTableViewColumn::SetCellReactor | SFOTableViewColumn | SFORefObject::Factory | SFOTableCellReactor


SFOTableViewColumn::SetCellReactor
指定されたテーブルセルリアクターを設定します。
[ public ]
Void SetCellReactor(
    SFOTableCellReactorSmpConstRef param   // テーブルセルリアクター(セルの描画や振る舞いの委譲先)
);

解説

この関数は、 このテーブルビューカラム(SFOTableViewColumn)に 指定されたテーブルセルリアクター(SFOTableCellReactor)を設定します (テーブルビューカラムにテーブルセルリアクターを関連付けます)。

テーブルセルリアクターは他のテーブルビューカラムと共有できます。 この場合、テーブルセルリアクターの属性は共有されます。

[Note] 注意

SFOTableViewColumn::NewInstance 関数 (SFOTableViewColumn::SFOTableViewColumn コンストラクタ)を利用して設定することも可能です。

使用例

以下は、テーブルビューカラムにテーブルセルリアクターを設定するコードです。

SFOTableViewColumnSmp vcol;
SFOTableCellReactorSmp rtor;
SFCError error;

vcol = SFOTableViewColumn::NewInstance(&error);
rtor = SFOTableCellTextReactor::NewInstance(&error);
vcol->SetCellReactor(rtor);

参照

SFOTableViewColumn::GetCellReactor | SFOTableViewColumn::NewInstance | SFOTableViewColumn::SFOTableViewColumn | SFOTableCellReactor | SFOTableCellTextReactor


SFOTableViewColumn::SetModelColumnIndex
対応するテーブルモデルカラムのインデックスを設定します。
[ public ]
Void SetModelColumnIndex(
    SInt32 index   // 対応するテーブルモデルカラムのインデックス
);

解説

この関数は、 このテーブルビューカラムに対応するテーブルモデルカラムのインデックスを設定します (テーブルモデルカラムとテーブルビューカラムを関連付けます)。

[Note] 注意

SFOTableViewColumn::NewInstance 関数 (SFOTableViewColumn::SFOTableViewColumn コンストラクタ)を利用して設定することも可能です。

テーブルビューとテーブルモデルの関連付けは、 SFZTableView::SetModel 関数を利用して行います。

使用例

SFZTableViewSmp view;
SFOTableModelSmp model;
SFXTableItem<2> item;
SFOTableViewColumnSmp vcol;

view = SFZTableView::NewInstance();
model = SFOTableModel::NewInstance();

// 10 行 2 列 [文字列 | Bool 値] のテーブルモデルを作成
for (SInt32 row = 0; row < 10; row++) {
    item.data[0] = SFXAnsiString::Format("item: %d", row);
    item.data[1] = static_cast<Bool>(row % 2);
    model->InsertLast(item);
}

// テーブルビューにテーブルモデルを関連付ける
view->SetModel(model);

vcol = SFOTableViewColumn::NewInstance();
vcol->SetTitle("Toggle");
vcol->SetCellReactor(SFOTableCellToggleReactor::NewInstance());

// 第 2 列目のテーブルモデルカラム(Bool 型)と関連付け、第 1 列目のテーブルビューとする
vcol->SetModelColumnIndex(1);
view->AddColumn(vcol);

vcol = SFOTableViewColumn::NewInstance();
vcol->SetTitle("Text");
vcol->SetCellReactor(SFOTableCellTextReactor::NewInstance());

// 第 1 列目のテーブルモデルカラム(SFXAnsiString 型)と関連付け、第 2 列目のテーブルビューとする
vcol->SetModelColumnIndex(0);
view->AddColumn(vcol);

// ..(省略)..
// テーブルビューは [チェックボックス | テキスト] となる。

参照

SFOTableViewColumn::GetModelColumnIndex | SFOTableViewColumn::NewInstance | SFOTableViewColumn::SFOTableViewColumn | SFZTableView::SetModel | SFOTableModel | SFZTableView | SFXTableItem | SFOTableCellToggleReactor | SFOTableCellTextReactor


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

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMOERY

解説

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

[Note] 注意

属性についての詳細は、 SFXHierarchyProperty クラスの解説を参照してください。

使用例

以下は、 テーブルモデルカラムの幅を固定幅にするコードです。

SFOTableViewColumnSmp vcol;

vcol = SFOTableViewColumn::NewInstance();

// テーブルモデルカラムの幅を 20 ピクセルに固定する
vcol->SetProperty(SFLPROP_FIXED_WIDTH, 20);

参照

SFOTableViewColumn::GetProperty | SFOTableViewColumn::HasProperty | SFXHierarchyProperty::ValueRec | SFXHierarchyProperty


SFOTableViewColumn::SetTitle
タイトル名を設定します。
[ public ]
SFCError SetTitle(
    SFXWideStringConstRef title   // 列のタイトル名
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMORY
  • その他のエラーのとき: SFERR_FAILED

解説

この関数は、 このテーブルモデルカラムのタイトル名を設定します。

デフォルト値: ""[空文字列]

参照

SFOTableViewColumn::GetTitle | SFOTableViewColumn::NewInstance | SFOTableViewColumn::SFOTableViewColumn | SFXWideString