SophiaFramework UNIVERSE 5.3 |
#include <SFOTableCellImageReactor.h.hpp>
class SFOTableCellImageReactor : public SFOTableCellReactor;
SFMTYPEDEFREFOBJECT(SFOTableCellImageReactor)
SFOTableCellImageReactor クラスは、 SFBImageSmp 型のセルオブジェクトに対して、 画像を描画する機能を提供するテーブルセルリアクターです。
コンストラクタ/デストラクタ |
---|
SFOTableCellImageReactor( Void ) SFOTableCellImageReactor クラスのコンストラクタです。
|
~SFOTableCellImageReactor( Void ) SFOTableCellImageReactor クラスのデストラクタです。
|
パブリック関数 | |
---|---|
static SFOTableCellImageReactorSmp |
NewInstance(
SFCErrorPtr exception = null
) 新しいインスタンスを作成します。
|
ValueRec |
GetProperty(
UInt32 key
, BoolPtr found = null
, Bool recursive = true
)
(SFOTableCellReactor から継承)
属性キーに対応する属性値を取得します。
|
Bool |
HasProperty(
UInt32 key
, Bool recursive = true
)
(SFOTableCellReactor から継承)
指定された属性キーに対応する属性値が設定されているかどうかを判定します。
|
SFCError |
SetProperty(
UInt32 key
, ValueRec value
)
(SFOTableCellReactor から継承)
属性キーに対応する属性値を設定します。
|
プロテクト関数 | |
---|---|
Void |
Render(
SFXGraphicsPtr graphics
, SFXRectangleConstRef bound
, SFXAnyConstRef object
, SInt32 row
, Bool active
, Bool focus
) テーブルセルに画像を描画します。
|
static SFXRectangle |
Align(
SFXRectangleConstRef src
, SFXRectangleConstRef ref
, UInt32 alignment
)
(SFOTableCellReactor から継承)
指定された矩形領域を基準となる矩形領域に基づいて整列した矩形領域を返します。
|
static SFORefObjectSmp |
Factory(
SFORefObjectPtr object
, SFCErrorPtr exception
)
(SFORefObject から継承)
NewInstance 関数の実装を補助します。
|
UInt32 |
GetAlignment( Void )
(SFOTableCellReactor から継承)
アライメントを取得します。
|
SFXMargin |
GetMargin( Void )
(SFOTableCellReactor から継承)
テーブルセルの領域とセルの描画領域のマージンを取得します。
|
Bool |
Handle(
SFXAnyRef object
, SInt32 row
)
(SFOTableCellReactor から継承)
テーブルセルが選択されたときの振る舞いを行います。
|
SFCError |
Initialize( Void )
(SFORefObject から継承)
初期化を行います。
|
Void |
InvokeResultCell( Void )
(SFOTableCellReactor から継承)
テーブルセルの選択完了を知らせます。
|
Bool |
IsEditable( Void )
(SFOTableCellReactor から継承)
編集可能であるかどうかを判別します。
|
Bool |
IsWidgetAttachable( Void )
(SFOTableCellReactor から継承)
ウィジェットを取り付け可能かどうかを判定します。
|
Void |
OffFocus(
SInt32 row
, SFYWidgetSmpPtr widget
)
(SFOTableCellReactor から継承)
テーブルセルのフォーカスが外れたときの振る舞いを行います。
|
Void |
OnFocus(
SFXRectangleConstRef bound
, SFXAnyConstRef object
, SInt32 row
, SFYWidgetSmpPtr widget
)
(SFOTableCellReactor から継承)
テーブルセルにフォーカスが当たったときの振る舞いを行います。
|
[ protected, explicit ] SFOTableCellImageReactor(Void);
このコンストラクタは、 何も行いません。
[ protected, virtual ] ~SFOTableCellImageReactor(Void);
このデストラクタは、 何も行いません。
[ public, static ] SFOTableCellImageReactorSmp NewInstance( SFCErrorPtr exception = null // エラー値 );
関数内部で発生したエラー値を返します。
この関数は、SFOTableCellImageReactor インスタンスを作成します。
インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。
exception 引数を指定した場合、 この引数にはエラー値が返ります。
以下は、SFOTableCellImageReactor インスタンスを生成するためのコードです。
SFOTableCellReactorSmp rtor;
SFCError error;
if ((rtor = SFOTableCellImageReactor::NewInstance(&error)) != null) {
// .. (省略) ..
}
[ protected, virtual, const ] Void Render( SFXGraphicsPtr graphics // グラフィックスオブジェクト SFXRectangleConstRef bound // テーブルセル領域 SFXAnyConstRef object // セルオブジェクト SInt32 row // 描画するセルの行番号 Bool active // セルの活性状態 Bool focus // セルのフォーカス状態 );
この関数は、 セルの領域内にマージンとアライメントを考慮して画像を描画します。
この関数の内部実装は以下の通りです。
/*public virtual */Void SFOTableCellImageReactor::Render(SFXGraphicsPtr graphics, SFXRectangleConstRef bound, SFXAnyConstRef object, SInt32 row, Bool active, Bool focus) const { AEEImageInfo info; SFXRectangle rx; SFXRectangle content; SFXRectangle clip; SFBImageSmpPtr ptr; SFBImageSmp image; unused(row); unused(active); unused(focus); if ((ptr = any_cast<SFBImageSmp>(const_cast<SFXAnyPtr>(&object))) != null) { if ((image = *ptr) != null) { image->GetInfo(&info); if (info.cx > 0 && info.cy > 0) { clip.Set(graphics->GetClip()); content.Set(SFXRectangle(bound).Deflate(GetMargin())); graphics->SetClip(SFXRectangle(content).Intersection(clip)); rx.SetSize(info.cx, info.cy); rx.Set(Align(rx, content, GetAlignment())); graphics->DrawImage(image, rx.GetOrigin()); graphics->SetClip(clip); } } } return; }// SFOTableCellImageReactor::Render //
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |