You.i Engine
CYIListView Class Reference

Detailed Description

A class that provides streaming functionality in a scrolling view.

View Template Specification

The 'placeholder' property may be applied to contents of the view template in order to prevent their instantiation. Since the items of CYIListView are dynamically populated at run-time, they can be configured using the view template, or by configuring placeholders. The placeholder properties can be retreived from the list using GetItemProperties() with the CYIViewTemplate name for the placeholder's layout. The preview tool will make use of these placeholders in the CYIListView's preview.

Layout

A layout must be assigned to a list view before it can be used, as the layout defines the ordering of items within the list view. If a layout is not specified when the list view is initialized, an instance of CYIColumnLayout is assigned automatically.

The initial size of streamable items within a list view is set through the associated adapter.

The layout configuration object for the streamable items can also be configured through the associated adapter. By default, for view-specific adapters, the layout configuration for the streamable items is read from the view's template and the placeholder layers in the list.

Limitations

  • If an item is streamed in that is smaller than its initial size (as declared in the associated adapter), it may cause more items to get streamed in on the next frame. This can cause visual glitches where items appear in the visible region after a few frames. To avoid this, ensure that the initial size of the item is the minimum possible size for that item.
  • If an item is streamed in that is smaller or larger than its initial size (as declared in the associated adapter), it may cause the current scroll position to get offset. This typically only happens when scrolling 'back' towards the start of the list view.

#include <view/YiListView.h>

Inheritance diagram for CYIListView:

Classes

class  PagingStrategy
 

Public Member Functions

 CYIListView ()
 
virtual ~CYIListView ()
 
virtual bool Init () override
 
void SetAdapter (std::unique_ptr< CYINodeAdapter > pAdapter)
 
const CYINodeAdapterGetAdapter () const
 
CYINodeAdapterGetAdapter ()
 
bool RequestFocusOnItem (size_t index, CYIFocus::Direction direction=CYIFocus::Direction::Forward, CYIFocus::FocusRootRule focusRootRule=CYIFocus::FocusRootRule::DescendantsUpdateContext, const CYIAABB &previousFocusRect=CYIAABB())
 
bool IsStreamedIn (size_t index) const
 
CYISceneNodeGetStreamedNode (size_t index) const
 
size_t GetItemIndex (CYISceneNode *pStreamedItem) const
 
size_t GetFocusedItemIndex () const
 
void SetStreamingRegionFactor (float factor)
 
float GetStreamingRegionFactor () const
 
void SetItemProperties (const CYIString &viewTemplateName, std::unique_ptr< IYIPropertiesSource > pProperties)
 
IYIPropertiesSourceGetItemProperties (const CYIString &viewTemplateName) const
 
virtual void RevealItem (size_t index, uint32_t duration, CYITimeInterpolator *pInterpolator=nullptr)
 
bool IsInVisibleRegion (size_t index) const
 
size_t GetChildIndex (size_t itemIndex) const
 
- Public Member Functions inherited from CYIScrollingView
 CYIScrollingView ()
 
virtual ~CYIScrollingView ()
 
void ScrollToHorizontalPosition (float normalizedPosition, uint32_t durationMs, CYITimeInterpolator *pInterpolator=nullptr)
 
void ScrollToHorizontalPosition (float normalizedPosition)
 
void ScrollToVerticalPosition (float normalizedPosition, uint32_t durationMs, CYITimeInterpolator *pInterpolator=nullptr)
 
void ScrollToVerticalPosition (float normalizedPosition)
 
void ScrollToPosition (const glm::vec2 &normalizedPositions, uint32_t durationMs=0, CYITimeInterpolator *pInterpolator=nullptr)
 
void ScrollByHorizontalViewSize (ScrollDirection scrollDirection, uint32_t durationMs=0, CYITimeInterpolator *pInterpolator=nullptr)
 
void ScrollByVerticalViewSize (ScrollDirection scrollDirection, uint32_t durationMs=0, CYITimeInterpolator *pInterpolator=nullptr)
 
float GetHorizontalPosition () const
 
float GetVerticalPosition () const
 
void Reveal (CYISceneNode *pNode, uint32_t durationMs, CYITimeInterpolator *pInterpolator=nullptr)
 
void DisableHorizontalScrolling ()
 
void EnableHorizontalScrolling ()
 
void SetHorizontalScrollingEnabled (bool enabled)
 
bool IsHorizontalScrollingEnabled () const
 
void DisableVerticalScrolling ()
 
void EnableVerticalScrolling ()
 
void SetVerticalScrollingEnabled (bool enabled)
 
bool IsVerticalScrollingEnabled () const
 
void SetHorizontalOverpullDistance (float distance)
 
float GetHorizontalOverpullDistance () const
 
void SetVerticalOverpullDistance (float distance)
 
float GetVerticalOverpullDistance () const
 
void SetHorizontalOverpullRule (OverpullRule rule)
 
void SetVerticalOverpullRule (OverpullRule rule)
 
OverpullRule GetHorizontalOverpullRule () const
 
OverpullRule GetVerticalOverpullRule () const
 
void SetHorizontalScrollingAreaLayoutMode (LayoutMode mode)
 
void SetVerticalScrollingAreaLayoutMode (LayoutMode mode)
 
LayoutMode GetHorizontalScrollingAreaLayoutMode () const
 
LayoutMode GetVerticalScrollingAreaLayoutMode () const
 
bool HasHorizontalOverflow () const
 
bool HasVerticalOverflow () const
 
const CYIAABBGetScrollableRegion () const
 
void StopScrolling ()
 
void StopHorizontalScrolling ()
 
void StopVerticalScrolling ()
 
void SetHorizontalCarouselRule (CarouselRule carouselRule)
 
void SetVerticalCarouselRule (CarouselRule carouselRule)
 
CarouselRule GetHorizontalCarouselRule () const
 
CarouselRule GetVerticalCarouselRule () const
 
void SetCascadeTimelineGroupDelay (uint32_t delayMs)
 
uint32_t GetCascadeTimelineGroupDelay () const
 
CYITimelineGroupGetCascadeTimelineGroup (TimelineType type=TimelineType::In)
 
bool IsInVisibleRegion (const CYISceneNode *pCandidate) const
 
void SetHorizontalMagnets (const Magnets &magnets)
 
void RemoveHorizontalMagnets ()
 
Magnets GetHorizontalMagnets () const
 
void SetHorizontalSwipeOneItemEnabled (bool swipeOneItem)
 
bool IsHorizontalSwipeOneItemEnabled () const
 
void SetVerticalMagnets (const Magnets &magnets)
 
void RemoveVerticalMagnets ()
 
Magnets GetVerticalMagnets () const
 
void SetVerticalSwipeOneItemEnabled (bool swipeOneItem)
 
bool IsVerticalSwipeOneItemEnabled () const
 
void EnableMagnetism (CYISceneNode *pNode)
 
void DisableMagnetism (CYISceneNode *pChild)
 
bool IsMagnetic (const CYISceneNode *pNode) const
 
bool IsScrollingHorizontally () const
 
bool IsScrollingVertically () const
 
float GetHorizontalTrackpadLeaveFriction () const
 
void SetHorizontalTrackpadLeaveFriction (float friction)
 
float GetVerticalTrackpadLeaveFriction () const
 
void SetVerticalTrackpadLeaveFriction (float friction)
 
size_t GetHorizontalPageCount () const
 
size_t GetCurrentHorizontalPage () const
 
size_t GetVerticalPageCount () const
 
size_t GetCurrentVerticalPage () const
 
void SetHorizontalPagingStrategy (std::unique_ptr< PagingStrategy > PagingStrategy)
 
void SetVerticalPagingStrategy (std::unique_ptr< PagingStrategy > PagingStrategy)
 
const std::set< CYISceneNode * > & GetVisibleChildren () const
 
virtual void OnPreBuildDrawList (std::vector< IYIRenderer::Command > *pDrawList, std::vector< CYIAbstractCameraSceneNode *> *pDrawWithCameraList) override
 
CameraType GetCameraType () const
 
virtual bool HandlesFocusInDescendants () const override
 
virtual bool ContainsFocusableDescendant (const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const override
 
virtual bool RequestFocus (CYIFocus::Direction direction=CYIFocus::Direction::Forward, CYIFocus::FocusRootRule focusRootRule=CYIFocus::FocusRootRule::DescendantsUpdateContext, const CYIAABB &previousFocusRect=CYIAABB(), const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) override
 
virtual CYISceneViewFindNextFocusInDescendants (const CYISceneView *pCurrentFocusView, CYIFocus::Direction direction, CYIAABB &screenSpaceFocusRegion, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const override
 
virtual void FocusChangedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus) override
 
virtual void FocusGainedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus) override
 
- Public Member Functions inherited from CYISceneView
 CYISceneView ()
 
virtual ~CYISceneView ()
 
bool BuildFromTemplate (CYISceneManager *pSceneManager, const std::shared_ptr< CYIAssetViewTemplate > &pAssetViewTemplate, CYISceneManager::MissingClassHandlingMode missingHandlingMode=CYISceneManager::MissingClassHandlingMode::Abort)
 
bool IsInitialized () const
 
void SetClippingAreaNode (CYISceneNode *pClippingNode)
 
virtual CYIOptional< CYIStringViewGetProperty (CYIStringView propertyName) const override
 
bool GetProperty (CYIStringView propertyName, CYIString *pValue) const
 
virtual std::map< CYIString, CYIStringGetProperties () const override
 
virtual void ForEachProperty (const std::function< void(const CYIString &, const CYIString &)> &action) const override
 
virtual bool HasProperties () const override
 
void EnableDefaultHitZone ()
 
bool IsResponsiveLayoutEnabled () const
 
void EnableResponsiveLayout ()
 
void DisableResponsiveLayout ()
 
void AddAnchor (EYIAnchorType anchorType)
 
YI_ANCHOR_DATA GetAnchor (EYIAnchorType anchorType) const
 
virtual const CYISceneView::AssetRequirementGetAssetRequirements (uint32_t *pRequirementCount)
 
CYIAbstractTimelineGetInTimeline () const
 
CYIAbstractTimelineGetOutTimeline () const
 
CYIAbstractTimelineGetFocusInTimeline () const
 
CYIAbstractTimelineGetFocusOutTimeline () const
 
bool HasFocus () const
 
void SetFocusable (bool focusable)
 
bool IsFocusable () const
 
bool CanBeFocused () const
 
void SetNextFocus (CYISceneView *pView, CYIFocus::Direction direction)
 
CYISceneViewGetNextFocus (CYIFocus::Direction direction) const
 
virtual void SetInitiallyFocusedView (CYISceneView *pView, InitialFocusLifetime initialFocusLifetime=InitialFocusLifetime::Persistent)
 
CYISceneViewGetInitiallyFocusedView () const
 
CYISceneView::InitialFocusLifetime GetInitialFocusLifetime () const
 
CYISceneViewFindNextFocus (CYIFocus::Direction direction, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const
 
CYISceneViewFindNextFocus (CYIFocus::Direction direction, CYIAABB &screenSpaceFocusRegion, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const
 
const CYISceneNodeGetFocusRoot () const
 
CYISceneViewGetFocusHandler () const
 
virtual void OnFocusGained ()
 
virtual void FocusGained ()
 
virtual void OnFocusLost ()
 
virtual void FocusLost ()
 
const std::shared_ptr< CYIAssetViewTemplate > & GetViewTemplate () const
 
const std::vector< CYIString > & GetChildTemplateNames ()
 
template<typename T >
T * BuildTimeline (const CYIString &markerName)
 
CYITimelineBuildTimeline (const CYIString &markerName, int32_t startOffset, int32_t duration)
 
CYIAbstractTimelineGetTimeline (CYIMarkerData::ID id)
 
virtual CYIAbstractTimelineGetTimeline (CYIStringView markerName, TimelineGetMode mode=TimelineGetMode::GetDefault)
 
std::map< CYIString, CYITimeline * > GetSimpleTimelines () const
 
std::map< CYIString, CYIAbstractTimeline * > GetTimelines () const
 
bool FindTimeline (CYIAbstractTimeline *&pTimeline, CYIStringView markerName, FetchType type, const CYIString &tag="", TimelineGetMode mode=TimelineGetMode::GetDefault)
 
CYITimelineGroupGetTimelineGroup (CYIStringView markerName)
 
void BuildAnchorList ()
 
virtual void Reset ()
 
void SetLayout (std::unique_ptr< CYILayout > pLayout)
 
const CYILayoutGetLayout () const
 
CYILayoutGetLayout ()
 
- Public Member Functions inherited from CYISceneNode
 CYISceneNode ()
 
virtual ~CYISceneNode ()
 
bool IsInitialized () const
 
void ForceDirty ()
 
void SetDirtyFlag (DirtyFlag dirtyFlag)
 
DirtyFlag GetDirtyFlag () const
 
DirtyFlag GetPreviousDirtyFlag () const
 
const CYIStringGetName () const
 
CYIString GetUniqueName () const
 
void SetSceneManager (CYISceneManager *pSceneManager)
 
void SetName (const CYIString &name)
 
int32_t GetID () const
 
void SetID (int32_t id)
 
uint64_t GetUniqueID () const
 
bool AddChild (std::unique_ptr< CYISceneNode > pSceneNode)
 
bool AddChild (std::unique_ptr< CYISceneNode >, size_t index)
 
bool InsertChildAfter (CYISceneNode *pRefNode, std::unique_ptr< CYISceneNode > pSceneNode)
 
std::unique_ptr< CYISceneNodeRemoveChild (CYISceneNode *pSceneNode)
 
bool ReorderChild (size_t fromIndex, size_t toIndex)
 
CYITransformGetTransform ()
 
CYISceneNodeGetParent () const
 
bool ChangeParent (CYISceneNode *pParent)
 
CYISceneNodeGetDrawParent () const
 
bool IsAncestorOf (const CYISceneNode *pNode) const
 
CYISceneManagerGetSceneManager () const
 
size_t GetChildCount () const
 
uint32_t GetChildCountRecursive () const
 
CYISceneNodeGetChild (size_t index) const
 
Iterator begin (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const
 
Iterator end (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const
 
ReverseIterator rbegin (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const
 
ReverseIterator rend (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const
 
CYISceneNodeGetChild (const CYIString &name) const
 
size_t GetDrawChildCount () const
 
CYISceneNodeGetDrawChild (size_t index) const
 
CYISceneNodeGetDrawChildByID (int32_t id) const
 
template<class YI_SCENE_NODE_SUBCLASS >
YI_SCENE_NODE_SUBCLASS * GetChild (uint32_t targetMatchedNodeCount=1) const
 
template<class YI_SCENE_NODE_SUBCLASS >
std::list< YI_SCENE_NODE_SUBCLASS * > GetChildren () const
 
template<class YI_SCENE_NODE_SUBCLASS >
std::list< YI_SCENE_NODE_SUBCLASS * > GetDrawChildren () const
 
size_t GetIndexOfChild (const CYISceneNode *pSceneNode) const
 
size_t GetIndexOfDrawChild (const CYISceneNode *pSceneNode) const
 
void Show ()
 
void Hide ()
 
void SetVisibility (bool visible)
 
void SetOpacity (float opacity)
 
float GetCompositeOpacity () const
 
float GetLocalOpacity () const
 
bool IsVisible () const
 
bool IsTrulyVisible () const
 
bool IsPerceptible () const
 
CYISceneNodeGetNode (CYIStringView name)
 
CYISceneNodeGetNode (CYIStringView name, const CYIRuntimeTypeInfo &enforceClassType)
 
CYISceneNodeGetNode (const CYIRuntimeTypeInfo &enforceClassType)
 
CYISceneNodeGetNodeAfterTarget (const CYIRuntimeTypeInfo &enforceClassType, CYISceneNode *pStartAfterTarget)
 
template<class YI_SCENE_NODE_SUBCLASS >
YI_SCENE_NODE_SUBCLASS * GetNode (CYIStringView name)
 
CYISceneNodeGetNode (const int32_t id)
 
CYISceneNodeGetNode (const int32_t id, const CYIRuntimeTypeInfo &enforceClassType)
 
CYISceneNodeGetNodeWithUniqueID (uint64_t uniqueID)
 
template<class YI_SCENE_NODE_SUBCLASS >
bool FindNode (YI_SCENE_NODE_SUBCLASS *&pNode, CYIStringView nodeName, FetchType type, const CYIString &tag)
 
std::list< CYISceneNode * > GetNodes (CYIStringView name)
 
std::list< CYISceneNode * > GetNodes (int32_t id)
 
std::list< CYISceneNode * > GetNodes (const CYIRuntimeTypeInfo &enforceClassType)
 
template<class YI_SCENE_NODE_SUBCLASS >
const YI_SCENE_NODE_SUBCLASS * GetNode (uint32_t targetMatchedNodeCount=1) const
 
template<class YI_SCENE_NODE_SUBCLASS >
YI_SCENE_NODE_SUBCLASS * GetNode (uint32_t targetMatchedNodeCount=1)
 
void SetMesh (const std::shared_ptr< CYIMesh > &pMesh)
 
bool SetNPatchBitmap (const std::shared_ptr< CYIBitmap > &pNPatchBitmap)
 
void ClearNPatch ()
 
void SetMaterial (const std::shared_ptr< CYIMaterial > &pMaterial, size_t index=0)
 
void AddEffect (const std::shared_ptr< CYIEffect > &pEffect)
 
void RemoveEffect (const std::shared_ptr< CYIEffect > &pEffect)
 
size_t GetEffectCount () const
 
const std::shared_ptr< CYIEffect > & GetEffect (size_t index) const
 
void ConnectEffectsToTimelines (const CYITimelineTrack *pTrack)
 
void AddMask (std::unique_ptr< CYIMask > pMask)
 
std::unique_ptr< CYIMaskRemoveMask (const CYIMask *pMask)
 
size_t GetMaskCount () const
 
const CYIMaskGetMask (size_t index) const
 
CYIMaskGetMask (size_t index)
 
const std::shared_ptr< CYIMesh > & GetMesh () const
 
const std::shared_ptr< CYIBitmap > & GetNPatchBitmap () const
 
size_t GetMaterialCount () const
 
const std::shared_ptr< CYIMaterial > & GetMaterial (size_t index=0) const
 
const std::shared_ptr< IYIUniformBufferObject > & GetShaderUniforms () const
 
void SetMeshTransform (const glm::mat4 &transform)
 
void DestroyChildren ()
 
glm::mat4 GetLocalTransform () const
 
glm::mat4 GetWorldTransform () const
 
bool Intersects (const CYISceneNode *pNode) const
 
void SetRenderTarget (const std::shared_ptr< CYIRenderTarget > &pRenderTarget)
 
const std::shared_ptr< CYIRenderTarget > & GetRenderTarget () const
 
virtual void OnPostBuildDrawList (std::vector< IYIRenderer::Command > *pDrawList)
 
const CYIAABBGetWorldAABB () const
 
const CYIAABBGetLocalAABB () const
 
void SetAnchorPoint (const glm::vec3 &anchorPoint)
 
void SetAnchorPoint (float x, float y, float z)
 
void SetAnchorPointX (float x)
 
void SetAnchorPointY (float y)
 
void SetAnchorPointZ (float z)
 
void SetPosition (const glm::vec3 &position)
 
void SetPosition (float x, float y, float z)
 
void SetPositionX (float x)
 
void SetPositionY (float y)
 
void SetPositionZ (float z)
 
void SetRotation (const glm::vec3 &rotation)
 
void SetRotation (float pitchDegrees, float yawDegrees, float rollDegrees)
 
void SetRotationX (float pitchDegrees)
 
void SetRotationY (float yawDegrees)
 
void SetRotationZ (float rollDegrees)
 
void SetOrientation (float pitchDegrees, float yawDegrees, float rollDegrees)
 
void SetOrientation (const glm::quat &orientation)
 
void SetScale (const glm::vec3 &scale)
 
void SetScale (float factorX, float factorY, float factorZ)
 
void SetScaleX (float factor)
 
void SetScaleY (float factor)
 
void SetScaleZ (float factor)
 
const glm::vec3 & GetPosition () const
 
const glm::vec3 & GetScale () const
 
const glm::vec3 & GetWorldScale () const
 
const glm::vec3 & GetWorldSurfaceScale () const
 
const glm::vec3 & GetRotation () const
 
const glm::quat & GetOrientation () const
 
const glm::vec3 & GetAnchorPoint () const
 
virtual void SetSize (const glm::vec3 &size, bool dirtyLayout=true)
 
const glm::vec3 & GetSize () const
 
const glm::vec3 & GetInitialSize () const
 
void SetMeasuredSize (const glm::vec3 &measuredSize)
 
const glm::vec3 & GetMeasuredSize () const
 
void SetInternalCustomTimelineValue (uint32_t trackID, const CYIVariant &value)
 
virtual void SetCustomTimelineValue (uint32_t trackID, const CYIVariant &value)
 
void SetClippingOn ()
 
void SetClippingOff ()
 
bool GetClipping () const
 
void SetClippingBox (const CYIAABB &worldBox)
 
const CYIAABBGetClippingBox () const
 
void StartPropertyAnimation (PropertyAnimation::Type propType, float from, float to, uint32_t durMs, CYITimeInterpolator *pTimeInterpolator=nullptr, bool dirtyLayout=true)
 
void StopPropertyAnimation (PropertyAnimation::Type propType)
 
void UpdateLocalSpaceCollision (CYIActionEvent *pActionEvent)
 
void UpdateEventForLocalSpace (CYIActionEvent *pActionEvent, glm::vec3 &rayOrigin, glm::vec3 &rayNonOriginPoint) const
 
bool IsBoundingBoxHit (const CYIRay &worldSpaceRay) const
 
bool IsMeshHit (const CYIRay &worldSpaceRay) const
 
void DumpTree () const
 
void StartCaptureKeyboardEvents ()
 
void StopCaptureKeyboardEvents ()
 
void StartCaptureTrackpadEvents ()
 
void StopCaptureTrackpadEvents ()
 
void StartCapturePointerEvents (uint8_t pointerID)
 
void StopCapturePointerEvents (uint8_t pointerID)
 
bool DrawBehindChildren (CYISceneNode *pSceneNode, bool *pChanged=nullptr)
 
bool DrawInFrontOfChildren (CYISceneNode *pSceneNode, bool *pChanged=nullptr)
 
bool DrawBehind (CYISceneNode *pSceneNode, bool *pChanged=nullptr)
 
bool DrawInFront (CYISceneNode *pSceneNode, bool *pChanged=nullptr)
 
bool IsFocusRoot () const
 
void SetIsFocusRoot (bool isFocusRoot)
 
virtual void OnFocusGainedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
 
virtual void OnFocusLostInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
 
virtual void FocusLostInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
 
virtual void OnFocusChangedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
 
void SetUseLocalTransformAndAlpha (bool use)
 
bool GetProperty (CYIStringView propertyName, CYIString *pValue) const
 
void SetProperty (const CYIString &propertyName, const CYIString &propertyValue)
 
std::shared_ptr< CYISceneNodeProxyGetSceneNodeProxy () const
 
void SetLayoutConfig (std::unique_ptr< CYILayoutConfig > pLayoutConfig)
 
const CYILayoutConfigGetLayoutConfig (LayoutConfigFetchMode fetchMode=LayoutConfigFetchMode::LazyInstantiate) const
 
CYILayoutConfigGetLayoutConfig (LayoutConfigFetchMode fetchMode=LayoutConfigFetchMode::LazyInstantiate)
 
void SetLayoutState (std::unique_ptr< CYILayoutState > pLayoutState)
 
const CYILayoutStateGetLayoutState () const
 
CYILayoutStateGetLayoutState ()
 
void RequestLayout ()
 
LayoutDirtyFlag GetLayoutDirtyFlag () const
 
virtual void SetLayoutDirtyFlag (LayoutDirtyFlag flag)
 
CYIAccessibilityAttributes::Accessible GetAccessible () const
 
void SetAccessible (CYIAccessibilityAttributes::Accessible accessible)
 
const CYIAccessibilityAttributesGetAccessibilityAttributes () const
 
std::unique_ptr< CYIAccessibilityAttributesTakeAccessibilityAttributes ()
 
void SetAccessibilityAttributes (std::unique_ptr< CYIAccessibilityAttributes > pAttributes)
 
const CYIRenderableGetRenderable () const
 
template<typename T >
bool CanCastTo () const
 
CYIAdjustmentLayerSceneNode * GetLastAdjustmentLayer () const
 
- Public Member Functions inherited from CYIEventTarget
 CYIEventTarget ()
 
virtual ~CYIEventTarget ()
 
bool AddEventListener (CYIEvent::Type eventType, CYIEventHandler *pListener, CYIEventTarget::Phase phase=CYIEventTarget::Phase::Bubble)
 
bool RemoveEventListener (CYIEvent::Type eventType, CYIEventHandler *pListener, CYIEventTarget::Phase phase=CYIEventTarget::Phase::Bubble)
 
void SetSpecialTypeFlag (SpecialEventTargetType type)
 
void ClearSpecialTypeFlag (SpecialEventTargetType type)
 
SpecialEventTargetType GetSpecialTypes () const
 
const std::shared_ptr< CYIEventTargetProxy > & GetProxy () const
 
- Public Member Functions inherited from CYISignalHandler
 CYISignalHandler ()
 
 CYISignalHandler (const CYISignalHandler &signalHandler)
 
virtual ~CYISignalHandler ()
 
CYISignalHandleroperator= (const CYISignalHandler &signalHandler)
 
void MoveToThread (CYIThread *pThread)
 This function allows the user to override the default thread affinity to any CYIThread that may or may not be running. More...
 
CYIThreadHandle GetThreadAffinity () const
 
void SetThreadAffinity (const CYIThreadHandle &threadAffinity)
 
virtual bool IsConnected () const
 
virtual bool IsConnected (const CYISignalBase &signal) const
 
void Disconnect (CYISignalBase &signal)
 
void DisconnectFromAllSignals ()
 
- Public Member Functions inherited from CYIThread::Listener
 Listener ()
 
virtual ~Listener ()
 
virtual void OnThreadStarted (CYIThread *)
 
virtual void OnThreadTerminated (CYIThread *)
 
virtual void OnThreadFinished (CYIThread *)
 
- Public Member Functions inherited from IYIPropertiesSource
virtual ~IYIPropertiesSource ()=default
 
bool GetProperty (CYIStringView propertyName, CYIString *pValue) const
 
- Public Member Functions inherited from CYIEventHandler
 CYIEventHandler ()
 
 CYIEventHandler (const CYIEventHandler &)
 
virtual ~CYIEventHandler ()
 
CYIEventHandleroperator= (const CYIEventHandler &)
 
bool RegisterEventFilter (CYIEventFilter *pFilter)
 
bool UnregisterEventFilter (CYIEventFilter *pFilter)
 
bool PreFilter (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent)
 
bool PostFilter (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent)
 
bool AreEventsEnabled () const
 
void EnableEvents (bool enable)
 
- Public Member Functions inherited from CYIScrollController::ScrollListener
virtual ~ScrollListener ()
 
- Public Member Functions inherited from CYITime::UpdateListener
 UpdateListener ()
 
virtual ~UpdateListener ()
 
virtual bool GetDisablesInput ()
 

Public Attributes

CYISignal< size_t, CYISceneNode * > ItemEnteredVisibleRegion
 
CYISignal< size_t, CYISceneNode * > ItemLeftVisibleRegion
 
CYISignal< size_t, CYISceneNode * > ItemGainedFocus
 
CYISignal< size_t, CYISceneNode * > ItemLostFocus
 
- Public Attributes inherited from CYIScrollingView
CYISignal InteractionBegan
 
CYISignal HorizontalScrollingBegan
 
CYISignal VerticalScrollingBegan
 
CYISignal< float > HorizontalPositionChanged
 
CYISignal< float > VerticalPositionChanged
 
CYISignal InteractionEnded
 
CYISignal HorizontalScrollingEnded
 
CYISignal VerticalScrollingEnded
 
CYISignal< bool > HorizontalOverflowChanged
 
CYISignal< bool > VerticalOverflowChanged
 
CYISignal< CYISceneNode * > ChildEnteredVisibleRegion
 
CYISignal< CYISceneNode * > ChildLeftVisibleRegion
 
CYISignal< size_t, size_tHorizontalPageChanged
 
CYISignal< size_t, size_tHorizontalPageCountChanged
 
CYISignal< size_t, size_tVerticalPageChanged
 
CYISignal< size_t, size_tVerticalPageCountChanged
 
- Public Attributes inherited from CYISceneView
CYISignal< CYISceneView *, CYISceneView *> GainedFocus
 Emitted when focus has entered this view. The first signal argument is the view that gained focus (e.g. the current view) and the second signal argument is the view that lost focus. More...
 
CYISignal< CYISceneView *, CYISceneView *> LostFocus
 Emitted when focus has left this view. The first signal argument is the view that lost focus (e.g. the current view) and the second signal argument is the view that gained focus. More...
 
- Public Attributes inherited from CYISceneNode
CYISignal< CYISceneNode *, PropertyAnimation::TypePropertyAnimationComplete
 
CYISignal< CYISceneNode *, CYISceneNode *> DescendantGainedFocus
 Emitted when focus has entered this tree. The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More...
 
CYISignal< CYISceneNode *, CYISceneNode *> DescendantLostFocus
 Emitted when focus has left this tree. The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More...
 
CYISignal< CYISceneNode *, CYISceneNode *> DescendantsChangedFocus
 Emitted when focus has changed within this tree. This signal is called only if focus was previously within this tree and focus is now on a different node (but still within this tree). The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More...
 
CYISignal< CYIAccessibilityAttributes::AccessibleAccessibleStateChanged
 Emitted when accessible state changed. More...
 

Protected Member Functions

virtual std::unique_ptr< CYILayoutCreateDefaultLayoutInstance () const
 
virtual void OnStreamedIn (size_t index, CYISceneNode *pStreamedItem) override
 
virtual void OnStreamedOut (size_t index, CYISceneNode *pStreamedItem) override
 
virtual void FocusGainedForItem (size_t index) override
 
virtual void OnFocusGainedForItem (size_t index) override
 
virtual void FocusLostForItem (size_t index) override
 
virtual void OnFocusLostForItem (size_t index) override
 
virtual void WorldBoundingBoxUpdated () override
 
virtual void ApplyMeasurements () override
 
void UpdateStreamedStateOfAllItems ()
 
virtual void ParseProperties () override
 
virtual void ChildVisibilityInVisibleRegionChanged (CYISceneNode *pChild, bool isInVisibleRegion) override
 
virtual void ChildMovedInVisibleRegion (CYISceneNode *pChild, const glm::vec2 &normalizedPosition) override
 
virtual CYIAbstractTimelineGetCascadeTimelineFor (TimelineType type, CYISceneView *pView) override
 
virtual void UpdateHorizontalPagingStrategyImpl () override
 
virtual void UpdateVerticalPagingStrategyImpl () override
 
- Protected Member Functions inherited from CYIScrollingView
CYIScrollControllerGetScrollController (Direction direction) const
 
void ConfigureScrollControllers ()
 
virtual bool BroadcastEvent (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
 
void ConfigureScrollingRange (Direction direction, float contentSize)
 
void ConfigureOverpull (Direction direction, float viewSize)
 
void ConfigureMagnets (Direction direction, float viewSize, float oldViewSize)
 
virtual bool HandleEvent (const std::shared_ptr< CYIEventDispatcher > &pEventDispatcher, CYIEvent *pEvent) override
 
virtual void Measure (const MeasureSpec &widthSpec, const MeasureSpec &heightSpec, const MeasureSpec &depthSpec) override
 
virtual void SizeChanged () override
 
virtual void ChildAdded (CYISceneNode *pChild) override
 
virtual void ChildRemoved (CYISceneNode *pChild) override
 
virtual void Reveal (CYISceneNode *pNode, uint32_t durationMs, ScrollDirection horizontalDirection, ScrollDirection verticalDirection, CYITimeInterpolator *pInterpolator=nullptr)
 
virtual CYIAABB CalculateScrollableRegion () const
 
CYIAABB CalculateContentSize () const
 
bool IsInExpandedVisibleRegion (const CYISceneNode *pCandidate, float visibleRegionMultiplier) const
 
void CheckAndNotifyVisibilityInVisibilityRegion (CYISceneNode *pChild)
 
virtual void OnChildVisibilityInVisibleRegionChanged (CYISceneNode *pChild, bool isInVisibleRegion)
 
virtual void OnChildMovedInVisibleRegion (CYISceneNode *pChild, const glm::vec2 &normalizedPosition)
 
virtual void OnScrollAuto (CYIScrollController *pController) override
 
virtual void OnScrollStarted (CYIScrollController *pController) override
 
virtual void OnScrolled (CYIScrollController *pController, YI_SCROLLED_INFO scrolledInfo) override
 
virtual void OnScrollEnded (CYIScrollController *pController) override
 
virtual void UpdateEnd () override
 
bool IsCarouseling (Direction direction) const
 
CYITimelineGroupGetCascadeTimelineGroup (TimelineType type, bool updateTimeline)
 
virtual std::map< CYISceneView *, uint64_t > GetTotalCascadeDelayFor (TimelineType type, const std::vector< ViewAndDistance > &visibleViews)
 
virtual bool OnFrameTimeUpdated (std::chrono::microseconds frameTime) override
 
virtual CYIAbstractCameraSceneNodeFindActiveCamera (const CYISceneNode *pTargetSceneNode=nullptr) const override
 
float GetScrollDeltaToNodeInFocusPosition (Direction direction, CYISceneNode *pNode) const
 
void UpdateHorizontalPagingStrategy ()
 
void UpdateVerticalPagingStrategy ()
 
- Protected Member Functions inherited from CYISceneView
void UpdateClipping ()
 
virtual void WorldScaleUpdated () override
 
virtual void OnViewReflowed (const glm::vec3 &worldScale)
 
virtual void ViewReflowed (const glm::vec3 &worldScale)
 
virtual bool ProcessEvent (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
 
void UpdateResponsiveLayoutAnchors ()
 
virtual void ChildNeedsLayout () override
 
virtual void LayoutDirtied () override
 
virtual void ChildVisibilityChanged (CYISceneNode *pChild) override
 
void OnViewIsInAnimatedPosition ()
 
void OnViewIsGoingOutOfAnimatedPosition ()
 
void SetInTimeline (CYIAbstractTimeline *pTimeline)
 
void SetOutTimeline (CYIAbstractTimeline *pTimeline)
 
virtual void OnInit ()
 
bool TryRequestFocusOnInitiallyFocusedView ()
 
- Protected Member Functions inherited from CYISceneNode
void Update ()
 
virtual void OnUpdateBegin ()
 
virtual void UpdateBegin ()
 
virtual void OnUpdateEnd ()
 
virtual void OnDirtyFlagChanged ()
 
virtual void DirtyFlagChanged ()
 
virtual void OnTransformUpdated ()
 
virtual void TransformUpdated ()
 
virtual void OnWorldScaleUpdated ()
 
virtual void OnWorldSurfaceScaleUpdated ()
 
virtual void WorldSurfaceScaleUpdated ()
 
virtual void OnVisibilityUpdated ()
 
virtual void VisibilityUpdated ()
 
virtual void OnCompositeOpacityUpdated ()
 
virtual void CompositeOpacityUpdated ()
 
virtual void OnWorldBoundingBoxUpdated ()
 
virtual void OnLocalBoundingBoxUpdated ()
 
virtual void LocalBoundingBoxUpdated ()
 
virtual void OnChildAdded (CYISceneNode *pChild)
 
virtual void OnChildRemoved (CYISceneNode *pChild)
 
virtual void OnSizeChanged ()
 
virtual void OnChildVisibilityChanged (CYISceneNode *pChild)
 
virtual void OnDrawOrderChanged ()
 
LayoutDirtyFlag GetCurrentLayoutDirtyFlag () const
 
virtual CYIString GetDumpTreeString () const
 
void DumpTree (int32_t indentLevel) const
 
virtual void SetCustomUniforms ()
 
template<class T >
void SetNodeType ()
 
virtual CYISceneNodeGetNodeFromChildren (CYIStringView name)
 
virtual CYISceneNodeGetNodeFromChildren (const int32_t id)
 
virtual CYISceneNodeGetNodeFromChildren (const CYIRuntimeTypeInfo &enforceClassType)
 
CYISceneNodeGetNodeFromChildrenAfterTarget (const CYIRuntimeTypeInfo &enforceClassType, bool *pTargetReached, CYISceneNode *pStartAfterTarget)
 

Additional Inherited Members

- Public Types inherited from CYIScrollingView
enum  OverpullRule {
  OverpullRule::Always,
  OverpullRule::IfOverflowing
}
 
enum  LayoutMode {
  LayoutMode::FitContent,
  LayoutMode::FitContentIfOverflowing,
  LayoutMode::FillView
}
 
enum  CarouselRule {
  CarouselRule::Never,
  CarouselRule::Always,
  CarouselRule::IfOverflowing
}
 
enum  TimelineType {
  TimelineType::In = 0,
  TimelineType::Out
}
 
enum  MagnetsType {
  MagnetsType::None,
  MagnetsType::Edges,
  MagnetsType::Center,
  MagnetsType::Begin,
  MagnetsType::End
}
 
enum  ScrollDirection {
  ScrollDirection::Closest,
  ScrollDirection::Forward,
  ScrollDirection::Reverse
}
 
enum  CameraType {
  CameraType::Perspective,
  CameraType::Orthographic
}
 
- Public Types inherited from CYISceneView
enum  TimelineGetMode {
  TimelineGetMode::GetDefault,
  TimelineGetMode::GetTimeline,
  TimelineGetMode::GetTimelineGroup,
  TimelineGetMode::GetComponentOfTimelineGroup
}
 
enum  InitialFocusLifetime {
  InitialFocusLifetime::Persistent,
  InitialFocusLifetime::ClearOnEntry
}
 
- Public Types inherited from CYISceneNode
enum  LayoutDirtyFlag : uint8_t {
  LayoutDirtyFlag::Clean,
  LayoutDirtyFlag::ChildDirty,
  LayoutDirtyFlag::Dirty
}
 
enum  LayoutConfigFetchMode {
  LayoutConfigFetchMode::DoNotLazyInstantiate = 0,
  LayoutConfigFetchMode::LazyInstantiate
}
 
enum  MeasureMode {
  MeasureMode::Unspecified,
  MeasureMode::UpTo,
  MeasureMode::Exactly
}
 
enum  FetchType {
  FetchType::Optional = 0,
  FetchType::Mandatory
}
 
typedef std::reverse_iterator< IteratorReverseIterator
 
typedef uint16_t DirtyFlag
 
- Public Types inherited from CYIEventTarget
enum  SpecialEventTargetType : uint8_t {
  SpecialEventTargetType::None = 0x00,
  SpecialEventTargetType::NoPick = 0x20
}
 
enum  Phase : uint8_t {
  Phase::Bubble,
  Phase::Capture
}
 
- Static Public Member Functions inherited from CYISceneView
static void RegisterAllViews ()
 
- Static Public Member Functions inherited from CYISceneNode
static void RegisterAllSceneNodes ()
 
- Static Public Attributes inherited from CYISceneNode
static const float OPACITY_NOT_VISIBLE_EPSILON
 
static constexpr DirtyFlag DirtyClean = 0x0000
 
static constexpr DirtyFlag DirtySceneGraph = 0x0001
 
static constexpr DirtyFlag DirtyVisibility = 0x0002
 
static constexpr DirtyFlag DirtyOpacity = 0x0004
 
static constexpr DirtyFlag DirtyLocalTransform = 0x0008
 
static constexpr DirtyFlag DirtyWorldTransform = 0x0010
 
static constexpr DirtyFlag DirtyUniform = 0x0020
 
static constexpr DirtyFlag DirtyWorldBoundingBox = 0x0040
 
static constexpr DirtyFlag DirtyMesh = 0x0080
 
static constexpr DirtyFlag DirtyWorldSurfaceScale = 0x0100
 
static constexpr DirtyFlag DirtyWorldScale = 0x0200
 
static constexpr DirtyFlag DirtyLocalBoundingBox = 0x0400
 
static constexpr DirtyFlag DirtyEverything = (DirtySceneGraph | DirtyVisibility | DirtyOpacity | DirtyLocalTransform | DirtyWorldTransform | DirtyUniform | DirtyWorldBoundingBox | DirtyWorldSurfaceScale | DirtyWorldScale | DirtyLocalBoundingBox)
 
- Static Public Attributes inherited from CYITime::UpdateListener
static const uint32_t DEFAULT_UPDATE_PRIORITY = 0
 
- Protected Types inherited from CYIScrollingView
enum  Direction {
  Direction::Horizontal,
  Direction::Vertical,
  Direction::DirectionsCount
}
 
- Static Protected Member Functions inherited from CYIScrollingView
static const CYIStringDirectionToString (Direction direction)
 
- Protected Attributes inherited from CYIScrollingView
uint32_t m_focusScrollDuration
 
std::unique_ptr< PagingStrategym_horizontalPagingStrategy
 
std::unique_ptr< PagingStrategym_verticalPagingStrategy
 
- Protected Attributes inherited from CYISceneView
bool m_stopEventPropagation
 
bool m_responsiveLayoutEnabled
 
bool m_sceneTreeBuilt
 
bool m_inAnimatedPosition
 
CYISceneNodem_pClippingNode
 
CYIAbstractTimelinem_pFocusInTimeline
 
CYIAbstractTimelinem_pFocusOutTimeline
 
std::unique_ptr< CYILayoutm_pLayout
 
std::shared_ptr< CYIAssetViewTemplatem_pAssetViewTemplate
 
std::shared_ptr< CYISceneNodeProxym_pInitiallyFocusedView
 
InitialFocusLifetime m_initialFocusLifetime
 
std::multimap< EYIAnchorType, YI_ANCHOR_DATAm_anchors
 
std::map< CYIString, std::unique_ptr< CYITimeline >, std::less< void > > m_timelines
 
std::map< CYIString, std::unique_ptr< CYIParallelTimelineGroup >, std::less< void > > m_timelineGroups
 
std::map< CYIString, std::unique_ptr< CYIAbstractTimeline >, std::less< void > > m_externalTimelines
 
- Protected Attributes inherited from CYISceneNode
CYIString m_name
 
CYISceneNodem_pParent
 
CYISceneNodem_pDrawParent
 
std::vector< std::unique_ptr< CYISceneNode > > m_children
 
std::vector< CYISceneNode * > m_drawChildren
 
std::map< CYIString, CYIString, std::less< void > > m_Properties
 
std::vector< std::shared_ptr< CYIEffect > > m_Effects
 
std::vector< std::unique_ptr< PropertyAnimation > > m_propertyAnimations
 
float m_localOpacity
 
std::unique_ptr< CYITransformm_pTransform
 
glm::vec3 m_size
 
glm::vec3 m_initialSize
 
glm::vec3 m_measuredSize
 
glm::vec3 m_vlsLastCollision
 
bool m_clip
 
bool m_localVisibility
 
int32_t m_id
 
uint64_t m_guid
 
std::unique_ptr< CYINPatch > m_pNPatch
 
std::shared_ptr< CYIBitmapm_pNPatchBitmap
 
std::shared_ptr< CYIRenderablem_pRenderable
 
- Protected Attributes inherited from CYIEventTarget
std::vector< EventListenerEntry > m_listeners
 
SpecialEventTargetType m_specialTypes
 
std::shared_ptr< CYIEventTargetProxym_pEventTargetProxy
 
- Protected Attributes inherited from CYIEventHandler
bool m_enableEvents
 

Constructor & Destructor Documentation

◆ CYIListView()

CYIListView::CYIListView ( )

◆ ~CYIListView()

virtual CYIListView::~CYIListView ( )
virtual

Member Function Documentation

◆ ApplyMeasurements()

virtual void CYIListView::ApplyMeasurements ( )
overrideprotectedvirtual

Applies the measured sizes of this node's children.

Note
Typically, if ApplyMeasurements is overridden then Measure must also be overridden.
Measurements should be applied before calculating position for layout.
Warning
Subclasses that override this function must ensure that the ApplyMeasurements function of ALL children of this scene node is called.
Note
Subclasses that override this function should make use of the GetCurrentLayoutDirtyFlag() function (rather than GetLayoutDirtyFlag() ).

Reimplemented from CYIScrollingView.

◆ ChildMovedInVisibleRegion()

virtual void CYIListView::ChildMovedInVisibleRegion ( CYISceneNode pChild,
const glm::vec2 &  normalizedPosition 
)
overrideprotectedvirtual

Reimplemented from CYIScrollingView.

◆ ChildVisibilityInVisibleRegionChanged()

virtual void CYIListView::ChildVisibilityInVisibleRegionChanged ( CYISceneNode pChild,
bool  isInVisibleRegion 
)
overrideprotectedvirtual

A function called when the visibility of a child within the visible region changes.

Warning
Overrides must call the base class implementation.
See also
OnChildVisibilityInVisibleRegionChanged()

Reimplemented from CYIScrollingView.

◆ CreateDefaultLayoutInstance()

virtual std::unique_ptr<CYILayout> CYIListView::CreateDefaultLayoutInstance ( ) const
protectedvirtual

Returns the default layout of the list. May be overridden by inheriting classes to specify a different default layout.

Note
By default this function returns a pointer to an instance of CYIColumnLayout.

Reimplemented in CYIPageIndicatorView.

◆ FocusGainedForItem()

virtual void CYIListView::FocusGainedForItem ( size_t  index)
overrideprotectedvirtual

See also
CYIStreamer::OnFocusGainedForItem
Warning
Overrides must call the base class implementation.
See also
OnFocusGainedForItem

Reimplemented from CYIStreamer.

◆ FocusLostForItem()

virtual void CYIListView::FocusLostForItem ( size_t  index)
overrideprotectedvirtual

See also
CYIStreamer::OnFocusLostForItem
Warning
Overrides must call the base class implementation.
See also
OnFocusLostForItem

Reimplemented from CYIStreamer.

◆ GetAdapter() [1/2]

const CYINodeAdapter* CYIListView::GetAdapter ( ) const

◆ GetAdapter() [2/2]

CYINodeAdapter* CYIListView::GetAdapter ( )

◆ GetCascadeTimelineFor()

virtual CYIAbstractTimeline* CYIListView::GetCascadeTimelineFor ( TimelineType  type,
CYISceneView pView 
)
overrideprotectedvirtual

Returns the cascade timeline of type type for view pView. When type is CYIScrollingView::TimelineType::In, the timeline with marker name 'CascadeIn' is returned. When type is CYIScrollingView::TimelineType::Out, the timeline with marker name 'CascadeOut' is returned. This function returns nullptr if the relevant timeline could not be located in pView.

Reimplemented from CYIScrollingView.

◆ GetChildIndex()

size_t CYIListView::GetChildIndex ( size_t  itemIndex) const

◆ GetFocusedItemIndex()

size_t CYIListView::GetFocusedItemIndex ( ) const

Returns the index of the focused item, or std::numeric_limits<size_t>::max() if focus not present.

◆ GetItemIndex()

size_t CYIListView::GetItemIndex ( CYISceneNode pStreamedItem) const

Returns the index of the streamed-in item pStreamedItem. If pStreamedItem is not a node that's currently streamed in by this list, std::numeric_limits<size_t>::max() is returned.

Note
pStreamedItem must be a pointer to the root of the view, that is to say it must be the pointer that was returned from the adapter.

◆ GetItemProperties()

IYIPropertiesSource* CYIListView::GetItemProperties ( const CYIString viewTemplateName) const

Returns a IYIPropertiesSource for the CYIViewTemplate named viewTemplateName or null if there is no IYIPropertiesSource for viewTemplateName.

See also
SetItemProperties
CYIViewTemplate::GetName

◆ GetStreamedNode()

CYISceneNode* CYIListView::GetStreamedNode ( size_t  index) const

◆ GetStreamingRegionFactor()

float CYIListView::GetStreamingRegionFactor ( ) const

◆ Init()

virtual bool CYIListView::Init ( )
overridevirtual

Initializes the view and all of its content. Subclasses must call CYISceneView::Init().

Note
This must be called after CYISceneView::BuildFromTemplate()

Reimplemented from CYIScrollingView.

Reimplemented in CYIPageIndicatorView, and CYIScrollingTextView.

◆ IsInVisibleRegion()

bool CYIListView::IsInVisibleRegion ( size_t  index) const

Returns true if streamable item with index index is within the bounds of this view, defined by its size.

See also
IsInVisibleRegion(const CYISceneNode*) const

◆ IsStreamedIn()

bool CYIListView::IsStreamedIn ( size_t  index) const

◆ OnFocusGainedForItem()

virtual void CYIListView::OnFocusGainedForItem ( size_t  index)
overrideprotectedvirtual
See also
CYIStreamer::OnFocusGainedForItem

Reimplemented from CYIStreamer.

◆ OnFocusLostForItem()

virtual void CYIListView::OnFocusLostForItem ( size_t  index)
overrideprotectedvirtual
See also
CYIStreamer::OnFocusLostForItem

Reimplemented from CYIStreamer.

◆ OnStreamedIn()

virtual void CYIListView::OnStreamedIn ( size_t  index,
CYISceneNode pStreamedItem 
)
overrideprotectedvirtual

A function called when the item at index index is streamed in. The streamed node (as provided by the associated adapter) is provided as pStreamedItem. This function is called after the item has been attached to the scene tree. Subclasses can override this function to perform post-streaming logic.

Note
In some streamer implementations, the position of the streamed items is not set until later in the frame (e.g. after the layout pass). This function being called is only an indication that a new node has been attached to the scene tree.

Reimplemented from CYIStreamer.

◆ OnStreamedOut()

virtual void CYIListView::OnStreamedOut ( size_t  index,
CYISceneNode pStreamedItem 
)
overrideprotectedvirtual

A function called when the item at index index is streamed out. The streamed node (as provided by the associated adapter) is provided as pStreamedItem. This function is called before the item has been detached from the scene tree. Subclasses can override this function to perform post-streaming logic.

Reimplemented from CYIStreamer.

◆ ParseProperties()

virtual void CYIListView::ParseProperties ( )
overrideprotectedvirtual

The properties outlined in the table at the top are parsed and applied here.

Reimplemented from CYIScrollingView.

◆ RequestFocusOnItem()

bool CYIListView::RequestFocusOnItem ( size_t  index,
CYIFocus::Direction  direction = CYIFocus::Direction::Forward,
CYIFocus::FocusRootRule  focusRootRule = CYIFocus::FocusRootRule::DescendantsUpdateContext,
const CYIAABB previousFocusRect = CYIAABB() 
)

◆ RevealItem()

virtual void CYIListView::RevealItem ( size_t  index,
uint32_t  duration,
CYITimeInterpolator pInterpolator = nullptr 
)
virtual

Reveals the streamable item at index index with an animation of duration duration.

See also
CYIScrollingView::Reveal

◆ SetAdapter()

void CYIListView::SetAdapter ( std::unique_ptr< CYINodeAdapter pAdapter)

◆ SetItemProperties()

void CYIListView::SetItemProperties ( const CYIString viewTemplateName,
std::unique_ptr< IYIPropertiesSource pProperties 
)

Set the properties for views in this list created with the CYIViewTemplate named viewTemplateName to pProperties. This method is called after the list is created with the properties of each placeholder in the list. These properties will be given to the CYINodeAdapter when the adapter is set on this list.

Note
This method overwrites any properties previously set.
See also
GetItemProperties
CYINodeAdapter::SetProperties
CYIViewTemplate::GetName
CYIStreamer::SetAdapter

◆ SetStreamingRegionFactor()

void CYIListView::SetStreamingRegionFactor ( float  factor)

Sets the factor used to calculate the streaming region to factor. This factor is used along with the visible region of the list to calculate that region in which items would be streamed in. For example, a value of 2.0f would indicate that the streaming region should be 50% larger than the visible region on each side. A value of 1.0f indicates that the streaming region should be exactly equal to the visible region.

The streaming region factor defaults to 2.0f.

Note
Values smaller than 1.0f are not supported. If this function is called with a value smaller than 1.0f, a value of 1.0f is used instead.

◆ UpdateHorizontalPagingStrategyImpl()

virtual void CYIListView::UpdateHorizontalPagingStrategyImpl ( )
overrideprotectedvirtual

Updates the information required by the horizontal paging strategy, such as scroll region width, and scroll position. Subclasses should override if they have visibility into the new information included in a subclass of CYIScrollingView::PagingStrategy.

Reimplemented from CYIScrollingView.

◆ UpdateStreamedStateOfAllItems()

void CYIListView::UpdateStreamedStateOfAllItems ( )
protected

◆ UpdateVerticalPagingStrategyImpl()

virtual void CYIListView::UpdateVerticalPagingStrategyImpl ( )
overrideprotectedvirtual

Updates the information required by the vertical paging strategy, such as scroll region width, and scroll position. Subclasses should override if they have visibility into the new information included in a subclass of CYIScrollingView::PagingStrategy.

Reimplemented from CYIScrollingView.

◆ WorldBoundingBoxUpdated()

virtual void CYIListView::WorldBoundingBoxUpdated ( )
overrideprotectedvirtual

Called by Update() when the world bounding box update process is complete. Subclasses may overload this function to do post-processing.

Warning
The dirty flag will be cleared prior to calling this function to allow new dirty state to be recorded from this function. If querying information about the dirty state of the node, use GetPreviousDirtyFlag().
Overrides must call the base class implementation.
See also
Update()
OnWorldBoundingBoxUpdated()

Reimplemented from CYIScrollingView.

Member Data Documentation

◆ ItemEnteredVisibleRegion

CYISignal<size_t , CYISceneNode *> CYIListView::ItemEnteredVisibleRegion

Emitted when an item of the CYIListView has entered the visible region.

See also
IsInVisibleRegion

◆ ItemGainedFocus

CYISignal<size_t , CYISceneNode *> CYIListView::ItemGainedFocus

Emitted when focus has entered the tree rooted at a particular item. The new view with focus can be found using CYISceneManager::GetViewWithFocus(const CYISceneNode *) const .

◆ ItemLeftVisibleRegion

CYISignal<size_t , CYISceneNode *> CYIListView::ItemLeftVisibleRegion

Emitted when an item of the CYIListView has left the visible region.

See also
IsInVisibleRegion

◆ ItemLostFocus

CYISignal<size_t , CYISceneNode *> CYIListView::ItemLostFocus

Emitted when focus has left the tree rooted at a particular item. The new view with focus can be found using CYISceneManager::GetViewWithFocus(const CYISceneNode *) const .


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