SophiaFramework UNIVERSE 5.3 |
#include <SFOTableViewColumn.h.hpp>
class SFOTableViewColumn : public SFORefObject;
SFMTYPEDEFREFOBJECT(SFOTableViewColumn)
SFOTableViewColumn クラスは、 テーブルビューの 1 つの列を表します。
このクラスは、主に以下の 4 つの機能を提供します。
コンストラクタ/デストラクタ |
---|
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 から継承)
初期化を行います。
|
[ protected, explicit ] SFOTableViewColumn(Void);
[ protected, explicit ] SFOTableViewColumn( SFXWideStringConstRef title // 列タイトル名 SInt32 modelColumnIndex // 対応するテーブルモデルカラム番号 SFOTableCellReactorSmpConstRef reactor // テーブルセルリアクター (セルの描画や振る舞いの委譲先) );
このコンストラクタでは、 title 引数、modelColumnIndex 引数、reactor 引数を指定することにより、 このテーブルビューカラムのタイトル名、テーブルモデルカラム、テーブルセルリアクターを設定することが可能です。
注意 | |
---|---|
このコンストラクタは SFOTableViewColumn::NewInstance 関数から間接的に呼び出されます。 |
SFOTableViewColumn::NewInstance | SFOTableViewColumn::SetTitle | SFOTableViewColumn::SetModelColumnIndex | SFOTableViewColumn::SetCellReactor | SFOTableCellReactor
[ protected, virtual ] ~SFOTableViewColumn(Void);
このデストラクタは、 何も行いません。
[ protected, virtual, const ] Void DrawHeaderColumn( SFXGraphicsPtr graphics // グラフィックスオブジェクト SFXRectangleConstRef bound // ヘッダー領域 );
この関数は、 テーブルビューカラムのヘッダー部を描画します。
注意 | |
---|---|
階層プロパティの整列属性(SFLPROP_ALIGNMENT)、 フォント属性(SFLPROP_FONT)、前景色(SFLPROP_FOREGROUND_COLOR)を使用してヘッダー領域にタイトル名を描画します。 |
[ public, const ] SFOTableCellReactorSmpConstRef GetCellReactor(Void);
テーブルセルリアクター(SFOTableCellReactor)。
この関数は、 テーブルビューカラムに設定されているテーブルセルリアクター(SFOTableCellReactor)を取得します。
注意 | |
---|---|
テーブルビューカラムへのテーブルセルリアクターの設定は、 SFOTableViewColumn::SetCellReactor 関数を利用して行います。 |
[ public, const ] SInt32 GetModelColumnIndex(Void);
列番号。
この関数は、 このテーブルビューカラムに対応するテーブルモデルカラムのインデックスを取得します。
[ public, const ] ValueRec GetProperty( UInt32 key // 検索する属性キー BoolPtr found = null // null 以外の BoolPtr 値を指定すると、属性キーの有無が返る Bool recursive = true // 親プロパティを再帰的に検索するかどうか );
指定された属性キーに対応する属性値(SFXHierarchyProperty::ValueRec)。
この関数は、 指定された属性キーに対応する属性値を取得します。
キーが見つからなかった場合、null 値が返ります。
SFXHierarchyProperty::ValueRec の null 値 | |
---|---|
SFXHierarchyProperty::ValueRec は最大 4 バイトの共用体で、null 値はその全てのビットが 0 になります。 従って、型が SFXRGBColor の場合は SFXRGBColor(0x00, 0x00, 0x00, 0x00) で黒色、Bool の場合は false となります。 |
found 引数を null 以外の BoolPtr 値を指定すると、 属性キーの有無が返ります。 属性キーの有無を判定するだけなら SFOTableViewColumn::HasProperty 関数も利用可能です。
recursive 引数に true を指定すると、 このクラスのプロパティにキーが存在しない場合は、 親プロパティが検索対象になり、。 最初にヒットした最下層クラスのプロパティの属性値が返ります。
親プロパティ | |
---|---|
このクラスのプロパティの親プロパティは、 SFZTableView クラスのプロパティです。 このクラスのプロパティにキーが存在しない場合は、 SFZTableView クラスのプロパティが検索対象となります。 キーが見つかった場合、検索はその時点で終了します。 |
注意 | |
---|---|
属性についての詳細は、 SFXHierarchyProperty クラスの解説を参照してください。 |
SFOTableViewColumn::SetProperty | SFOTableViewColumn::HasProperty | SFXHierarchyProperty::ValueRec | SFXHierarchyProperty | SFZTableView
[ public, const ] SFXWideStringConstRef GetTitle(Void);
列のタイトル名
この関数は、 このテーブルビューカラムのタイトル名を取得します。
[ public, const ] Bool HasProperty( UInt32 key // 検索する属性キー Bool recursive = true // 親プロパティを再帰的に検索するかどうか );
この関数は、 指定された属性キーに対応する属性値が設定されているかどうかを判定します。
recursive 引数に true を指定すると、 このクラスのプロパティに属性キーが存在しない場合は、 親プロパティが検索対象になり、。 最初にヒットした最下層クラスのプロパティの属性値が返ります。
親プロパティ | |
---|---|
このクラスのプロパティの親プロパティは、 SFZTableView クラスのプロパティです。 このクラスのプロパティに属性キーが存在しない場合は、 SFZTableView クラスのプロパティが検索対象となります。 属性キーが見つかった場合、検索はその時点で終了します。 |
注意 | |
---|---|
属性キーの有無の判定と属性値の取得を同時に行う場合は、 SFOTableViewColumn::GetProperty 関数を使用することを推奨します。 この場合、検索の回数が半分になり、パフォーマンスは向上します。 |
SFOTableViewColumn::SetProperty | SFOTableViewColumn::GetProperty | SFXHierarchyProperty | SFZTableView
[ public, static ] SFOTableViewColumnSmp NewInstance( SFCErrorPtr exception = null // エラー値 );
[ public, static ] SFOTableViewColumnSmp NewInstance( SFXWideStringConstRef title // 列タイトル名 SInt32 modelColumnIndex // 対応するテーブルモデルカラムのインデックス SFOTableCellReactorSmpConstRef reactor // テーブルセルリアクター(セルの描画やセル選択時の振る舞いの委譲先) SFCErrorPtr exception = null // エラー値 );
関数内部で発生したエラー値を返します。
この関数は、SFOTableViewColumn インスタンスを作成します。
インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。
exception 引数を指定した場合、 この引数にはエラー値が返ります。
title 引数、modelColumnIndex 引数、reactor 引数を指定することにより、 このテーブルビューカラムのタイトル名、テーブルモデルカラム、テーブルセルリアクターを設定することが可能です。
内部処理 | |
---|---|
内部でインスタンスの生成は 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
[ public ] Void SetCellReactor( SFOTableCellReactorSmpConstRef param // テーブルセルリアクター(セルの描画や振る舞いの委譲先) );
この関数は、 このテーブルビューカラム(SFOTableViewColumn)に 指定されたテーブルセルリアクター(SFOTableCellReactor)を設定します (テーブルビューカラムにテーブルセルリアクターを関連付けます)。
テーブルセルリアクターは他のテーブルビューカラムと共有できます。 この場合、テーブルセルリアクターの属性は共有されます。
注意 | |
---|---|
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::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
以下は、 テーブルモデルカラムの幅を固定幅にするコードです。
SFOTableViewColumnSmp vcol;
vcol = SFOTableViewColumn::NewInstance();
// テーブルモデルカラムの幅を 20 ピクセルに固定する
vcol->SetProperty(SFLPROP_FIXED_WIDTH, 20);
SFOTableViewColumn::GetProperty | SFOTableViewColumn::HasProperty | SFXHierarchyProperty::ValueRec | SFXHierarchyProperty
[ public ] SFCError SetTitle( SFXWideStringConstRef title // 列のタイトル名 );
この関数は、 このテーブルモデルカラムのタイトル名を設定します。
デフォルト値: ""[空文字列]
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |