SophiaFramework UNIVERSE 5.3 |
#include <SFZScrollBarControl.h.hpp>
class SFZScrollBarControl : public SFYScrollBarControl;
SFMTYPEDEFRESPONDER(SFZScrollBarControl)
SFZScrollBarControl は、 スクロールバーコントロールを表すクラスです。
このクラスは、 SFYScrollBarControl クラスに描画機能とインスタンス作成機能を付加したクラスです。
仮想領域が実領域よりも大きい場合や、 リストボックスやメニューなどで実領域に表示可能な項目よりもたくさんの項目がある場合、 レスポンダはスクロールしてコンテンツ(内容)を表示します。
このようなレスポンダでは、 以下の手順でスクロールバーコントロール(SFZScrollBarControl)を装着することにより、 実領域に現在表示されているコンテンツに関するコンテンツ全体に対する相対的な位置関係(スクロールの状況)をスクロールバーコントロールに表示することができます。
注意 | |
---|---|
スクロールバーを装着する対象となるレスポンダを『ターゲットレスポンダ』と呼んでいます。 また、ターゲットレスポンダの実領域に現在表示されているコンテンツを『表示コンテンツ』、 表示されていないものも含めたすべてのコンテンツを『全体コンテンツ』と呼んでいます。 |
ターゲットレスポンダの最小値、最大値、現在値、ページサイズについて | |
---|---|
多くのレスポンダでは、 全体コンテンツの始点と終点の座標で最小値と最大値、表示コンテンツ(=実領域)の始点と幅で現在値とページサイズを表現します (いずれもローカル領域の座標系。スクロール方向が水平の場合は X 座標、垂直の場合は Y 座標。最小値は常に 0 です)。 ターゲットレスポンダの実領域や仮想領域が変更された場合、 全体コンテンツの始点や終点、表示コンテンツの始点や幅も変更されますので、 スクロールバーコントロールの最小値、最大値、現在値、ページサイズも更新する必要があります。 例外: SFZListBoxControl クラスでは、 全体コンテンツの項目数で最大値、表示コンテンツの先頭項目のインデックスで現在位置、 表示コンテンツの項目数でページサイズを表現します(最小値は常に 0)。 |
スクロールバーイベントについて | |
---|---|
スクロールバーコントロールは、 ターゲットレスポンダがスクロール可能な状態からスクロール不可能な状態、あるいはその逆になったとき、 スクロールバーイベント [SFEVT_RESPONDER_SCROLLBAR] [SFXEvent(SFEVT_RESPONDER_SCROLLBAR, SFP16_SCROLLBAR_ENABLE, 0)] を受信します。 |
スクロール可能性の判定について | |
---|---|
ターゲットレスポンダが現在スクロール可能であるかどうかは、 SFYScrollBarControl::IsScrollable 関数を使用して判定します。 |
スクロールバーコントロールの幅について | |
---|---|
スクロールバーコントロールの幅として、4 ピクセル以上の値を指定できます。 減分・増分矢印を矩形領域内にバランス良く描画するには、5 以上の奇数を指定することを推奨します。 |
Increment / Decrement / SetScrollStepValue 関数について | |
---|---|
スクロールバーコントロールを装着するレスポンダ(ターゲットレスポンダ) 側でスクロールバーコントロールの現在値を増減する場合、 SFYScrollBarControl::Increment / SFYScrollBarControl::Decrement / SFYScrollBarControl::SetScrollStepValue 関数は使用しません。 これらの関数は、 スクロールバーコントロール側からターゲットレスポンダをスクロールしたい場合に使用します。 通常、ターゲットレスポンダ側でスクロールさせますので、 これらの関数を使用する機会は少ないと考えられます。 |
詳細は SFYScrollBarControl を参照してください。
例 905. 宣言
SFMTYPEDEFRESPONDER(USRWindow) class USRWindow: public SFZWindow { SFMSEALRESPONDER(USRWindow) SFMRESPONDERINSTANTIATEFOUR(USRWindow, SFZWindow, SFYContainer, SFYWidget, SFYResponder) private: SFZContainerSmp _container; SFZScrollBarControlSmp _bar; public: SFCError Make(Void); // ... private: // コンテナの領域情報を読み取りスクロールバーのサムの位置と大きさを設定する関数 Void Listen(SFYResponderPtr container); // コンテナの実領域と仮想領域に関する領域イベント用ハンドラ XANDLER_DECLARE_VOIDBOUND(OnContainerBound) };
例 906. 実装
#define SCROLLBAR_WIDTH 5 SFCError USRWindow::Make(Void) { SFCError error(SFERR_NO_ERROR); // コンテナを作成する if ((_container = SFZContainer::NewInstance(&error)) != null) { // コンテナの親を USRWindow に設定する error = _container->SetParent(GetThis()); if (error == SFERR_NO_ERROR) { // 実領域と仮想領域に関する領域イベント用ハンドラをコンテナに登録する error = _container->RegisterHandler( SFXEventRange(SFEVT_RESPONDER_BOUND, SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL, SFP16_BOUND_VIRTUAL), XANDLER_INTERNAL(OnContainerBound) ); if (error == SFERR_NO_ERROR) { // コンテナの背景色を設定する _container->SetBackgroundColor(SFXRGBColor(0xFF, 0xCC, 0xCC, 0x00)); // コンテナの実領域をウィンドウのローカル領域からスクロールバーの分だけ除いた領域に設定する _container->SetRealBound(GetLocalBound().SubWidth(SCROLLBAR_WIDTH)); // コンテナの仮想領域を実領域から上下に 100 ずつ広げた領域に設定する _container->SetVirtualBound(SFXRectangle(_container->GetRealBound()).Inflate(0, 100)); // コンテナの状態を「可視+活性+操作可能+フォーカス」にまとめて設定する _container->SetState(true, true, true, true); if ((_bar = SFZScrollBarControl::NewInstance(&error)) != null) { // スクロールバーの親を USRWindow に設定する error = _bar->SetParent(GetThis()); if (error == SFERR_NO_ERROR) { // コンテナの右横にスクロールバーを配置する _bar->SetRealBound(GetLocalBound().SetX(_container->GetRealBound().GetRight()).SetWidth(SCROLLBAR_WIDTH)); // スクロールバーの状態を「可視+活性+操作不能+非フォーカス」にまとめて設定する _bar->SetState(true, true, false, false); // コンテナの領域情報を読み取りスクロールバーのサムの位置と大きさを設定する Listen(_container.Get()); } } } } } return error; } // コンテナの領域情報を読み取りスクロールバーのサムの位置と大きさを設定する関数 Void USRWindow::Listen(SFYResponderPtr container) { SFXRectangle rx; SFXRectangle vx; SInt16 max; SInt16 cur; SInt16 page; if (_bar != null & container != null) { // コンテナの実領域を取得する rx = container->GetRealBound(); // コンテナの仮想領域を取得する vx = container->GetVirtualBound(); if (_bar->GetOrientation() == SFYScrollBarControl::VERTICAL) { // スクロールの方向が垂直の場合 // max の値を仮想領域の縦幅に設定する max = vx.GetHeight(); // cur の値をローカル座標系における実領域の始点の Y 値に設定する cur = -vx.GetTop(); // page の値を実領域の縦幅に設定する page = rx.GetHeight(); } else { // スクロールの方向が水平の場合 // max の値を仮想領域の横幅に設定する max = vx.GetWidth(); // cur の値をローカル座標系における実領域の始点の X 値に設定する cur = -vx.GetLeft(); // page の値を実領域の横幅に設定する page = rx.GetWidth(); } // 最小値を設定する (この値は常に 0 である) _bar->SetMinimumValue(0); // 最大値を設定する (この値は仮想領域の横幅もしくは縦幅になる) _bar->SetMaximumValue(max); // 現在値を設定する (この値はローカル領域座標系における実領域の始点の X 値または Y 値になる) _bar->SetCurrentValue(cur); // ページサイズを設定する (この値は実領域の横幅もしくは縦幅になる) _bar->SetPageValue(page); } } // コンテナの実領域と仮想領域に関する領域イベント用ハンドラ XANDLER_IMPLEMENT_VOIDBOUND(USRWindow, OnContainerBound, invoker, reason, bound) { unused(reason); unused(bound); // invoker にはコンテナが渡される // コンテナの領域が変更されたときにスクロールバーのサムの位置と大きさ更新する Listen(invoker); }
実行結果:
SFYScrollBarControl SFZContainerScrollBarControl | SFYControl::SetMinimumValue | SFYControl::SetMaximumValue | SFYControl::SetCurrentValue | SFYScrollBarControl::SetPageValue | SFYScrollBarControl::SetBevelColor | SFYScrollBarControl::SetTrackColor | SFYScrollBarControl::SetArrowColor | SFYScrollBarControl::SetOrientation | SFYScrollBarControl::IsScrollable | SFYResponder::SetRealBound | 実領域 | 仮想領域 | スクロールバーイベント [SFEVT_RESPONDER_SCROLLBAR]
コンストラクタ/デストラクタ |
---|
SFZScrollBarControl( Void ) SFZScrollBarControl クラスのコンストラクタです。
|
~SFZScrollBarControl( Void ) SFZScrollBarControl クラスのデストラクタです。
|
パブリック関数 | |
---|---|
static SFZScrollBarControlSmp |
NewInstance(
SFCErrorPtr exception = null
) 新しいインスタンスを作成します。
|
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 |
HandleRenderRequest(
SFXGraphicsPtr graphics
) 描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
|
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 |
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 SFZScrollBarControl クラスを表す定数です。
|
HorizontalEnum
(SFYResponder から継承)
水平方向のアライメントを表す定数です。
|
OrientationEnum
(SFYScrollBarControl から継承)
スクロールバーの方向を表す定数です。
|
VerticalEnum
(SFYResponder から継承)
垂直方向のアライメントを表す定数です。
|
[ protected, explicit ] SFZScrollBarControl(Void);
このレスポンダのタイプを "cscr" に設定します。
このコンストラクタの内部実装は以下の通りです。
/*public */SFZScrollBarControl::SFZScrollBarControl(Void) static_throws { if (static_try()) { SetType(CODE_TYPE); } }// SFZScrollBarControl::SFZScrollBarControl //
[ protected, virtual ] virtual ~SFZScrollBarControl(Void);
このデストラクタは、何も行いません。
このデストラクタの内部実装は以下の通りです。
/*public virtual */SFZScrollBarControl::~SFZScrollBarControl(Void) { }// SFZScrollBarControl::~SFZScrollBarControl //
[ protected, virtual, const ] Void HandleRenderRequest( SFXGraphicsPtr graphics // グラフィックスオブジェクト );
この関数は、 描画イベント [SFXEvent(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST, graphics)] を受信したときに呼び出されます。
独自の描画処理を行いたい場合は、この関数をオーバーライドします。
デフォルトの実装は、スクロールバーコントロールを描画します。
レスポンダの描画手順 | |||||
---|---|---|---|---|---|
|
この関数の内部実装は以下の通りです。
/*protected virtual */Void SFZScrollBarControl::HandleRenderRequest(SFXGraphicsPtr graphics) const { DrawTrack(graphics); DrawDecrement(graphics); DrawIncrement(graphics); DrawThumb(graphics); return; }// SFZScrollBarControl::HandleRenderRequest //
SFYScrollBarControl::DrawTrack | SFYScrollBarControl::DrawDecrement | SFYScrollBarControl::DrawIncrement | SFYScrollBarControl::DrawThumb | SFYResponder::Invalidate | SFYResponder::Render | SFYResponder::InvokeBackward | 描画イベント[SFEVT_RESPONDER_RENDER] | 描画イベント専用ハンドラ[XANDLER_DECLARE_VOIDRENDER] | 描画処理
[ public, static ] SFZScrollBarControlSmp NewInstance( SFCErrorPtr exception = null // エラー値 );
関数内部で発生したエラー値を返します。
この関数は、SFZScrollBarControl クラスの新しいインスタンスを作成します。
インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。
exception 引数を指定した場合、 この引数にはエラー値が返ります。
以下は、スクロールバーのインスタンスを生成するためのコードです。
// スクロールバーのインスタンスを生成する SFCError error; SFZScrollBarControlSmp _scrollbar; if ((_scrollbar = SFZScrollBarControl::NewInstance(&error)) != null) { // ... }
enum CodeEnum { CODE_TYPE = four_char_code('c', 's', 'c', 'r') }; SFMTYPEDEFTYPE(CodeEnum)
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |