This ScrollView implementation is optimized for touch screens and supports scrolling by dragging.
More...
|
| CGUITouchScrollView () |
| Default constructor for streaming.
|
|
| CGUITouchScrollView (CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE) |
|
CGUIObject * | FindClosestObjectToPosition (const CGUICompositeObject *pSearchInObject, const eC_Value &vAbsPosInXDirection, const eC_Value &vAbsPosInYDirection) const |
|
eC_Value | GetAbsDestinationPosX () const |
|
eC_Value | GetAbsDestinationPosY () const |
|
CGUIObject * | GetActiveObject () const |
|
eC_Value | GetBounceBackFactor () const |
|
CGUICommonEnums::AxisAlignment_t | GetDestinationDirection () const |
|
eC_Value | GetDestinationPosition () const |
|
eC_Int | GetElementIndexOfActiveObject () const |
|
eC_Bool | HasKineticScrollingHorizontal () const |
|
eC_Bool | HasKineticScrollingVertical () const |
|
virtual void | ReadFromStream () |
|
eC_Bool | ScrollsToImmediateChildrenOnly () const |
|
virtual void | ScrollToObject (CGUIObject *pkObjectToScrollTo) |
|
virtual void | ScrollToObjectAnimated (CGUIObject *pkObjectToScrollTo) |
|
void | SetActiveObjectDistanceFactor (const eC_Value vActiveObjectDistanceFactor) |
|
void | SetBounceBackFactor (const eC_Value vBounceBackFactor) |
|
void | SetDestination (const CGUICommonEnums::AxisAlignment_t eDestinationDirection, const eC_Value vRelDestinationPos=eC_FromInt(-1)) |
|
void | SetKineticScrolling (const eC_Bool bVertical, const eC_Bool bHorizontal) |
|
void | SetScrollToImmediateChildrenOnly (const eC_Bool bOnlyImmediateChildren) |
|
virtual void | WriteToStream (const eC_Bool bWriteClassID=false) |
|
| CGUIScrollView () |
|
| CGUIScrollView (CGUICompositeObject *const pkParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE) |
|
| CGUIScrollView (CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE) |
|
| CGUIScrollView (const CGUIScrollView &rkSource) |
|
virtual eC_Bool | AddObject (CGUIObject *pkObject) |
|
virtual void | AdjustScrollBars () |
|
virtual void | DoAnimate (const eC_Value &vTimes=eC_FromInt(1)) |
|
virtual eC_Bool | DoScrollDown (const eC_Value &vAbsX, const eC_Value &vAbsY) |
|
virtual eC_Bool | DoScrollLeft (const eC_Value &vAbsX, const eC_Value &vAbsY) |
|
virtual eC_Bool | DoScrollRight (const eC_Value &vAbsX, const eC_Value &vAbsY) |
|
virtual eC_Bool | DoScrollUp (const eC_Value &vAbsX, const eC_Value &vAbsY) |
|
virtual CGUICompositeObject * | GetClipper () const |
|
virtual CGUICompositeObject * | GetContainer () const |
|
virtual void | GetFocus () |
|
CGUIScrollBar * | GetHorizontalScrollbar () |
|
CGUIScrollBar * | GetVerticalScrollbar () |
|
virtual eC_Bool | IsHorizontalScrollBarAtBottom () const |
|
virtual eC_Bool | IsVerticalScrollBarAtRight () const |
|
CGUIScrollView & | operator= (const CGUIScrollView &rkSource) |
|
virtual void | ReadFromStream () |
|
virtual void | RemoveObject (CGUIObject *pkObject) |
| Removes an object from the scrolled container. More...
|
|
virtual void | RestoreScrollPosition () |
|
virtual void | SaveScrollPosition () |
| Stores the scroll positions (values of both scroll bars)
|
|
virtual void | ScrollToFocussedObject () |
|
virtual void | ScrollToObject (CGUIObject *pkObject) |
|
void | SetAutoAdjustContainerSize (const eC_Bool bAutoAdjustContainerSize) |
|
void | SetAutoAdjustScrollViewLayout (const eC_Bool bAutoAdjustScrollViewLayout) |
|
virtual void | SetHeight (const eC_Value &vHeight) |
|
virtual void | SetHorizontalScrollBarAtBottom (const eC_Bool bIsAtBottom) |
|
virtual void | SetHorizontalScrollbarPolicy (const ScrollBarPolicy ePolicy) |
|
virtual void | SetScrollingInertia (const eC_Value vInertia) |
|
virtual void | SetScrollingViewport (const eC_Value vX, const eC_Value vY) |
|
virtual void | SetVerticalScrollBarAtRight (const eC_Bool bIsAtRight) |
|
virtual void | SetVerticalScrollbarPolicy (const ScrollBarPolicy ePolicy) |
|
virtual void | SetWidth (const eC_Value &vWidth) |
|
virtual void | StartScrollingAnimation () |
| Called when the Scrollview wishes to start scrolling. Overriding methods should call the base class implementation.
|
|
virtual void | StopScrollingAnimation () |
| Called when the scrolling animation is over. Overriding methods should call the base class implementation. More...
|
|
virtual void | WriteToStream (const eC_Bool bWriteClassID=false) |
|
| CGUICompositeObject () |
|
| CGUICompositeObject (CGUICompositeObject *const pkParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE) |
|
| CGUICompositeObject (CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE) |
|
| CGUICompositeObject (const CGUICompositeObject &kSource) |
|
virtual | ~CGUICompositeObject () |
| This destructor is automatically virtual, as the base class destructor is virtual.
|
|
virtual eC_Bool | AddObject (CGUIObject *pkObject) |
|
eC_Bool | BringToFront (const CGUIObject *pkObject) |
|
eC_Bool | CanBeCyclicFocussed () const |
|
virtual eC_Bool | DoPostDraw () |
|
void | DrawOnTop (CGUIObject *pkObject) |
|
void | DrawOnTopOf (CGUIObject *const pkObject, CGUIObject *const pDrawOnTopOf) |
|
virtual CGUIObject * | FindObject (const eC_Value &vAbsX, const eC_Value &vAbsY) |
|
void | Flip (const eC_Bool &rbVertical) |
|
eC_Bool | FocusAny () |
|
virtual eC_Bool | FocusNext (CGUIObject *const pRefObj=NULL, const eC_Bool &bSubTreeOfRefObjDone=false) |
|
virtual eC_Bool | FocusPrevious (CGUIObject *const pRefObj=NULL, const eC_Bool &bSubTreeOfRefObjDone=false) |
|
CGUIObject * | GetAndCheckObjectByID (ObjectHandle_t eObjID, const eC_String &kObjectName) |
|
const CGUIObject * | GetAndCheckObjectByID (ObjectHandle_t eObjID, const eC_String &kObjectName) const |
|
CGUIObject * | GetChild (const eC_UInt uIndex) |
|
CGUIObject * | GetChild (const eC_UInt uIndex) const |
|
const ObjectPtrList & | GetChildObjectsList () const |
|
const ObjectPtrList & | GetDrawOrderList () const |
|
eC_Int | GetIndexOfChild (const CGUIObject *pkObject) const |
|
eC_UInt | GetNumberOfChildren () const |
|
CGUIObject * | GetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false) |
|
const CGUIObject * | GetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false) const |
|
eC_Bool | InsertChildAt (const eC_UInt cuiIndex, CGUIObject *pkChild) |
|
void | InvalidateChildren () |
| Invalidates all chidren, but not this parent.
|
|
eC_Bool | IsAncestorOf (const CGUIObject *pkObject) const |
|
virtual eC_Bool | IsCompositeObject () const |
|
eC_Bool | LowerOneLevel (const CGUIObject *pkObject) |
|
CGUICompositeObject & | operator= (const CGUICompositeObject &kSource) |
|
eC_Bool | RaiseOneLevel (const CGUIObject *pkObject) |
|
virtual void | ReadFromStream () |
|
virtual void | RefreshLayout (CGUILayouter::eMovedEdges_t eMovedEdges) const |
|
void | RemoveAllChildren () |
|
virtual void | RemoveObject (CGUIObject *pkObject) |
|
void | Rotate (const eC_UInt &ruiDegrees, const eC_Bool &rbFirst=false) |
|
eC_Bool | SendToBack (const CGUIObject *pkObject) |
|
virtual void | SetClickThrough (const eC_Bool &bClickThrough) |
|
virtual void | SetClickThrough (const eC_Bool &bClickThrough, const eC_Bool &bChildrenClickThrough) |
|
void | SetCyclicFocus (const eC_Bool &bCyclicFocus) |
|
virtual void | SetDisabled (const eC_Bool &bDisabled) |
|
virtual void | SetDisabled (const eC_Bool &bDisabled, const eC_Bool &bChildrenDisabled) |
|
virtual void | SetFocussable (const eC_Bool &bFocussable) |
|
virtual void | SetFocussable (const eC_Bool &bFocussable, const eC_Bool &bChildrenFocussable) |
|
virtual void | SetGrayedOut (const eC_Bool &bGrayedOut) |
|
virtual void | SetGrayedOut (const eC_Bool &bGrayedOut, const eC_Bool &bChildrenGrayedOut) |
|
virtual void | SetHeight (const eC_Value &vY) |
|
virtual void | SetInvisible (const eC_Bool &bInvisible) |
|
virtual void | SetInvisible (const eC_Bool &bInvisible, const eC_Bool &bChildrenInvisible) |
|
virtual void | SetWidth (const eC_Value &vX) |
|
virtual void | WriteToStream (const eC_Bool bWriteClassID=false) |
|
| CGUIObject () |
|
| CGUIObject (CGUICompositeObject *const pkParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE) |
|
| CGUIObject (CGUICompositeObject *const pkParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE) |
|
| CGUIObject (const CGUIObject &kSource) |
|
virtual | ~CGUIObject () |
|
void | AddValueObserver (CGUIObserver *pkObserver) |
|
eC_Bool | CalculateInvalidatedRect (CGUIRect &rRect) const |
|
virtual eC_Bool | ClaimFocus () |
|
virtual void | CreateSnapshot (eC_UInt uiBackColor=0x00) |
|
eC_Bool | DataPoolConnectorExists () const |
|
void | DeleteSnapshot () |
|
virtual void | DisableSnapshotDrawing (eC_Bool bDeleteSnapshot=true) |
|
virtual eC_Bool | DoDraw () |
|
virtual eC_Bool | DoDrawSnapshot () |
|
virtual void | EnableSnapshotDrawing () |
|
virtual CGUIObject * | FindObject (const eC_Value &vAbsX, const eC_Value &vAbsY) |
|
virtual eC_Bool | FocusAny () |
|
virtual eC_Bool | FocusNext (CGUIObject *const pRefObj=NULL, const eC_Bool &bSubTreeOfRefObjDone=false) |
|
virtual eC_Bool | FocusPrevious (CGUIObject *const pRefObj=NULL, const eC_Bool &bSubTreeOfRefObjDone=false) |
|
CGUIRect | GetAbsRect () const |
|
eC_Value | GetAbsXPos () const |
|
eC_Value | GetAbsXPosCenter () const |
|
eC_Value | GetAbsXPosREdge () const |
|
eC_Value | GetAbsYPos () const |
|
eC_Value | GetAbsYPosBEdge () const |
|
eC_Value | GetAbsYPosCenter () const |
|
eC_UByte | GetAlpha () const |
|
CGUIBehaviourDecorator * | GetBehaviour () |
|
const CGUIBehaviourDecorator * | GetBehaviour () const |
|
GUIBitmapPlaneID_t | GetBitmapID () const |
|
CGUIBitmapPlane & | GetBitmapPlane () const |
|
CGUIRect | GetCurrentAbsRect () const |
|
eC_Value | GetCurrentAbsXPos () const |
|
eC_Value | GetCurrentAbsXPosCenter () const |
|
eC_Value | GetCurrentAbsXPosREdge () const |
|
eC_Value | GetCurrentAbsYPos () const |
|
eC_Value | GetCurrentAbsYPosBEdge () const |
|
eC_Value | GetCurrentAbsYPosCenter () const |
|
CDataPoolConnector & | GetDataPoolConnector () |
|
eC_Value | GetDistanceBottom () const |
|
eC_Value | GetDistanceRight () const |
|
eC_Value | GetHalfHeight () const |
|
eC_Value | GetHalfWidth () const |
|
eC_Value | GetHeight () const |
|
ObjectHandle_t | GetID () const |
|
CGUILayouter * | GetLayouter () |
|
const CGUILayouter * | GetLayouter () const |
|
ObjectHandle_t | GetNeighborBottomID () const |
|
ObjectHandle_t | GetNeighborLeftID () const |
|
ObjectHandle_t | GetNeighborRightID () const |
|
ObjectHandle_t | GetNeighborTopID () const |
|
CGUIObject * | GetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false) |
|
const CGUIObject * | GetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false) const |
|
CGUIRect | GetOriginRect () const |
|
CGUICompositeObject * | GetParent () |
|
const CGUICompositeObject * | GetParent () const |
|
CGUIRect | GetRelRect () const |
|
eC_Value | GetRelXPos () const |
|
eC_Value | GetRelXPosCenter () const |
|
eC_Value | GetRelXPosREdge () const |
|
eC_Value | GetRelYPos () const |
|
eC_Value | GetRelYPosBEdge () const |
|
eC_Value | GetRelYPosCenter () const |
|
eC_Value | GetWidth () const |
|
void | InvalidateArea () |
|
eC_Bool | IsClickable () const |
|
eC_Bool | IsClickThrough () const |
|
virtual eC_Bool | IsCompositeObject () const |
|
eC_Bool | IsDescendantOf (const CGUIObject *const pAncestor) const |
|
eC_Bool | IsDisabled () const |
|
eC_Bool | IsDragable () const |
|
eC_Bool | IsDragged () const |
|
eC_Bool | IsDrawingSnapshot () const |
|
eC_Bool | IsFocussable () const |
|
eC_Bool | IsFocussed () const |
|
eC_Bool | IsGrayedOut () const |
|
virtual eC_Bool | IsHighlightable () const |
|
eC_Bool | IsHighlighted () const |
|
eC_Bool | IsInvisible () const |
|
eC_Bool | IsPressed () const |
|
eC_Bool | IsStopFocus () const |
|
void | NotifyValueObservers (const CGUIValue &kValue, const eC_UInt uiX=0, const eC_UInt uiY=0) |
|
CGUIObject & | operator= (const CGUIObject &kSource) |
|
virtual void | ReadFromStream () |
|
virtual void | RefreshLayout (CGUILayouter::eMovedEdges_t eMovedEdges) const |
|
void | RemoveValueObserver (CGUIObserver *pkObserver) |
|
void | RenderToBitmap (eC_UInt uiBitmapID, eC_Value vXOffset=eC_FromInt(0), eC_Value vYOffset=eC_FromInt(0)) |
|
eC_Bool | RequestFocus () |
|
void | SetAlpha (eC_UByte ubAlpha) |
|
void | SetBehaviour (CGUIBehaviourDecorator *pkBehaviour) |
|
void | SetClickThrough (const eC_Bool &bClickThrough) |
|
virtual void | SetDisabled (const eC_Bool &bDisabled) |
|
virtual void | SetFocussable (const eC_Bool &bFocussable) |
|
virtual void | SetGrayedOut (const eC_Bool &bGrayOut) |
|
virtual void | SetHeight (const eC_Value &vY) |
|
void | SetID (const ObjectHandle_t &eID) |
|
virtual void | SetInvisible (const eC_Bool &bInvisible) |
|
void | SetLayouter (CGUILayouter *pLayouter) |
|
void | SetNeighborBottomID (const ObjectHandle_t eNewNeighborBottomID) |
|
void | SetNeighborIDs (const ObjectHandle_t eNewNeighborLeftID, const ObjectHandle_t eNewNeighborRightID, const ObjectHandle_t eNewNeighborTopID, const ObjectHandle_t eNewNeighborBottomID) |
|
void | SetNeighborLeftID (const ObjectHandle_t eNewNeighborLeftID) |
|
void | SetNeighborRightID (const ObjectHandle_t eNewNeighborRightID) |
|
void | SetNeighborTopID (const ObjectHandle_t eNewNeighborTopID) |
|
virtual void | SetParent (CGUICompositeObject *const pkParent) |
|
void | SetRelRect (const CGUIRect &kNewRect) |
|
virtual void | SetRelXPos (const eC_Value &vX) |
|
void | SetRelXPosCenter (const eC_Value &vXCenter) |
|
void | SetRelXPosREdge (const eC_Value &vX) |
|
virtual void | SetRelYPos (const eC_Value &vY) |
|
void | SetRelYPosBEdge (const eC_Value &vY) |
|
void | SetRelYPosCenter (const eC_Value &vYCenter) |
|
void | SetStopFocus (const eC_Bool &bDontFocusToParent) |
|
virtual eC_Bool | SetValue (CDataPoolEntry &rkValue) |
|
virtual eC_Bool | SetValue (const CGUIValue &rkValue) |
|
virtual void | SetWidth (const eC_Value &vX) |
|
virtual void | WriteToStream (const eC_Bool bWriteClassID=false) |
|
virtual eC_Bool | DoUserEvent (CGUIEvent *const pEvent) |
|
virtual void | OnCreate () |
|
virtual void | OnDelete () |
|
virtual void | OnHide () |
|
virtual void | OnShow () |
|
virtual eC_Bool | DoLongClick (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1)) |
|
virtual eC_Bool | DoDoubleClick (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1)) |
|
virtual eC_Bool | DoButtonUp (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1)) |
|
virtual eC_Bool | DoMouseEnter (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1)) |
|
virtual eC_Bool | DoMouseLeave (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1)) |
|
virtual eC_Bool | DoMouseMove (const eC_Value &vAbsX=eC_FromInt(-1), const eC_Value &vAbsY=eC_FromInt(-1)) |
|
virtual void | LoseFocus () |
|
virtual eC_Bool | Decrease () |
|
virtual eC_Bool | Increase () |
|
virtual eC_Bool | DoKeyDown (const GUIKeyIdentifier_t &eKeyIdentifier, const eC_UInt &uiModifiers) |
|
virtual eC_Bool | DoKeyUp (const GUIKeyIdentifier_t &eKeyIdentifier, const eC_UInt &uiModifiers) |
|
virtual eC_Bool | DoChar (const eC_UInt &uiKey, const GUIKeyIdentifier_t &eKeyIdentifier, const eC_UInt &uiModifiers) |
|
const eC_String & | GetXMLTag () const |
|
virtual void | ReadFromStream () |
|
void | SetXMLTag (const eC_String &kXMLTag) |
|
virtual void | WriteToStream (const eC_Bool bWriteClassID=false) |
|
virtual | ~CGUIAnimatable () |
| Destructor. Removes all existing animation callbacks.
|
|
virtual void | DoAnimate (const eC_Value &vTimes=eC_FromInt(1)) |
|
virtual eC_Bool | IsAnimating () const |
|
virtual void | StartAnimation () |
|
virtual void | StopAnimation () |
|
|
eC_Bool | m_bDragActive |
| drag active
|
|
eC_Bool | m_bKineticScrollingHorizontal |
| Determines if kinetic scrolling is activated in horizontal scroll direction.
|
|
eC_Bool | m_bKineticScrollingVertical |
| Determines if kinetic scrolling is activated in vertical scroll direction.
|
|
eC_Bool | m_bScrollToImmediateChildrenOnly |
| Determines which objects are scrolled to the target position. Only direct children of the scroll view, or any descendant.
|
|
CGUICommonEnums::AxisAlignment_t | m_eCurrentDragDirection |
| Holds the drag direction. DRAG_NONE when no drag is ongoing.
|
|
CGUICommonEnums::AxisAlignment_t | m_eDestinationDirection |
| The destination direction is used to determine if m_vDestination is the XPos or the YPos.
|
|
CGUIEasing::EasingType_t | m_eEasingType |
| EasingType used for kinetic animation.
|
|
CGUICommonEnums::AxisAlignment_t | m_eScrollAnimationDirection |
|
CGUIPoint | m_kDragStart |
| Holds the start point of a drag.
|
|
CSafeGUIObjectPtr | m_pActiveObject |
| The active object which is scrolled to the destination point.
|
|
eC_UInt | m_uiDragTimeStamp |
| Timestamp of last received DoDrag()-Event.
|
|
eC_UInt | m_uiLastDrag |
| Holds the time when the last drag was started. Used to calculate the drag speed.
|
|
eC_Value | m_vActiveObjectDistanceFactor |
| Factor by which the active object's distance to the target position is multiplied.
|
|
eC_Value | m_vBounceBackFactor |
| The bounce back factor used when the upper or lower edge of the scroll view is reached while an animation.
|
|
eC_Value | m_vDestination |
| The relative destination position for the object center.
|
|
eC_Value | m_vEasingDuration |
| Duration of easing animation for kinetic scrolling.
|
|
eC_Value | m_vScrollSpeedX |
| The scroll speed of the ongoing animation.
|
|
eC_Value | m_vScrollSpeedY |
| The scroll speed of the ongoing animation.
|
|
eC_Value | m_vStartScrollSpeedX |
| Speed of animation at the beginning of a kinetic animation. More...
|
|
eC_Value | m_vStartScrollSpeedY |
| scrollspeed y
|
|
eC_Bool | m_bAutoAdjustContainerSize |
|
eC_Bool | m_bAutoAdjustScrollViewLayout |
|
eC_Bool | m_bIsHorizontalScrollBarAtBottom |
| Position of horizontal scrollbar (true=bottom, false=top)
|
|
eC_Bool | m_bIsVerticalScrollBarAtRight |
| Position of vertical scrollbar (true=right, false=left)
|
|
ScrollBarPolicy | m_eHorizontalScrollBarPolicy |
| Scrollbar policy defining whether a horizontal scrollbar is visible or not.
|
|
ScrollBarPolicy | m_eVerticalScrollBarPolicy |
| Scrollbar policy defining whether a vertical scrollbar is visible or not.
|
|
eC_Int | m_iHorScrollPos |
| Stored position of the horizontal scroll bar.
|
|
eC_Int | m_iVerScrollPos |
| Stored position of the vertical scroll bar.
|
|
CGUICompositeObject * | m_pkClipper |
|
CGUIScrollBar * | m_pkHorScrollBar |
|
CGUIScrollBar * | m_pkVerScrollBar |
|
eC_Value | m_vScrollingInertia |
| Inertia value for soft scrolling. Legal values are positive and greater than 1.
|
|
eC_Value | m_vViewportXBorder |
| Horizontal (in X direction) gap between visible area and the area outside of which scrolling will occur.
|
|
eC_Value | m_vViewportYBorder |
| Vertical (in Y direction) gap between visible area and the area outside of which scrolling will occur.
|
|
This ScrollView implementation is optimized for touch screens and supports scrolling by dragging.
| The "touch scroll view" is a specialized scroll view which is optimized for touch screens and supports scrolling by dragging as well as kinetic effects (Class: CGUITouchScrollView). |
When dragging, the content of the scroll view follows the finger/mouse. Besides that it is possible to activate kinetic scrolling which will trigger a scroll animation after the drag, that slowly fades out with time. The animation speed depends on the drag speed, which means that quick fling gestures will result in faster scrolling. Optionally it is possible to activate a bounce back factor, which will invert the animation direction when the edge of the scroll view is reached.
It is also possible to define a destination position (relative to the scroll view). When this is done the scroll view will always choose one object which is the 'active object' and align its center to this position. The destination position is only defined for one direction. Depending on the destination direction (horizontal or vertical) the target position is used for the XPosCenter or the YPosCenter of the active object. When clicking on the scroll view, the nearest object to the click position (in destination direction) is chosen as the active object. When dragging, the nearest object to the target position is chosen as active object when the drag is finished. When kinetic scrolling is activated, the nearest object to the target position is chosen when the kinetic animation is about to fade out.
Frequently Asked Questions:
Why does the animation speed shortly increase again when the animation is about to fade out?
If a destination position is given the framework tries to make sure that at the end of animation a valid position is reached. It therefore automatically animates towards the destination position if the animation speed drops below a minimum threshold.
Why does my CGUITouchScrollView immediately start scrolling upon entering the dialog?
If an object within the CGUITouchScrollView receives the focus, the scrollview will try to scroll this object to the destination position. Could it be that the focus (either on purpose, or by default since no explicit focus was set) got moved into the CGUITouchScrollView?
I set a destination position, but the first/last child within the CGUITouchScrollView is never scrolled to this position.
If the first child object of the CGUITouchScrollView's internal container starts at the very beginning (e.g. at position "0") then the scrollview may not be able to scroll it to your desired destination position, since its scrolling range is limited by the size/position of the container object. This can be resolved be leaving some extra space before/after the child objects, e.g. by placing an empty placeholder object before/after them.
I have placed composite objects into the CGUITouchScrollView, which contain further child objects. Now I wish to center the composite-objects on the defined destination position, but NOT the child objects themselves. How can I do this?
This is done via the SetScrollToImmediateChildrenOnly() API. This ensures that only direct children of the CGUITouchScrollView's container will be used for scrolling. Descendants deeper in the hierarchy will not be taken into account.
Example:
eC_FromInt(0), eC_FromInt(0),
eC_FromInt(200), eC_FromInt(300));
for (eC_UInt i= 0; i< 10; i++)
{
new CGUIButton(pkTouchScrollView, eC_FromInt(40), eC_Mul(eC_FromInt(i), eC_FromInt(50)), eC_FromInt(60), eC_FromInt(20),
"Button" + eC_String(i), NULL);
}
eC_Value GetHalfHeight() const
Definition: GUIObject.h:439