SophiaFramework UNIVERSE 5.3 |
#include <SFZContainerScrollBarControl.h.hpp>
class SFZContainerScrollBarControl : public SFZScrollBarControl;
SFMTYPEDEFRESPONDER(SFZContainerScrollBarControl)
SFZContainerScrollBarControl は、 SFYContainer を継承するレスポンダのスクロール状況を表示するためのコンテナ専用スクロールバーコントロールです。
スクロールバーコントロール(SFZContainerScrollBarControl)をレスポンダ (SFYContainer を継承するコンテナ)装着と着脱の手順は以下の通りです。
注意 | |
---|---|
スクロールバーを装着する対象となるレスポンダを『ターゲットレスポンダ』と呼んでいます。 |
ターゲットレスポンダの最小値、最大値、現在値、ページサイズについて | |
---|---|
全体コンテンツの始点と終点の座標で最小値と最大値、表示コンテンツ(=実領域)の始点と幅で現在値とページサイズを表現します (いずれもローカル領域の座標系。スクロール方向が水平の場合は X 座標、垂直の場合は Y 座標。最小値は常に 0 です)。 ターゲットレスポンダの実領域や仮想領域が変更された場合、 全体コンテンツの始点や終点、表示コンテンツの始点や幅も変更されます。 SFZContainerScrollBarControl クラスでは、 SFZScrollBarControl クラスと異なり、 開発者はスクロールバーコントロールの最小値、最大値、現在値、ページサイズを管理する必要がありません。 この処理は、SFZContainerScrollBarControl クラス内で自動的に行われます。 具体的には、領域変更通知ハンドラである SFZContainerScrollBarControl::OnBindBound 関数内から呼び出される SFZContainerScrollBarControl::Listen 関数によって行われます。 詳細は、 SFZContainerScrollBarControl::Bind / SFZContainerScrollBarControl::UnBind 関数の内部実装コードを参照してください。 |
スクロールバーイベントについて | |
---|---|
スクロールバーコントロールは、 ターゲットレスポンダがスクロール可能な状態からスクロール不可能な状態、あるいはその逆になったとき、 スクロールバーイベント [SFEVT_RESPONDER_SCROLLBAR] [SFXEvent(SFEVT_RESPONDER_SCROLLBAR, SFP16_SCROLLBAR_ENABLE, 0)] を受信します。 |
スクロール可能性の判定について | |
---|---|
ターゲットレスポンダが現在スクロール可能であるかどうかは、 SFYScrollBarControl::IsScrollable 関数を使用して判定します。 |
スクロールバーコントロールの幅について | |
---|---|
スクロールバーコントロールの幅として、4 ピクセル以上の値を指定できます。 減分・増分矢印を矩形領域内にバランス良く描画するには、5 以上の奇数を指定することを推奨します。 |
Increment / Decrement / SetScrollStepValue 関数について | |
---|---|
スクロールバーコントロールを装着するレスポンダ(ターゲットレスポンダ) 側でスクロールバーコントロールの現在値を増減する場合、 SFYScrollBarControl::Increment / SFYScrollBarControl::Decrement / SFYScrollBarControl::SetScrollStepValue 関数は使用しません。 これらの関数は、 スクロールバーコントロール側からターゲットレスポンダをスクロールしたい場合に使用します。 通常、ターゲットレスポンダ側でスクロールさせますので、 これらの関数を使用する機会は少ないと考えられます。 |
SFZContainerScrollBarControl のターゲットレスポンダの種類について | |
---|---|
SFZContainerScrollBarControl は、 SFYContainer を継承するレスポンダに装着します。 具象レスポンダクラスとしては、 SFZContainer、SFZWindow、SFZTabPage、 SFZDialog、SFZMessageDialog、SFZQuestionDialog を挙げることができます。 |
サンプルコード: ScrollBarControl.zip
実行結果:
SFYScrollBarControl | SFZScrollBarControl | SFYContainer | SFZContainer | SFZWindow | SFZTabPage | SFZDialog | SFZMessageDialog | SFZQuestionDialog | SFYControl::SetMinimumValue | SFYControl::SetMaximumValue | SFYControl::SetCurrentValue | SFYScrollBarControl::SetPageValue | SFYScrollBarControl::SetBevelColor | SFYScrollBarControl::SetTrackColor | SFYScrollBarControl::SetArrowColor | SFYScrollBarControl::SetOrientation | SFYScrollBarControl::IsScrollable | SFZContainerScrollBarControl::Bind | SFZContainerScrollBarControl::UnBind | SFYResponder::SetRealBound | 実領域 | 仮想領域 | 状態 | スクロールバーイベント [SFEVT_RESPONDER_SCROLLBAR]
コンストラクタ/デストラクタ |
---|
SFZContainerScrollBarControl( Void ) SFZContainerScrollBarControl クラスのコンストラクタです。
|
~SFZContainerScrollBarControl( Void ) SFZContainerScrollBarControl クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SFCError |
Bind(
SFYResponderSmpConstRef responder
) 指定されたレスポンダにこのスクロールバーコントロールを装着します。
|
static SFZContainerScrollBarControlSmp |
NewInstance(
SFCErrorPtr exception = null
) 新しいインスタンスを作成します。
|
Void |
UnBind( Void )
このスクロールバーコントロールを着脱します。
|
Void |
ClearHandler( Void )
(SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
|
Void |
ClearTracer( Void )
(SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
|
Bool |
Decrement( Void )
(SFYScrollBarControl から継承)
スクロールステップだけ現在値を減らします。
|
SFCError |
Distribute(
SFXEventConstRef event
, BoolPtr result = null
)
(SFYResponder から継承)
指定された配信型イベントを
SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
|
SFXRGBColorConstRef |
GetArrowColor( Void )
(SFYScrollBarControl から継承)
矢印の色を取得します。
|
SFXRGBColorConstRef |
GetBackgroundColor( Void )
(SFYWidget から継承)
背景の色を取得します。
|
SFXBevelColorConstRef |
GetBevelColor( Void )
(SFYScrollBarControl から継承)
スクロールバーの外枠を描画するためのベベルカラーを取得します。
|
SFYResponderSmp |
GetChildBack( Void )
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
UInt32 id
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBack(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildBackward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SInt32 |
GetChildCount( Void )
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
UInt32 id
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SInt32 |
GetChildCount(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildForward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront( Void )
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
UInt32 id
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SFYResponderSmp |
GetChildFront(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
|
SInt32 |
GetCurrentValue( Void )
(SFYControl から継承)
コントロールの現在値を取得します。
|
SFYDistributerPtr |
GetDistributer( Void )
(SFYResponder から継承)
このレスポンダに設定されている配信エンジンを取得します。
|
SFYResponderSmp |
GetFrame( Void )
(SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
|
SFXRectangle |
GetGlobalBound( Void )
(SFYResponder から継承)
このレスポンダのグローバル領域を取得します。
|
UInt32 |
GetID( Void )
(SFYResponder から継承)
このレスポンダの ID を取得します。
|
SFXRectangle |
GetLocalBound( Void )
(SFYResponder から継承)
このレスポンダのローカル領域を取得します。
|
SInt32 |
GetMaximumValue( Void )
(SFYControl から継承)
コントロールの最大値を取得します。
|
SInt32 |
GetMinimumValue( Void )
(SFYControl から継承)
コントロールの最小値を取得します。
|
SInt32 |
GetNthBackward( Void )
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthBackward(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward( Void )
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
SInt32 |
GetNthForward(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
|
OrientationEnum |
GetOrientation( Void )
(SFYScrollBarControl から継承)
スクロールバーの方向(垂直か水平)を取得します。
|
SInt32 |
GetPageValue( Void )
(SFYScrollBarControl から継承)
ページサイズを取得します。
|
SFYResponderSmp |
GetParent( Void )
(SFYResponder から継承)
このレスポンダの親レスポンダを取得します。
|
Bool |
GetPropertyTransparent( Void )
(SFYResponder から継承)
このレスポンダの透過属性を取得します。
|
SFXRectangleConstRef |
GetRealBound( Void )
(SFYResponder から継承)
このレスポンダの実領域を取得します。
|
VoidPtr |
GetReference( Void )
(SFYResponder から継承)
このレスポンダのリファレンス値を取得します。
|
SFYRendererPtr |
GetRenderer( Void )
(SFYResponder から継承)
このレスポンダに設定されている描画エンジンを取得します。
|
SFYResponderSmp |
GetRoot( Void )
(SFYResponder から継承)
このレスポンダが所属するレスポンダツリーのルートレスポンダを取得します。
|
SInt32 |
GetScrollStepValue( Void )
(SFYScrollBarControl から継承)
スクロールステップの値を取得します。
|
Bool |
GetStateActive(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの活性状態を取得します。
|
Bool |
GetStateEnable(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの操作可能状態を取得します。
|
Bool |
GetStateFocus(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダのフォーカス状態を取得します。
|
Bool |
GetStateValid(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの有効状態を取得します。
|
Bool |
GetStateVisible(
Bool inherit = false
)
(SFYResponder から継承)
このレスポンダの可視状態を取得します。
|
SFXRectangle |
GetSuitableBound( Void )
(SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
|
SFXRectangle |
GetSuitableBound(
SFXRectangleConstRef rectangle
)
(SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
|
SFXRectangle |
GetSuitableBound(
SFXRectangleConstRef param
, HorizontalEnum horizontal
, VerticalEnum vertical
)
(SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
|
SFXMargin |
GetSuitableMargin( Void )
(SFYResponder から継承)
このレスポンダのフレーム余白領域を取得します。
|
SFXRGBColorConstRef |
GetTrackColor( Void )
(SFYScrollBarControl から継承)
トラックの色を取得します。
|
SFCType |
GetType( Void )
(SFYResponder から継承)
このレスポンダのタイプを取得します。
|
SFXRectangleConstRef |
GetVirtualBound( Void )
(SFYResponder から継承)
このレスポンダの仮想領域を取得します。
|
Bool |
HasFrame( Void )
(SFYResponder から継承)
このレスポンダがコンテントレスポンダであるかどうかを判定します。
|
Bool |
Increment( Void )
(SFYScrollBarControl から継承)
スクロールステップだけ現在値を増やします。
|
Void |
Initialize( Void )
(SFYResponder から継承)
このレスポンダを初期化します。
|
Void |
Invalidate( Void )
(SFYResponder から継承)
指定された領域を再描画領域に登録します。
|
Void |
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 から継承)
このレスポンダが最背面に位置するかどうかを判定します。
|
Bool |
IsBack(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
|
Bool |
IsBack(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
|
Bool |
IsBack(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
|
Bool |
IsFrame( Void )
(SFYResponder から継承)
このレスポンダがアタッチメントフレームであるかどうかを判定します。
|
Bool |
IsFront( Void )
(SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
|
Bool |
IsFront(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
|
Bool |
IsFront(
UInt32 id
)
(SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
|
Bool |
IsFront(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
|
Bool |
IsNthBackward(
SInt32 index
)
(SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthBackward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthBackward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthBackward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthForward(
SInt32 index
)
(SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthForward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthForward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsNthForward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
|
Bool |
IsRoot( Void )
(SFYResponder から継承)
このレスポンダがルートレスポンダであるかどうかを判定します。
|
Bool |
IsScrollable( Void )
(SFYScrollBarControl から継承)
スクロール可能かどうかを判定します。
|
SFCError |
Recover( Void )
(SFYResponder から継承)
デバイス画面保存用ビットマップを使用してこのレスポンダとレスポンダ空間との交差領域を復元します。
|
SFCError |
RegisterHandler(
SFXEventRangeConstRef range
, SFYHandler::RuleRecConstRef rule
)
(SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
|
SFCError |
RegisterHandler(
SFXEventRangeConstRef range
, SFYHandler::HandlerSPP spp
, VoidPtr reference
)
(SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
|
SFCError |
RegisterHandler(
SFXEventRangeConstPtr range
, SFYHandler::RuleRecConstPtr rule
, SInt32 length
)
(SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
|
SFCError |
RegisterHandler(
SFXEventRangeConstPtr range
, SFYHandler::HandlerSPPConstPtr spp
, VoidPtrConstPtr reference
, SInt32 length
)
(SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
|
SFCError |
RegisterTracer(
SFXEventRangeConstRef range
, SFYTracer::RuleRecConstRef rule
)
(SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
|
SFCError |
RegisterTracer(
SFXEventRangeConstRef range
, SFYTracer::OrderEnum order
, SFYTracer::StateEnum state
, Bool overload
)
(SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
|
SFCError |
RegisterTracer(
SFXEventRangeConstPtr range
, SFYTracer::RuleRecConstPtr rule
, SInt32 length
)
(SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
|
SFCError |
RegisterTracer(
SFXEventRangeConstPtr range
, SFYTracer::OrderEnumConstPtr order
, SFYTracer::StateEnumConstPtr state
, BoolConstPtr overload
, SInt32 length
)
(SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
|
SFCError |
Render(
Bool force = false
)
(SFYResponder から継承)
このレスポンダ以下のレスポンダツリーをレスポンダ空間に再描画します。
|
Void |
SetArrowColor(
SFXRGBColorConstRef param
)
(SFYScrollBarControl から継承)
矢印ラベルの色を設定します。
|
Void |
SetBackgroundColor(
SFXRGBColorConstRef param
)
(SFYWidget から継承)
背景の色を設定します。
|
Void |
SetBevelColor(
SFXBevelColorConstRef param
)
(SFYScrollBarControl から継承)
スクロールバーの外枠を描画するためのベベルカラーを設定します。
|
Void |
SetCurrentValue(
SInt32 param
)
(SFYControl から継承)
コントロールの現在値を設定します。
|
Void |
SetDistributer(
SFYDistributerPtr param
)
(SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
|
SFCError |
SetFrame(
SFYResponderSmpConstRef param
)
(SFYResponder から継承)
このレスポンダにフレームを装着します。
|
Void |
SetID(
UInt32 param
)
(SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
|
Void |
SetMaximumValue(
SInt32 param
)
(SFYControl から継承)
コントロールの最大値を設定します。
|
Void |
SetMinimumValue(
SInt32 param
)
(SFYControl から継承)
コントロールの最小値を設定します。
|
Void |
SetOrientation(
OrientationEnum param
)
(SFYScrollBarControl から継承)
スクロールバーの方向(垂直か水平)を設定します。
|
Void |
SetPageValue(
SInt32 param
)
(SFYScrollBarControl から継承)
ページサイズを設定します。
|
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 |
SetScrollStepValue(
SInt32 param
)
(SFYScrollBarControl から継承)
スクロールステップを設定します。
|
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 |
SetTrackColor(
SFXRGBColorConstRef param
)
(SFYScrollBarControl から継承)
トラックの色を設定します。
|
Void |
SetVirtualBound(
SFXRectangleConstRef param
)
(SFYResponder から継承)
指定された領域をこのレスポンダの仮想領域に設定します。
|
SFCError |
Snapshot(
SFBBitmapSmpConstRef bitmap
)
(SFYResponder から継承)
デバイス画面保存用ビットマップからこのレスポンダとレスポンダ空間との交差領域のスナップショットを取得します。
|
Void |
Terminate( Void )
(SFYResponder から継承)
このレスポンダの終了処理を行います。
|
Void |
ToBack( Void )
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
|
Void |
ToBack(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
|
Void |
ToBack(
UInt32 id
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
|
Void |
ToBack(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
|
Void |
ToFront( Void )
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
|
Void |
ToFront(
Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
|
Void |
ToFront(
UInt32 id
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
|
Void |
ToFront(
UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
|
Void |
ToNthBackward(
SInt32 index
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
|
Void |
ToNthBackward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
|
Void |
ToNthBackward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
|
Void |
ToNthBackward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
|
Void |
ToNthForward(
SInt32 index
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
|
Void |
ToNthForward(
SInt32 index
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
|
Void |
ToNthForward(
SInt32 index
, UInt32 id
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
|
Void |
ToNthForward(
SInt32 index
, UInt32 id
, Bool visible
, Bool active
, Bool enable
, Bool focus
)
(SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
|
Void |
UnregisterHandler(
SFXEventRangeConstRef range
, SFYHandler::RuleRecConstRef rule
)
(SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
|
Void |
UnregisterHandler(
SFXEventRangeConstRef range
, SFYHandler::HandlerSPP spp
, VoidPtr reference
)
(SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
|
Void |
UnregisterHandler(
SFXEventRangeConstPtr range
, SFYHandler::RuleRecConstPtr rule
, SInt32 length
)
(SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
|
Void |
UnregisterHandler(
SFXEventRangeConstPtr range
, SFYHandler::HandlerSPPConstPtr spp
, VoidPtrConstPtr reference
, SInt32 length
)
(SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
|
Void |
UnregisterTracer(
SFXEventRangeConstRef range
)
(SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
|
Void |
UnregisterTracer(
SFXEventRangeConstPtr range
, SInt32 length
)
(SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
|
プロテクト関数 | |
---|---|
Void |
DrawDecrement(
SFXGraphicsPtr graphics
)
(SFYScrollBarControl から継承)
減分矢印矩形領域を描画します。
|
Void |
DrawIncrement(
SFXGraphicsPtr graphics
)
(SFYScrollBarControl から継承)
増分矢印矩形領域を描画します。
|
Void |
DrawThumb(
SFXGraphicsPtr graphics
)
(SFYScrollBarControl から継承)
サム領域を描画します。
|
Void |
DrawTrack(
SFXGraphicsPtr graphics
)
(SFYScrollBarControl から継承)
トラックを描画します。
|
static SFYResponderSmp |
Factory(
SFYResponderPtr responder
, SFCErrorPtr exception = null
)
(SFYResponder から継承)
NewInstance 関数の実装を補助します。
|
SFXRectangleConstRef |
GetDecrementArrowRectangle( Void )
(SFYScrollBarControl から継承)
減分矢印矩形領域を取得します。
|
SFXRectangleConstRef |
GetIncrementArrowRectangle( Void )
(SFYScrollBarControl から継承)
増分矢印矩形領域を取得します。
|
SInt16 |
GetScrollRange( Void )
(SFYScrollBarControl から継承)
スクロールレンジを取得します。
|
SFYResponderSmp |
GetThis( Void )
(SFYResponder から継承)
このレスポンダのスマートポインタを取得します。
|
SInt16 |
GetThumbLength( Void )
(SFYScrollBarControl から継承)
サムの長さを取得します。
|
SFXRectangle |
GetThumbRectangle( Void )
(SFYScrollBarControl から継承)
サム領域を取得します。
|
SInt16 |
GetThumbTop( Void )
(SFYScrollBarControl から継承)
サムトップの位置を取得します。
|
SFXRectangleConstRef |
GetTrackRectangle( Void )
(SFYScrollBarControl から継承)
トラック領域を取得します。
|
Void |
HandleBoundGlobal(
SFXRectangleConstRef rectangle
)
(SFYWidget から継承)
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
|
Void |
HandleBoundOptimize(
SFXRectanglePtr rectangle
)
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベントを受信したときに呼び出される関数です(指定した矩形に収まる範囲内で最適な領域を計算します)。
|
Void |
HandleBoundReal( Void )
(SFYControl から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です
(実領域が変化したときの処理を行います)。
|
Void |
HandleBoundRequest(
SFXRectanglePtr rectangle
)
(SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベントを受信したときに呼び出される関数です(最適な領域を計算します)。
|
Void |
HandleBoundVirtual( Void )
(SFYScrollBarControl から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です
(仮想領域が変化したときの処理を行います)。
|
Void |
HandleRenderRequest(
SFXGraphicsPtr graphics
)
(SFZScrollBarControl から継承)
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
|
Void |
HandleScrollable( Void )
(SFYScrollBarControl から継承)
スクロール可能状態が変化したときに呼び出される関数です。
|
Void |
RelocateTrackAndArrow( Void )
(SFYScrollBarControl から継承)
トラック矩形領域と減分・増分矢印矩形領域を再配置します。
|
Void |
SetDecrementArrowRectangle(
SFXRectangleConstRef param
)
(SFYScrollBarControl から継承)
減分矢印矩形領域を設定します。
|
Void |
SetIncrementArrowRectangle(
SFXRectangleConstRef param
)
(SFYScrollBarControl から継承)
増分矢印矩形領域を設定します。
|
Void |
SetTrackRectangle(
SFXRectangleConstRef param
)
(SFYScrollBarControl から継承)
トラック領域を設定します。
|
Void |
SetType(
SFCType param
)
(SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
|
型 |
---|
CodeEnum SFZContainerScrollBarControl クラスを表す定数です。
|
HorizontalEnum
(SFYResponder から継承)
水平方向のアライメントを表す定数です。
|
OrientationEnum
(SFYScrollBarControl から継承)
スクロールバーの方向を表す定数です。
|
VerticalEnum
(SFYResponder から継承)
垂直方向のアライメントを表す定数です。
|
[ protected, explicit ] SFZContainerScrollBarControl(Void);
このコンストラクタは、以下の初期化処理を行います。
表 257. イベントハンドラ
イベント | ハンドラの内容 |
---|---|
このスクロールバーコントロールが無効状態になったときの状態イベント[SFEVT_RESPONDER_STATE] | SFZContainerScrollBarControl::UnBind 関数を呼び出してスクロールバーコントロールをアンバインドします。 |
注意 | |
---|---|
SFZContainerScrollBarControl クラスを継承するレスポンダでは、 上記イベントが発生すると、それに対応するハンドラが呼び出されます。 |
このコンストラクタの内部実装は以下の通りです。
#include <SFZResponder/SFZControl/SFZScrollBarControl/SFZContainerScrollBarControl.h.hpp> #include <SFXGeneral/SFXEvent/SFXEvent.h.hpp> /*public */SFZContainerScrollBarControl::SFZContainerScrollBarControl(Void) static_throws { static SFXEventRange::AtomRecConst range[] = { {SFEVT_RESPONDER_STATE, SFEVT_RESPONDER_STATE, SFP16_STATE_VALID, SFP16_STATE_VALID} }; SFYHandler::RuleRec rule[lengthof(range)]; if (static_try()) { SetType(CODE_TYPE); _responder = null; rule[0].spp = XANDLER_FUNCTION(OnStateValid); rule[0].reference = this; static_throw(RegisterHandler(atomic_cast(range), rule, lengthof(range))); } }// SFZContainerScrollBarControl::SFZContainerScrollBarControl // XANDLER_IMPLEMENT_VOIDSTATE(SFZContainerScrollBarControl, OnStateValid, invoker, reason, state) { unused(invoker); unused(reason); if (!state) { UnBind(); } return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFZContainerScrollBarControl, OnStateValid)
SFYResponder::SetType | SFZContainerScrollBarControl::CodeEnum | SFZContainerScrollBarControl::Bind | SFZContainerScrollBarControl::UnBind | SFXEvent | タイプ | 状態 | イベント | 状態イベント[SFEVT_RESPONDER_STATE]
[ protected, virtual ] virtual ~SFZContainerScrollBarControl(Void);
このデストラクタは、何も行いません。
このデストラクタの内部実装は以下の通りです。
/*public virtual */SFZContainerScrollBarControl::~SFZContainerScrollBarControl(Void) { }// SFZContainerScrollBarControl::~SFZContainerScrollBarControl //
[ public, virtual ] SFCError Bind( SFYResponderSmpConstRef responder // スクロールバーコントロールを装着する対象となるレスポンダ(ターゲットレスポンダ) );
この関数は、 指定されたレスポンダ(SFYContainer を継承するコンテナ。以下、ターゲットレスポンダ)にこのスクロールバーコントロールを装着します。
ターゲットレスポンダの実領域と仮想領域から、 スクロールバーコントロールの最大値、最小値、現在値、ページサイズを設定する、 領域変更通知ハンドラをターゲットレスポンダに登録します。 この処理により、 スクロールバーコントロール装着後は、 ターゲットレスポンダの実領域や仮想領域が変更されると、 このハンドラが呼び出されて随時スクロール状況が自動更新されます。
スクロールバーコントロールを着脱するには、 SFZContainerScrollBarControl::UnBind 関数を呼び出します。
注意 | |
---|---|
特定のスクロールバーコントロールが、同時に装着できるレスポンダの個数は 1 つだけです。 他のレスポンダに装着中のスクロールバーコントロールに対してこの関数を呼び出した場合、 スクロールバーコントロールは着脱され、新たに指定したレスポンダに装着されます。 詳細は、内部実装コードを参照してください。 |
SFZContainerScrollBarControl の装着対象となるレスポンダ | |
---|---|
SFZContainerScrollBarControl は、 SFYContainer を継承するレスポンダに装着します。 具象レスポンダクラスとしては、 SFZContainer、SFZWindow、SFZTabPage、 SFZDialog、SFZMessageDialog、SFZQuestionDialog を挙げることができます。 |
この関数の内部実装は以下の通りです。
#include <SFZResponder/SFZControl/SFZScrollBarControl/SFZContainerScrollBarControl.h.hpp> #include <SFXGeneral/SFXEvent/SFXEvent.h.hpp> /*public */SFCError SFZContainerScrollBarControl::Bind(SFYResponderSmpConstRef responder) { return BindImpl(responder.Get()); }// SFZContainerScrollBarControl::Bind // /*private */SFCError SFZContainerScrollBarControl::BindImpl(SFYResponderPtr responder) { static SFXEventRange::AtomRecConst range[] = { {SFEVT_RESPONDER_STATE, SFEVT_RESPONDER_STATE, SFP16_STATE_VALID, SFP16_STATE_VALID}, {SFEVT_RESPONDER_BOUND, SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL, SFP16_BOUND_VIRTUAL} }; SFYHandler::RuleRec rule[lengthof(range)]; SFCError error(SFERR_NO_ERROR); UnBind(); if ((_responder = responder) != null && _responder != this) { rule[0].spp = XANDLER_FUNCTION(OnBindValid); rule[0].reference = this; rule[1].spp = XANDLER_FUNCTION(OnBindBound); rule[1].reference = this; error = _responder->RegisterHandler(atomic_cast(range), rule, lengthof(range)); if (error == SFERR_NO_ERROR) { Listen(); } } else { error = SFERR_INVALID_PARAM; } return error; }// SFZContainerScrollBarControl::BindImpl // XANDLER_IMPLEMENT_VOIDBOUND(SFZContainerScrollBarControl, OnBindBound, invoker, reason, bound) { unused(invoker); unused(reason); unused(bound); Listen(); return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFZContainerScrollBarControl, OnBindBound) /*private */Void SFZContainerScrollBarControl::Listen(Void) { SFXRectangle rRect; SFXRectangle vRect; SInt16 max; SInt16 cur; SInt16 page; if (_responder != null) { rRect = _responder->GetRealBound(); vRect = _responder->GetVirtualBound(); if (GetOrientation() == VERTICAL) { max = vRect.GetHeight(); cur = -vRect.GetTop(); page = rRect.GetHeight(); } else { max = vRect.GetWidth(); cur = -vRect.GetLeft(); page = rRect.GetWidth(); } SetMinimumValue(0); SetMaximumValue(max); SetCurrentValue(cur); SetPageValue(page); } return; }// SFZContainerScrollBarControl::Listen //
[ public, static ] SFZContainerScrollBarControlSmp NewInstance( SFCErrorPtr exception = null // エラー値 );
関数内部で発生したエラー値を返します。
この関数は、SFZContainerScrollBarControl クラスの新しいインスタンスを作成します。
インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。
exception 引数を指定した場合、 この引数にはエラー値が返ります。
以下は、コンテナ専用スクロールバーのインスタンスを生成するためのコードです。
// コンテナ専用スクロールバーのインスタンスを生成する SFCError error; SFZContainerScrollBarControlSmp _containerscrollbar; if ((_containerscrollbar = SFZContainerScrollBarControl::NewInstance(&error)) != null) { // ... }
[ public, virtual ] Void UnBind(Void);
この関数は、 このスクロールバーコントロールを装着しているレスポンダ(SFYContainer を継承するコンテナ。以下、ターゲットレスポンダ)からスクロールバーコントロールを着脱します。
この関数は、 ターゲットレスポンダへの領域変更通知ハンドラの登録を解除し、 ターゲットレスポンダの実領域と仮想領域の変更に伴う、 スクロールバーコントロールの最大値、最小値、現在値、ページサイズの自動更新を終了します。
この関数を実行後、ページサイズは 0 に設定されます。
スクロールバーコントロールを装着するには、 SFZContainerScrollBarControl::Bind 関数を呼び出します。
注意 | |
---|---|
このスクロールバーコントロールを装着しているレスポンダが存在しない場合は何も起こりません。 |
注意 | |
---|---|
この関数は、 スクロールバーコントロールまたはターゲットレスポンダの状態が無効状態 (SFYResponder::Terminate 関数が呼び出された状態)になると、 状態変更通知ハンドラから自動的に呼び出されます。 詳細は、内部実装コードを参照してください。 |
この関数の内部実装は以下の通りです。
#include <SFZResponder/SFZControl/SFZScrollBarControl/SFZContainerScrollBarControl.h.hpp> #include <SFXGeneral/SFXEvent/SFXEvent.h.hpp> /*public */Void SFZContainerScrollBarControl::UnBind(Void) { static SFXEventRange::AtomRecConst range[] = { {SFEVT_RESPONDER_STATE, SFEVT_RESPONDER_STATE, SFP16_STATE_VALID, SFP16_STATE_VALID}, {SFEVT_RESPONDER_BOUND, SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL, SFP16_BOUND_VIRTUAL} }; SFYHandler::RuleRec rule[lengthof(range)]; if (_responder != null) { rule[0].spp = XANDLER_FUNCTION(OnBindValid); rule[0].reference = this; rule[1].spp = XANDLER_FUNCTION(OnBindBound); rule[1].reference = this; _responder->UnregisterHandler(atomic_cast(range), rule, lengthof(range)); _responder = null; SetPageValue(0); } return; }// SFZContainerScrollBarControl::UnBind // XANDLER_IMPLEMENT_VOIDSTATE(SFZContainerScrollBarControl, OnBindValid, invoker, reason, state) { unused(invoker); unused(reason); if (!state) { UnBind(); } return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFZContainerScrollBarControl, OnBindValid) XANDLER_IMPLEMENT_VOIDBOUND(SFZContainerScrollBarControl, OnBindBound, invoker, reason, bound) { unused(invoker); unused(reason); unused(bound); Listen(); return; }// XANDLER_IMPLEMENT_VOIDBOUND(SFZContainerScrollBarControl, OnBindBound)
SFZContainerScrollBarControl::Bind SFYScrollBarControl::SetPageValue | SFYContainer | 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND] | 状態イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND] | 状態
enum CodeEnum { CODE_TYPE = four_char_code('c', 'c', 's', 'c') }; SFMTYPEDEFTYPE(CodeEnum)
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |