前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFOTableCellImageReactor
テーブルセルに画像の描画機能を提供するクラスです。
#include <SFOTableCellImageReactor.h.hpp>
class SFOTableCellImageReactor : public SFOTableCellReactor;
SFMTYPEDEFREFOBJECT(SFOTableCellImageReactor)
        

継承図

SFOTableCellImageReactor クラスの継承図

協調図

SFOTableCellImageReactor クラスの協調図

解説

SFOTableCellImageReactor クラスは、 SFBImageSmp 型のセルオブジェクトに対して、 画像を描画する機能を提供するテーブルセルリアクターです。

参照

SFOTableCellReactor

メンバ

コンストラクタ/デストラクタ
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 から継承)
テーブルセルにフォーカスが当たったときの振る舞いを行います。

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

解説

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


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

解説

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


SFOTableCellImageReactor::NewInstance
新しいインスタンスを作成します。
[ public, static ]
SFOTableCellImageReactorSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);

引数

exception

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

戻り値

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

解説

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

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

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

使用例

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

SFOTableCellReactorSmp rtor;
SFCError error;

if ((rtor = SFOTableCellImageReactor::NewInstance(&error)) != null) {
    // .. (省略) ..
}

参照

SFOTableCellImageReactor


SFOTableCellImageReactor::Render
テーブルセルに画像を描画します。
[ 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 //