2 #ifndef _YI_STREAMER_H_ 3 #define _YI_STREAMER_H_ 15 class CYIStreamableView;
16 class CYIStreamerSlots;
52 void SetAdapter(std::unique_ptr<CYINodeAdapter> pAdapter);
134 virtual void InsertItem(uint32_t uIndex, std::unique_ptr<CYISceneNode> pItem) = 0;
200 void CreateItemsFromAdapter();
201 void InsertItemPriv(uint32_t uIndex);
202 void RemoveAllItems();
203 void RemoveItemPriv(uint32_t uIndex);
204 void MoveItemPriv(uint32_t uFromIndex, uint32_t uToIndex);
205 void OnAdapterItemAdded(uint32_t uIndex);
206 void OnAdapterItemRemoved(uint32_t uIndex);
207 void OnAdapterItemMoved(uint32_t uFromIndex, uint32_t uToIndex);
210 void UpdateAllIndices();
212 std::unique_ptr<CYINodeAdapter> m_pAdapter;
215 std::unique_ptr<CYIStreamerSlots> m_pSlots;
224 #endif // _YI_STREAMER_H_ virtual void InsertItem(uint32_t uIndex, std::unique_ptr< CYISceneNode > pItem)=0
virtual void OnFocusGainedForItem(uint32_t uIndex)
virtual void StreamedOut(uint32_t uIndex, CYISceneNode *pStreamedItem)
#define YI_DISALLOW_COPY_AND_ASSIGN(TypeName)
Delete the copy constructor and assignment operator (and consequently the move constructor as well) ...
Definition: YiPredef.h:114
A class that implements a scene node streamer.
Definition: YiStreamer.h:36
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
virtual std::unique_ptr< CYISceneNode > RemoveItem(uint32_t uIndex, CYISceneNode *pItem)=0
friend class CYIStreamableView
Definition: YiStreamer.h:39
virtual void StreamedIn(uint32_t uIndex, CYISceneNode *pStreamedItem)
virtual void OnStreamedIn(uint32_t uIndex, CYISceneNode *pStreamedItem)
virtual void OnStreamedOut(uint32_t uIndex, CYISceneNode *pStreamedItem)
virtual void OnFocusLostForItem(uint32_t uIndex)
virtual bool CanBeStreamedOut(uint32_t uIndex, CYISceneNode *pNode) const =0
Provides an interface for supplying and reclaiming nodes to and from CYIStreamer. ...
Definition: YiNodeAdapter.h:31
virtual void FocusGainedForItem(uint32_t uIndex)
FOCUS_ROOT_RULE
Definition: YiFocus.h:60
A scene node is the base type for all nodes which are used by the scene manager; it is an integral pa...
Definition: YiSceneNode.h:114
A class used to hold node-specific layout configuration (such as, for example, Margin).
Definition: YiLayoutConfig.h:24
virtual CYISceneNode * GetItem(uint32_t uIndex) const =0
bool RequestFocusOnItem(uint32_t uIndex, CYIFocus::FOCUS_DIRECTION eDirection=CYIFocus::FOCUS_FORWARD, CYIFocus::FOCUS_ROOT_RULE eFocusRootRule=CYIFocus::FOCUS_ROOT_DESCENDANTS_UPDATE_CONTEXT, const CYIAABB &previousFocusRect=CYIAABB())
FOCUS_DIRECTION
Definition: YiFocus.h:44
This class represents an Axis-Aligned Bounding Box.
Definition: YiAABB.h:24
void SetAdapter(std::unique_ptr< CYINodeAdapter > pAdapter)
uint32_t GetItemIndex(CYISceneNode *pStreamableItem) const
const CYINodeAdapter * GetAdapter() const
bool IsStreamedIn(uint32_t uIndex) const
virtual void FocusLostForItem(uint32_t uIndex)
friend class CYIStreamerSlots
Definition: YiStreamer.h:38
void UpdateStreamedStateOfAllItems()
virtual void ReorderItem(uint32_t uFromIndex, uint32_t uToIndex, CYISceneNode *pItem)=0
CYISceneNode * GetStreamedNode(uint32_t uIndex) const
void Init(CYISceneManager *pSceneManager)
virtual bool IsItemInStreamingRegion(CYISceneNode *pItem) const =0