前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0
SFZWindow
ウィンドウを表すレスポンダです。
#include <SFZWindow.h.hpp>
class SFZWindow : public SFYContainer;
SFMTYPEDEFRESPONDER(SFZWindow)

継承図

SFZWindow クラスの継承図

協調図

SFZWindow クラスの協調図

解説

ウィンドウは、ルート内に配置されるように設計されたレスポンダです。

すべてのウィンドウは SFZWindow クラスを継承し、実領域よりも大きな仮想領域のスクロール機能とフォーカスの移動機能を提供します。

コントロールを利用するすべてのアプレットは、コントロールを配置するためのコンテナとしてウィンドウを利用します。

また、コントロールを利用するしないにかかわらず、具体的なユーザーインターフェースはアプリケーションクラスに直接記述せずにウィンドウに記述します。

具象ウィンドウはアプレット開発ですぐに使うことができる部品であり、また、カスタマイズされたユーザー定義ウィンドウを作成するための起点としても利用できます。

表 195. 具象ウィンドウの種類

クラス名 解説
SFZWindow コントロールやコンテナなどを配置する汎用ウィンドウです。
SFZDialog コントロールやコンテナなどを配置する汎用ダイアログです。
[Note] 重要

すべてのウィンドウにおいて、SFYResponder::SetParent 関数、SFYResponder::SetState 関数、SFYResponder::SetRealBound 関数の呼び出しは必須です。その他の関数は必要に応じて呼び出すことも省略することもできます。

SFZWindow クラスは、各種コントロールやコンテナを配置するための汎用的なウィンドウとして機能します。

コントロールやコンテナが配置されている場合、上下キーでフォーカスの移動機能を利用することができます。

仮想領域が実領域よりも大きな場合、フォーカスの移動機能と連動した、仮想領域の上下方向へのスクロール機能を利用することができます。

図 243. 動作例

動作例

また、SFZWindow クラスは各種ウィンドウを実装するための起点となります。

このクラスは、いくつかの仮想関数のデフォルトの動作を実装します。

複雑な機能を持ったウィンドウを作成する場合、汎用ウィンドウを継承して利用する方が開発が容易になることがあります。

表 196. 仮想関数名とデフォルトの動作

仮想関数名 デフォルトの動作 オーバーライト
SFYContainer::HandleScrollUpKey 仮想領域を上方向にスクロール※1 任意
SFYContainer::HandleScrollDownKey 仮想領域を下方向にスクロール※2 任意
SFYContainer::HandlePageUpKey 仮想領域を上方向に1ページ分スクロール※3 任意
SFYContainer::HandlePageDownKey 仮想領域を下方向に1ページ分スクロール※4 任意
SFYContainer::HandleSnapUpKey 仮想領域を上端までスクロール※5 任意
SFYContainer::HandleSnapDownKey 仮想領域を下端までスクロール※6 任意
SFYWidget::HandleBoundRequest 推奨
SFYWidget::HandleBoundOptimize 推奨
SFYWidget::HandleBoundReal 任意
SFYWidget::HandleBoundVirtual 任意
SFYWidget::HandleBoundGlobal 任意
SFYWidget::HandleRenderRequest 任意
[Note] 注釈

※1.SFYContainer::ScrollUp 関数を実行します。

※2.SFYContainer::ScrollDown 関数を実行します。

※3.SFYContainer::PageUp 関数を実行します。

※4.SFYContainer::PageDown 関数を実行します。

※5.SFYContainer::SnapUp 関数を実行します。

※6.SFYContainer::SnapDown 関数を実行します。

参照

ウィンドウ(基礎編)

メンバ

コンストラクタ/デストラクタ
SFZWindow( Void )
SFZWindow クラスのコンストラクタです。
~SFZWindow( Void )
SFZWindow クラスのデストラクタです。
パブリック関数
static
SFZWindowSmp
NewInstance( SFCErrorPtr exception = null )
新しいインスタンスを作成します。
Void ClearHandler( Void ) (SFYResponder から継承)
ハンドラの登録をすべて解除します。
Void ClearTracer( Void ) (SFYResponder から継承)
トレーサの登録をすべて解除します。
SFCError Distribute( SFXEventConstRef event , BoolPtr result = null ) (SFYResponder から継承)
配信エンジンを起動してイベントを配信します。
SFXRGBColorConstRef GetBackgroundColor( Void ) (SFYWidget から継承)
背景の色を取得します。
SFYResponderSmp GetChildBack( Void ) (SFYResponder から継承)
GetChildBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
GetChildBack( UInt32 id ) (SFYResponder から継承)
GetChildBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最背面に位置する子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index ) (SFYResponder から継承)
GetChildBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
GetChildBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
GetChildBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
背面から数えて指定された順番に位置する子レスポンダを取得します。
SInt32 GetChildCount( Void ) (SFYResponder から継承)
GetChildCount( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
GetChildCount( UInt32 id ) (SFYResponder から継承)
GetChildCount( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
子レスポンダの数を取得します。
SFYResponderSmp GetChildForward( SInt32 index ) (SFYResponder から継承)
GetChildForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
GetChildForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
GetChildForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
前面から数えて指定された順番に位置する子レスポンダを取得します。
SFYResponderSmp GetChildFront( Void ) (SFYResponder から継承)
GetChildFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
GetChildFront( UInt32 id ) (SFYResponder から継承)
GetChildFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最前面に位置する子レスポンダを取得します。
SFYDistributerPtr GetDistributer( Void ) (SFYResponder から継承)
配信エンジンを取得します。
SFXRectangle GetGlobalBound( Void ) (SFYResponder から継承)
グローバル領域を取得します。
UInt32 GetID( Void ) (SFYResponder から継承)
ID を取得します。
SFXRectangle GetLocalBound( Void ) (SFYResponder から継承)
ローカル領域を取得します。
SInt32 GetNthBackward( Void ) (SFYResponder から継承)
GetNthBackward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
GetNthBackward( UInt32 id ) (SFYResponder から継承)
GetNthBackward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Void ) (SFYResponder から継承)
GetNthForward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
GetNthForward( UInt32 id ) (SFYResponder から継承)
GetNthForward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダが前面から数えて何番目に位置するかを取得します。
AVKType GetPageDownKey( Void ) (SFYContainer から継承)
仮想領域を下方向に1ページ分スクロールするキーを取得します。
AVKType GetPageUpKey( Void ) (SFYContainer から継承)
仮想領域を上方向に1ページ分スクロールするキーを取得します。
SFYResponderSmp GetParent( Void ) (SFYResponder から継承)
親レスポンダを取得します。
Bool GetPropertyTransparent( Void ) (SFYResponder から継承)
透過属性を取得します。
SFXRectangleConstRef GetRealBound( Void ) (SFYResponder から継承)
実領域を取得します。
VoidPtr GetReference( Void ) (SFYResponder から継承)
リファレンス値を取得します。
SFYRendererPtr GetRenderer( Void ) (SFYResponder から継承)
描画エンジンを取得します。
SFYResponderSmp GetRoot( Void ) (SFYResponder から継承)
ルートレスポンダを取得します。
AVKType GetScrollDownKey( Void ) (SFYContainer から継承)
仮想領域を下方向にスクロールするキーを取得します。
Bool GetScrollRepeat( Void ) (SFYContainer から継承)
連続スクロール フラグを取得します。
SInt16 GetScrollStep( Void ) (SFYContainer から継承)
スクロール ステップを取得します。
AVKType GetScrollUpKey( Void ) (SFYContainer から継承)
仮想領域を上方向にスクロールするキーを取得します。
AVKType GetSnapDownKey( Void ) (SFYContainer から継承)
仮想領域を下端までスクロールするキーを取得します。
AVKType GetSnapUpKey( Void ) (SFYContainer から継承)
仮想領域を上端までスクロールするキーを取得します。
Bool GetStateActive( Bool inherit = false ) (SFYResponder から継承)
活性状態を取得します。
Bool GetStateEnable( Bool inherit = false ) (SFYResponder から継承)
操作可能状態を取得します。
Bool GetStateFocus( Bool inherit = false ) (SFYResponder から継承)
フォーカス状態を取得します。
Bool GetStateVisible( Bool inherit = false ) (SFYResponder から継承)
可視状態を取得します。
SFXRectangle GetSuitableBound( Void ) (SFYResponder から継承)
GetSuitableBound( SFXRectangleConstRef param ) (SFYResponder から継承)
最適な大きさを取得します。
SFXMargin GetSuitableMargin( Void ) (SFYResponder から継承)
最適な余白を取得します。
SFCType GetType( Void ) (SFYResponder から継承)
タイプを取得します。
SFXRectangleConstRef GetVirtualBound( Void ) (SFYResponder から継承)
仮想領域を取得します。
Void Initialize( Void ) (SFYResponder から継承)
レスポンダを初期化します。
Void Invalidate( Void ) (SFYResponder から継承)
Invalidate( SFXRectangleConstRef param ) (SFYResponder から継承)
再描画領域を登録します。
Void InvokeBackward( SFXEventConstRef event , Bool overload , BoolPtr result = null ) (SFYResponder から継承)
レスポンダにイベントを送信します。ハンドラ関数はハンドラリストに登録された順序で呼び出されます。
Void InvokeForward( SFXEventConstRef event , Bool overload , BoolPtr result = null ) (SFYResponder から継承)
レスポンダにイベントを送信します。ハンドラ関数はハンドラリストに登録された逆順で呼び出されます。
Bool IsBack( Void ) (SFYResponder から継承)
IsBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
IsBack( UInt32 id ) (SFYResponder から継承)
IsBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダが最背面に位置するかどうかを判定します。
Bool IsFront( Void ) (SFYResponder から継承)
IsFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
IsFront( UInt32 id ) (SFYResponder から継承)
IsFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダが最前面に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index ) (SFYResponder から継承)
IsNthBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
IsNthBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
IsNthBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index ) (SFYResponder から継承)
IsNthForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
IsNthForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
IsNthForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsRoot( Void ) (SFYResponder から継承)
自レスポンダがルートレスポンダかどうかを判定します。
Bool PageDown( Void ) (SFYContainer から継承)
仮想領域を下方向に1ページ分スクロールします。
Bool PageUp( Void ) (SFYContainer から継承)
仮想領域を上方向に1ページ分スクロールします。
SFCError RegisterHandler( SFXEventRangeConstRef range , SFYHandler::RuleRecConstRef rule ) (SFYResponder から継承)
RegisterHandler( SFXEventRangeConstPtr range , SFYHandler::HandlerSPPConstPtr spp , VoidPtrConstPtr reference , SInt32 length ) (SFYResponder から継承)
RegisterHandler( SFXEventRangeConstPtr range , SFYHandler::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
RegisterHandler( SFXEventRangeConstRef range , SFYHandler::HandlerSPP spp , VoidPtr reference ) (SFYResponder から継承)
ハンドラを登録します。
SFCError RegisterTracer( SFXEventRangeConstRef range , SFYTracer::RuleRecConstRef rule ) (SFYResponder から継承)
RegisterTracer( SFXEventRangeConstPtr range , SFYTracer::OrderEnumConstPtr order , SFYTracer::StateEnumConstPtr state , BoolConstPtr overload , SInt32 length ) (SFYResponder から継承)
RegisterTracer( SFXEventRangeConstPtr range , SFYTracer::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
RegisterTracer( SFXEventRangeConstRef range , SFYTracer::OrderEnum order , SFYTracer::StateEnum state , Bool overload ) (SFYResponder から継承)
トレーサを登録します。
SFCError Render( Bool force = false ) (SFYResponder から継承)
描画エンジンを起動して再描画します。
Bool ScrollDown( Void ) (SFYContainer から継承)
仮想領域を下方向にスクロールします。
Bool ScrollUp( Void ) (SFYContainer から継承)
仮想領域を上方向にスクロールします。
Void SetBackgroundColor( SFXRGBColorConstRef param ) (SFYWidget から継承)
背景の色を設定します。
Void SetDistributer( SFYDistributerPtr param ) (SFYResponder から継承)
配信エンジンを設定します。
Void SetID( UInt32 param ) (SFYResponder から継承)
ID を設定します。
Void SetPageDownKey( AVKType param ) (SFYContainer から継承)
仮想領域を下方向に1ページ分スクロールするキーを設定します。
Void SetPageUpKey( AVKType param ) (SFYContainer から継承)
仮想領域を上方向に1ページ分スクロールするキーを設定します。
SFCError SetParent( SFYResponderSmpConstRef param ) (SFYResponder から継承)
親レスポンダを設定します。
Void SetProperty( Bool transparent ) (SFYResponder から継承)
属性をまとめて設定します。
Void SetPropertyTransparent( Bool param ) (SFYResponder から継承)
透過属性を設定します。
Void SetRealBound( SFXRectangleConstRef param ) (SFYResponder から継承)
実領域を設定します。
Void SetReference( VoidPtr param ) (SFYResponder から継承)
リファレンス値を設定します。
Void SetRenderer( SFYRendererPtr param ) (SFYResponder から継承)
描画エンジンを設定します。
Void SetScrollDownKey( AVKType param ) (SFYContainer から継承)
仮想領域を下方向にスクロールするキーを設定します。
Void SetScrollRepeat( Bool param ) (SFYContainer から継承)
連続スクロール フラグの設定をします。
Void SetScrollStep( SInt16 param ) (SFYContainer から継承)
スクロール ステップを設定します。
Void SetScrollUpKey( AVKType param ) (SFYContainer から継承)
仮想領域を上方向にスクロールするキーを設定します。
Void SetSnapDownKey( AVKType param ) (SFYContainer から継承)
仮想領域を下端までスクロールするキーを設定します。
Void SetSnapUpKey( AVKType param ) (SFYContainer から継承)
仮想領域を上端までスクロールするキーを設定します。
Void SetState( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
状態をまとめて設定します。
Void SetStateActive( Bool param ) (SFYResponder から継承)
活性状態を設定します。
Void SetStateEnable( Bool param ) (SFYResponder から継承)
操作可能状態を設定します。
Void SetStateFocus( Bool param ) (SFYResponder から継承)
フォーカス状態を設定します。
Void SetStateVisible( Bool param ) (SFYResponder から継承)
可視状態を設定します。
Void SetVirtualBound( SFXRectangleConstRef param ) (SFYResponder から継承)
仮想領域を設定します。
Bool SnapDown( Void ) (SFYContainer から継承)
仮想領域を下端までスクロールします。
Bool SnapUp( Void ) (SFYContainer から継承)
仮想領域を上端までスクロールします。
Void Terminate( Void ) (SFYResponder から継承)
レスポンダの終了処理をします。
Void ToBack( Void ) (SFYResponder から継承)
ToBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
ToBack( UInt32 id ) (SFYResponder から継承)
ToBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダを姉妹レスポンダのなかで最背面に移動します。
Void ToFront( Void ) (SFYResponder から継承)
ToFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
ToFront( UInt32 id ) (SFYResponder から継承)
ToFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダを姉妹レスポンダのなかで最前面に移動します。
Void ToNthBackward( SInt32 index ) (SFYResponder から継承)
ToNthBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
ToNthBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
ToNthBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダを背面から数えて指定された順番に移動します。
Void ToNthForward( SInt32 index ) (SFYResponder から継承)
ToNthForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
ToNthForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
ToNthForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
自レスポンダを前面から数えて指定された順番に移動します。
Void UnregisterHandler( SFXEventRangeConstRef range , SFYHandler::RuleRecConstRef rule ) (SFYResponder から継承)
UnregisterHandler( SFXEventRangeConstPtr range , SFYHandler::HandlerSPPConstPtr spp , VoidPtrConstPtr reference , SInt32 length ) (SFYResponder から継承)
UnregisterHandler( SFXEventRangeConstPtr range , SFYHandler::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
UnregisterHandler( SFXEventRangeConstRef range , SFYHandler::HandlerSPP spp , VoidPtr reference ) (SFYResponder から継承)
ハンドラの登録を解除します。
Void UnregisterTracer( SFXEventRangeConstRef range ) (SFYResponder から継承)
UnregisterTracer( SFXEventRangeConstPtr range , SInt32 length ) (SFYResponder から継承)
トレーサの登録を解除します。
T const & static_catch( Void ) (static_exception から継承)
現在保持している例外を取得します。
プロテクト関数
static
SFYResponderSmp
Factory( SFYResponderPtr responder , SFCErrorPtr exception = null ) (SFYResponder から継承)
NewInstance 関数の実装を補助します。
SFYResponderSmp GetThis( Void ) (SFYResponder から継承)
スマートポインタで保持された this を取得します。
Void HandleBoundGlobal( SFXRectangleConstRef rectangle ) (SFYWidget から継承)
グローバル領域の変更処理を行います。
Void HandleBoundOptimize( SFXRectanglePtr rectangle ) (SFYWidget から継承)
指定した矩形に収まる範囲内で最適なサイズを計算します。
Void HandleBoundReal( Void ) (SFYWidget から継承)
実領域の変更処理を行います。
Void HandleBoundRequest( SFXRectanglePtr rectangle ) (SFYWidget から継承)
最適な矩形を計算します。
Void HandleBoundVirtual( Void ) (SFYWidget から継承)
仮想領域の変更処理を行います。
Bool HandlePageDownKey( Void ) (SFYContainer から継承)
PageDown キーが押されたときに実行される処理です。
Bool HandlePageUpKey( Void ) (SFYContainer から継承)
PageUp キーが押されたときに実行される処理です。
Void HandleRenderRequest( SFXGraphicsPtr graphics ) (SFYWidget から継承)
レスポンダを描画します。
Bool HandleScrollDownKey( Void ) (SFYContainer から継承)
ScrollDown キーが押されたときに実行される処理です。
Bool HandleScrollUpKey( Void ) (SFYContainer から継承)
ScrollUp キーが押されたときに実行される処理です。
Bool HandleSnapDownKey( Void ) (SFYContainer から継承)
SnapDown キーが押されたときに実行される処理です。
Bool HandleSnapUpKey( Void ) (SFYContainer から継承)
SnapUp キーが押されたときに実行される処理です。
Void SetType( SFCType param ) (SFYResponder から継承)
タイプを設定します。
Void static_throw( static_exception< T > const & param ) (static_exception から継承)
static_throw( T const & param ) (static_exception から継承)
例外を設定します。
Bool static_try( Void ) (static_exception から継承)
例外が保持されているかどうかを確かめます。
CodeEnum
SFZWindow クラスを表す定数です。
DefaultEnum (SFYContainer から継承)
デフォルトのスクロール ステップを表す定数です。

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

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

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

引数

exception

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

戻り値

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

解説

SFZWindow クラスの新しいインスタンスを作成します。

作成に成功した場合は null 以外のポインタを返し、exception 引数は常に SFERR_NO_ERROR になります。メモリ不足などで作成に失敗した場合は null ポインタを返し、exception 引数にエラー値が返ります。

使用例

ウィンドウを作成する方法

SFZWindowSmp window;
SFCError error;

if ((window = SFZWindow::NewInstance(&error)) != null) {
    ...
}

SFZWindow::CodeEnum
SFZWindow クラスを表す定数です。
enum CodeEnum {
    CODE_TYPE = four_char_code('w', 'i', 'n', 'd')
};
SFMTYPEDEFTYPE(CodeEnum)

参照

SFYResponder::GetType | SFYResponder::SetType