Guiliani  Version 2.4 revision 5970 (build 3)
CGUITouchScrollView Class Reference

This ScrollView implementation is optimized for touch screens and supports scrolling by dragging. More...

#include <GUITouchScrollView.h>

Inheritance diagram for CGUITouchScrollView:

Public Member Functions

 CGUITouchScrollView (CGUICompositeObject *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUITouchScrollView ()
 Default constructor for streaming.
 
CGUIObjectFindClosestObjectToPosition (const CGUICompositeObject *pSearchInObject, const eC_Value &vAbsPosInXDirection, const eC_Value &vAbsPosInYDirection) const
 
eC_Value GetAbsDestinationPosX () const
 
eC_Value GetAbsDestinationPosY () const
 
CGUIObjectGetActiveObject () 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 *pObjectToScrollTo)
 
virtual void ScrollToObjectAnimated (CGUIObject *pObjectToScrollTo)
 
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)
 
- Public Member Functions inherited from CGUIScrollView
 CGUIScrollView (CGUICompositeObject *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIScrollView (CGUICompositeObject *const pParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIScrollView (const CGUIScrollView &rkSource)
 
 CGUIScrollView ()
 
virtual eC_Bool AddObject (CGUIObject *pObject)
 
virtual void AdjustScrollBars ()
 
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 CGUICompositeObjectGetClipper () const
 
virtual CGUICompositeObjectGetContainer () const
 
virtual void GetFocus ()
 
CGUIScrollBarGetHorizontalScrollbar ()
 
CGUIScrollBarGetVerticalScrollbar ()
 
virtual eC_Bool IsHorizontalScrollBarAtBottom () const
 
virtual eC_Bool IsVerticalScrollBarAtRight () const
 
CGUIScrollViewoperator= (const CGUIScrollView &rkSource)
 
virtual void RemoveObject (CGUIObject *pObject)
 Removes an object from the scrolled container. More...
 
virtual void RestoreScrollPosition ()
 
virtual void SaveScrollPosition ()
 Stores the scroll positions (values of both scroll bars)
 
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.
 
- Public Member Functions inherited from CGUICompositeObject
 CGUICompositeObject ()
 
 CGUICompositeObject (CGUICompositeObject *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUICompositeObject (CGUICompositeObject *const pParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUICompositeObject (const CGUICompositeObject &kSource)
 
virtual ~CGUICompositeObject ()
 This destructor is automatically virtual, as the base class destructor is virtual.
 
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 CGUIObjectFindObject (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)
 
const CGUIObjectGetAndCheckObjectByID (ObjectHandle_t eObjID, const eC_String &kObjectName) const
 
CGUIObjectGetAndCheckObjectByID (ObjectHandle_t eObjID, const eC_String &kObjectName)
 
CGUIObjectGetChild (const eC_UInt uIndex) const
 
CGUIObjectGetChild (const eC_UInt uIndex)
 
const ObjectPtrListGetChildObjectsList () const
 
const ObjectPtrListGetDrawOrderList () const
 
eC_Int GetIndexOfChild (const CGUIObject *pkObject) const
 
eC_UInt GetNumberOfChildren () const
 
CGUIObjectGetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false)
 
const CGUIObjectGetObjectByID (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)
 
CGUICompositeObjectoperator= (const CGUICompositeObject &kSource)
 
eC_Bool RaiseOneLevel (const CGUIObject *pkObject)
 
virtual void RefreshLayout (CGUILayouter::eMovedEdges_t eMovedEdges) const
 
void RemoveAllChildren ()
 
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 SetInvisible (const eC_Bool &bInvisible)
 
virtual void SetInvisible (const eC_Bool &bInvisible, const eC_Bool &bChildrenInvisible)
 
- Public Member Functions inherited from CGUIObject
 CGUIObject (CGUICompositeObject *const pParent, const eC_Value &vX, const eC_Value &vY, const eC_Value &vWidth, const eC_Value &vHeight, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIObject (CGUICompositeObject *const pParent, const CGUIRect &kRect, const ObjectHandle_t &eID=NO_HANDLE)
 
 CGUIObject ()
 
 CGUIObject (const CGUIObject &kSource)
 
virtual ~CGUIObject ()
 
void AddValueObserver (CGUIObserver *pObserver)
 
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 ()
 
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
 
CGUIBehaviourDecoratorGetBehaviour ()
 
const CGUIBehaviourDecoratorGetBehaviour () const
 
GUIBitmapPlaneID_t GetBitmapID () const
 
CGUIBitmapPlaneGetBitmapPlane () 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
 
CDataPoolConnectorGetDataPoolConnector ()
 
eC_Value GetDistanceBottom () const
 
eC_Value GetDistanceRight () const
 
eC_Value GetHalfHeight () const
 
eC_Value GetHalfWidth () const
 
eC_Value GetHeight () const
 
ObjectHandle_t GetID () const
 
CGUILayouterGetLayouter ()
 
const CGUILayouterGetLayouter () const
 
ObjectHandle_t GetNeighborBottomID () const
 
ObjectHandle_t GetNeighborLeftID () const
 
ObjectHandle_t GetNeighborRightID () const
 
ObjectHandle_t GetNeighborTopID () const
 
CGUIObjectGetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false)
 
const CGUIObjectGetObjectByID (const ObjectHandle_t &eID, const eC_Bool &bOnlyVisible=false) const
 
CGUIRect GetOriginRect () const
 
CGUICompositeObjectGetParent ()
 
const CGUICompositeObjectGetParent () 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
 
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)
 
CGUIObjectoperator= (const CGUIObject &kSource)
 
void RemoveValueObserver (CGUIObserver *pObserver)
 
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 *pBehaviour)
 
void SetClickThrough (const eC_Bool &bClickThrough)
 
void SetID (const ObjectHandle_t &eID)
 
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 pParent)
 
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 (const CGUIValue &rkValue)
 
virtual eC_Bool SetValue (CDataPoolEntry &rkValue)
 
- Public Member Functions inherited from CGUIBehaviour
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)
 
- Public Member Functions inherited from CGUIStreamableObject
const eC_String & GetXMLTag () const
 
void SetXMLTag (const eC_String &kXMLTag)
 
- Public Member Functions inherited from CGUIAnimatable
virtual ~CGUIAnimatable ()
 Destructor. Removes all existing animation callbacks.
 
virtual eC_Bool IsAnimating () const
 
virtual void StartAnimation ()
 
virtual void StopAnimation ()
 

Protected Member Functions

eC_Value CalcDistanceToObject (const CGUIObject *pkObject, const eC_Value &vAbsPosInXDirection, const eC_Value &vAbsPosInYDirection) const
 
virtual void DoAnimate (const eC_Value &vTimes=eC_FromInt(1))
 
virtual eC_Bool DoButtonDown (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
virtual eC_Bool DoClick (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
virtual eC_Bool DoDrag (const eC_Value &vDeltaX, const eC_Value &vDeltaY, const eC_Value &vAbsX, const eC_Value &vAbsY)
 
virtual eC_Bool DoDragEnd (const eC_Value &vAbsX, const eC_Value &vAbsY)
 
CGUIObjectGetValidScrollTarget (CGUIObject *pActiveObject)
 
eC_Bool HasTargetPosition () const
 
eC_Bool HasTargetPositionInDragDirection () const
 
eC_Bool HasTargetPositionInScrollDirection () const
 
void ScrollToFocussedObject ()
 Overloaded to scroll animated to the currently focused object.
 
virtual void StopScrollingAnimation ()
 Called by DoAnimate when the animation is over. Sets the focus to active object. Overriding methods should call the base class implementation.
 
- Protected Member Functions inherited from CGUIScrollView
virtual void AdjustClipperSize ()
 
virtual void AdjustContainerSize ()
 
void Init ()
 General initialization.
 
- Protected Member Functions inherited from CGUICompositeObject
virtual eC_Bool FourWayNext (FourWayFocus_t eFocusDirection)
 
ObjectPtrListGetChildObjectsList ()
 
virtual void HandleDraw (const CGUIRect &ClipRect)
 
- Protected Member Functions inherited from CGUIObject
virtual eC_Bool CreateBitmapPlane ()
 
- Protected Member Functions inherited from CGUIStreamableObject
eC_UInt ReadStreamingHeader (const eC_UInt &uiClassVersion, const eC_UInt &uiClassMinVersion=0) const
 
void WriteStreamingFooter (const eC_Bool &bWriteClassID) const
 
void WriteStreamingHeader (const eC_Bool &bWriteClassID, const eC_Char *const pkClassIDTag, const eC_Int &iClassID, const eC_UInt &uiClassVersion) const
 

Protected Attributes

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
 
- Protected Attributes inherited from CGUIScrollView
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.
 
CGUICompositeObjectm_pkClipper
 
CGUIScrollBarm_pkHorScrollBar
 
CGUIScrollBarm_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.
 

Additional Inherited Members

- Public Types inherited from CGUIScrollView
enum  ScrollBarPolicy { AUTOMATIC, ALWAYS_VISIBLE, NEVER_VISIBLE }
 Scrollbar policies. These specify under which circumstances a scrollbar is visible. More...
 
- Public Types inherited from CGUIObject
enum  FourWayFocus_t { FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUS_DOWN }
 
- Static Public Attributes inherited from CGUICompositeObject
static const eC_Char XMLTAG_CHILDREN [] = "Children"
 XML comment tag to be used before writing children to a stream.
 
static const eC_Char XMLTAG_ENDCHILDREN [] = "/Children"
 XML comment tag to be used after writing children to a stream.
 
- Static Public Attributes inherited from CGUIObject
static const eC_Char XMLTAG_ALPHA [] = "Alpha"
 XML tag to be used writing alpha-value into a stream.
 
static const eC_Char XMLTAG_CLICKTHROUGH [] = "ClickThrough"
 XML tag to be used writing clickthrough-state into a stream.
 
static const eC_Char XMLTAG_CONTROLCLASSID [] = "ControlClassID"
 XML tag to be used when writing a control class ID into a stream.
 
static const eC_Char XMLTAG_DISABLED [] = "Disabled"
 XML tag to be used writing disabled-state into a stream.
 
static const eC_Char XMLTAG_FOCUSSABLE [] = "Focussable"
 XML tag to be used writing focussable-state into a stream.
 
static const eC_Char XMLTAG_GRAYEDOUT [] = "GrayedOut"
 XML tag to be used writing grayedout-state into a stream.
 
static const eC_Char XMLTAG_HEIGHT [] = "Height"
 XML tag to be used writing height into a stream.
 
static const eC_Char XMLTAG_INVISIBLE [] = "Invisible"
 XML tag to be used writing invisible-state into a stream.
 
static const eC_Char XMLTAG_OBJECTID [] = "ObjectID"
 XML tag to be used writing object id into a stream.
 
static const eC_Char XMLTAG_OVERRIDDENNEIGHBORS [] = "OverriddenNeighbors"
 XML tag to be used writing overridden neighbors into a stream.
 
static const eC_Char XMLTAG_WIDTH [] = "Width"
 XML tag to be used writing width into a stream.
 
static const eC_Char XMLTAG_XPOS [] = "XPos"
 XML tag to be used writing x-position into a stream.
 
static const eC_Char XMLTAG_YPOS [] = "YPos"
 XML tag to be used writing y-position into a stream.
 
- Static Public Attributes inherited from CGUIBehaviour
static const eC_Char XMLTAG_BEHAVIOURCLASSID [] = "BehaviourClassID"
 XML tag to be used when writing a behaviour class ID into a stream.
 
- Static Public Attributes inherited from CGUIStreamableObject
static const eC_Char XMLTAG_CLASSVERSION [] = "ClassVersion"
 

Detailed Description

This ScrollView implementation is optimized for touch screens and supports scrolling by dragging.

touch_scroll_view.png
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:

// Create a touch scrollview.
CGUITouchScrollView* pkTouchScrollView = new CGUITouchScrollView(this,
eC_FromInt(0), eC_FromInt(0),
eC_FromInt(200), eC_FromInt(300));
// activate kinetic scrolling in vertical direction.
pkTouchScrollView->SetKineticScrolling(true, false);
// activate "bounce back" when reaching the end of the scrollarea
pkTouchScrollView->SetBounceBackFactor(eC_FromFloat(0.5));
// center the active object vertically in the center of the view.
pkTouchScrollView->SetDestination(CGUITouchScrollView::DIRECTION_VERTICALLY, pkTouchScrollView->GetHalfHeight());
// Add some children
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);
}

Constructor & Destructor Documentation

◆ CGUITouchScrollView()

CGUITouchScrollView::CGUITouchScrollView ( CGUICompositeObject *const  pParent,
const eC_Value &  vX,
const eC_Value &  vY,
const eC_Value &  vWidth,
const eC_Value &  vHeight,
const ObjectHandle_t eID = NO_HANDLE 
)

CGUITouchScrollView constructor.

Parameters
pParentPointer to parent object.
vXX position relative to its parent object.
vYY position relative to its parent object.
vWidthWidth of this object.
vHeightHeight of this object.
eIDObject Identifier of this object

Member Function Documentation

◆ CalcDistanceToObject()

eC_Value CGUITouchScrollView::CalcDistanceToObject ( const CGUIObject pkObject,
const eC_Value &  vAbsPosInXDirection,
const eC_Value &  vAbsPosInYDirection 
) const
protected

Helper function for FindClosestObjectToPosition(). Calculates the distance based on the destination direction.

Parameters
pkObjectThe object to calculate the distance to.
vAbsPosInXDirectionAbsX of the point to calculate the distance to.
vAbsPosInYDirectionAbsY of the point to calculate the distance to.
Returns
The distance or eC_MAXVALUE if no destination direction is set.

◆ DoAnimate()

void CGUITouchScrollView::DoAnimate ( const eC_Value &  vTimes = eC_FromInt(1))
protectedvirtual

Implements the scrolling animation for kinetic scrolling and scrolling the active object to the target position.

Parameters
vTimesthe correction factor

Reimplemented from CGUIScrollView.

◆ DoButtonDown()

eC_Bool CGUITouchScrollView::DoButtonDown ( const eC_Value &  vAbsX,
const eC_Value &  vAbsY 
)
protectedvirtual

Called when the mouse button or finger is pressed down over an object.

Note
DoButtonDown() should work on the absolute positions of this object, that were set at the time of the passed redraw, as the user expects to click on what he sees and not to click on the object in a newer and probably intermediate state that he currently does not see in this state. Thus, to calculate the relative position (where the object was pressed relative to the origin of this object) from the vAbsY argument you must do it like this: vMyRelYPos = vAbsY - GetAbsYPos().
Parameters
vAbsXX-position in screen coordinates where the click occurred
vAbsYY-position in screen coordinates where the click occurred
Returns
True The event has been handled.
False The event has not been handled. In this base implementation always returns False.

Reimplemented from CGUIBehaviour.

◆ DoClick()

eC_Bool CGUITouchScrollView::DoClick ( const eC_Value &  vAbsX,
const eC_Value &  vAbsY 
)
protectedvirtual

Called when the object receives a click event. A click can e.g., be the result of a mouse click, a finger press/release sequence on touchscreens, or be triggered by a GK_ACTION keyboard event.

Note
DoClick() should work on the absolute positions of this object, that were set at the time of the passed redraw, as the user expects to click on what he sees and not to click on an object in a newer and probably intermediate state that he currently does not see. Thus, to calculate the relative position (where the mouse button was pressed and released at the same position for in a certain time span, relative to the origin of this object) from the vAbsY argument you must do it like this: vMyRelYPos = vAbsY - GetAbsYPos().
Parameters
vAbsXX-position in screen coordinates where the click occurred
vAbsYY-position in screen coordinates where the click occurred
Returns
True The event has been handled.
False The event has not been handled. In this base implementation it always returns False.

Reimplemented from CGUIBehaviour.

◆ DoDrag()

eC_Bool CGUITouchScrollView::DoDrag ( const eC_Value &  vDeltaX,
const eC_Value &  vDeltaY,
const eC_Value &  vAbsX,
const eC_Value &  vAbsY 
)
protectedvirtual

Called when the object receives a Drag event. Drags are typically created if the mouse is being used while a mouse-button is being pressed, or if the user moves his finger over a touchscreen.

Parameters
vDeltaXrelative movement in x-direction since the last call of DoDrag/ButtonDown
vDeltaYrelative movement in y-direction since the last call of DoDrag/ButtonDown
vAbsXcurrent X-position in screen coordinates of the mouse
vAbsYcurrent Y-position in screen coordinates of the mouse
Returns
True If the event has been handled.
false Else.

Store time stamp of received event

Reimplemented from CGUIBehaviour.

◆ DoDragEnd()

eC_Bool CGUITouchScrollView::DoDragEnd ( const eC_Value &  vAbsX,
const eC_Value &  vAbsY 
)
protectedvirtual

Called on the dragged object (=the object on which the initial ButtonDown-event occurred) when the mouse button is released after a drag event.

Parameters
vAbsXcurrent X-position in screen coordinates of the mouse
vAbsYcurrent Y-position in screen coordinates of the mouse
Returns
True If the event has been handled.
false Else.

Reimplemented from CGUIBehaviour.

◆ FindClosestObjectToPosition()

CGUIObject * CGUITouchScrollView::FindClosestObjectToPosition ( const CGUICompositeObject pSearchInObject,
const eC_Value &  vAbsPosInXDirection,
const eC_Value &  vAbsPosInYDirection 
) const

Search the closest focusable child to an absolute position. The distance is calculated based on the destination direction. If not only scrolling to direct children (see SetScrollToImmediateChildrenOnly()), this function is called recursively.

Parameters
pSearchInObjectWhich object to search in.
vAbsPosInXDirectionX coordinate of the point the distance shall be calculated to.
vAbsPosInYDirectionY coordinate of the point the distance shall be calculated to.
Returns
The closest object (in destination direction) or NULL if no target direction was set.

◆ GetAbsDestinationPosX()

eC_Value CGUITouchScrollView::GetAbsDestinationPosX ( ) const

Returns the horizontal destination position in absolute coordinates or -1 if no target position or no target direction was set.

Returns
horizontal destination position

◆ GetAbsDestinationPosY()

eC_Value CGUITouchScrollView::GetAbsDestinationPosY ( ) const

Returns the vertical destination position in absolute coordinates or -1 if no target position or no target direction was set.

Returns
vertical destination position

◆ GetActiveObject()

CGUIObject* CGUITouchScrollView::GetActiveObject ( ) const
inline
Returns
Returns the currently active object. The active Object is NULL while a kinetic scrolling animation is ongoing.

◆ GetBounceBackFactor()

eC_Value CGUITouchScrollView::GetBounceBackFactor ( ) const
inline
Returns
Returns the BounceBackFactor which is used when an edge of the scroll view is reached during an animation.

◆ GetDestinationDirection()

CGUICommonEnums::AxisAlignment_t CGUITouchScrollView::GetDestinationDirection ( ) const
inline
Returns
Returns the destination direction. The destination direction determines if the target position is used for horizontal or vertical scrolling.

◆ GetDestinationPosition()

eC_Value CGUITouchScrollView::GetDestinationPosition ( ) const
inline
Returns
Returns the relative target position or -1 if no destination position is set.

◆ GetElementIndexOfActiveObject()

eC_Int CGUITouchScrollView::GetElementIndexOfActiveObject ( ) const
Returns
Returns the index of the active object in the childlist or -1 if the active object is NULL.

◆ GetValidScrollTarget()

CGUIObject * CGUITouchScrollView::GetValidScrollTarget ( CGUIObject pActiveObject)
protected

Checks if the given object is a valid target for scrolling and returns the best suitable target object for scrolling. Therefore, the given object must...

  1. not be NULL
  2. be a descendant of the container
  3. and if ScrollToImmediateChildrenOny is True it needs to be an immediate child of the container.
    Parameters
    pActiveObjectPointer to object to which the view shall scroll
    Returns
    Object which is a valid scrolling target, or NULL if none could be found

◆ HasKineticScrollingHorizontal()

eC_Bool CGUITouchScrollView::HasKineticScrollingHorizontal ( ) const
inline

Determines if kinetic scrolling is activated for horizontal scrolling.

See also
SetKineticScrolling()
Returns
True if flag set, False otherwise

◆ HasKineticScrollingVertical()

eC_Bool CGUITouchScrollView::HasKineticScrollingVertical ( ) const
inline

Determines if kinetic scrolling is activated for vertical scrolling.

See also
SetKineticScrolling()
Returns
True if flag set, False otherwise

◆ HasTargetPosition()

eC_Bool CGUITouchScrollView::HasTargetPosition ( ) const
protected
Returns
Determines if a target position is set.

◆ HasTargetPositionInDragDirection()

eC_Bool CGUITouchScrollView::HasTargetPositionInDragDirection ( ) const
protected
Returns
Determines if a target position is set in drag direction.

◆ HasTargetPositionInScrollDirection()

eC_Bool CGUITouchScrollView::HasTargetPositionInScrollDirection ( ) const
protected
Returns
Determines if a target position is set in scroll direction.

◆ ReadFromStream()

void CGUITouchScrollView::ReadFromStream ( )
virtual

Reads composite object attributes and children from stream. Reads attributes from the streaming file. Only for use with GUIFactoryManager.

See also
CGUIObject::ReadFromStream()
Exceptions
CGUIStreamingControlExceptionWhen catching a CGUIStreamingControlException from a child, this method adds the object from the exception, resets the object pointer to 'this', then re-throws.

Reimplemented from CGUIScrollView.

◆ ScrollsToImmediateChildrenOnly()

eC_Bool CGUITouchScrollView::ScrollsToImmediateChildrenOnly ( ) const
inline

Determines if only direct children or all descendants are checked when searching the closest object.

See also
SetScrollToImmediateChildrenOnly()
Returns
True if flag set, False otherwise

◆ ScrollToObject()

void CGUITouchScrollView::ScrollToObject ( CGUIObject pObjectToScrollTo)
virtual

Sets the object to the target position. This does not trigger a scrolling animation. The position is set directly.

Parameters
pObjectToScrollToThe object to scroll to.
See also
ScrollToObjectAnimated.

Reimplemented from CGUIScrollView.

◆ ScrollToObjectAnimated()

void CGUITouchScrollView::ScrollToObjectAnimated ( CGUIObject pObjectToScrollTo)
virtual

Scrolls the object to the target position by starting an animation. The animation speed depends on the inertia.

Parameters
pObjectToScrollToThe object to scroll to.

◆ SetActiveObjectDistanceFactor()

void CGUITouchScrollView::SetActiveObjectDistanceFactor ( const eC_Value  vActiveObjectDistanceFactor)
inline

Sets the factor by which the active object's distance to the target position is multiplied during calls to FindClosestObjectToPosition(). This is useful if the TouchScrollView shall move to the next child object even if mathematically the activeobject would still be closest to the target position. A typical use-case would be a TouchScrollView, where each entry covers a large area, so that users would have to perform long drag-distances in order to get to the next entry.

Parameters
vActiveObjectDistanceFactorFactor for distance calculations with the active object

◆ SetBounceBackFactor()

void CGUITouchScrollView::SetBounceBackFactor ( const eC_Value  vBounceBackFactor)
inline

Set the Bounceback factor. Sensible values lie between 0 and 1. Set to 0 if no bounce back shall be done and to 1 if a full bounce back shall be done. Technically, the scroll speed is multiplied by the negative bounce back factor when an edge of the scroll view is reached during an animation.

Parameters
vBounceBackFactorThe bounce back factor for the animation speed.

◆ SetDestination()

void CGUITouchScrollView::SetDestination ( const CGUICommonEnums::AxisAlignment_t  eDestinationDirection,
const eC_Value  vRelDestinationPos = eC_FromInt(-1) 
)
inline

Set a destination for the active object.

Parameters
eDestinationDirectionDirection to decide if the position is used as X-coordinate for horizontal scrolling or as Y-coordinate for vertical scrolling. Use DIRECTION_NONE to deactivate the target position.
vRelDestinationPosThe relative destination position to scroll the active object to.

◆ SetKineticScrolling()

void CGUITouchScrollView::SetKineticScrolling ( const eC_Bool  bVertical,
const eC_Bool  bHorizontal 
)
inline

Enable / disable kinetic scrolling.

Parameters
bVerticalTrue to enable vertical kinetic scrolling, else False.
bHorizontalTrue to enable horizontal kinetic scrolling, else False.

◆ SetScrollToImmediateChildrenOnly()

void CGUITouchScrollView::SetScrollToImmediateChildrenOnly ( const eC_Bool  bOnlyImmediateChildren)
inline

If a target position is set then the scroll view will always center an object on this target position. It will always choose the closest object to the target position in case of dragging or kinetic scroling, or to the click position in case of a click. This parameter determines if only direct children of the scroll view (=children whose parent is the container, or one of its siblings) are checked when searching the closest object or all descendants.

Parameters
bOnlyImmediateChildrenIf true only direct children are checked, if false all descendants are checked.

◆ WriteToStream()

void CGUITouchScrollView::WriteToStream ( const eC_Bool  bWriteClassID = false)
virtual

Writes all object attributes to the streaming file. StreamWriter has to be initialized. Only for use with GUIStreamWriter.

Parameters
bWriteClassIDThis flag is used to select if writing of ControlID, leading and trailing tags is performed. Only GUIStreamWriter and GUICompositeObject have to set this flag true.
See also
CGUIStreamWriter

Reimplemented from CGUIScrollView.

Member Data Documentation

◆ m_eScrollAnimationDirection

CGUICommonEnums::AxisAlignment_t CGUITouchScrollView::m_eScrollAnimationDirection
protected

Holds the direction of the scroll animation. This is set in DoDrag based on the drag direction, or in DoClick based on the target positions which are set when scrolling to the closest object.

◆ m_vStartScrollSpeedX

eC_Value CGUITouchScrollView::m_vStartScrollSpeedX
protected

Speed of animation at the beginning of a kinetic animation.

scrollspeed x


The documentation for this class was generated from the following files: