2 #ifndef _YI_SCROLLING_VIEW_H_ 3 #define _YI_SCROLLING_VIEW_H_ 9 class CYIMagnetScrollController;
224 Magnets(
MAGNETS_TYPE eType,
float fBeginningOffset,
float fCenterOffset,
float fEndOffset);
230 virtual bool Init()
override;
754 virtual bool BroadcastEvent(
const std::shared_ptr<CYIEventDispatcher> &pDispatcher,
CYIEvent *pEvent)
override;
765 virtual bool HandleEvent(
const std::shared_ptr<CYIEventDispatcher> &pEventDispatcher,
CYIEvent *pEvent)
override;
914 void InitializeCameras();
915 void PlaceCameras(
const CYIAABB &scrollRegion);
916 void UpdateCameraPerspectives(
float cameraDistance,
const glm::vec3 &viewSize);
921 bool HasOverflow(
DIRECTION eDirection)
const;
926 void InitializeScrollPosition();
927 void OffsetCameraByRegionTopLeft();
928 void CheckAndUpdateCameraRootPositionInDirection(
DIRECTION eDirection);
929 void CheckAndUpdateCarouselState();
930 void EnableHorizontalCarousel();
931 void EnableVerticalCarousel();
932 void DisableHorizontalCarousel();
933 void DisableVerticalCarousel();
934 bool ShouldCarousel(
DIRECTION eDirection)
const;
938 virtual void CarouselStatusChanged(
DIRECTION eDirection,
bool bIsCarousel);
943 void ScrollStart(
const glm::vec3 &position, uint64_t uTimeMs, uint8_t uPointerID);
944 void ScrollMove(
const glm::vec3 &position, uint64_t uTimeMs, uint8_t uPointerID);
945 void ScrollEnd(
const glm::vec3 &position, uint64_t uTimeMs, uint8_t uPointerID);
955 void CheckAndNotifyOverflowChanged();
957 void OnScrollRegionChanged();
959 void ApplySnapBackInDirectionIfNecessary(
DIRECTION eDirection);
961 void NotifyPositionInVisibilityRegion();
962 void NotifyPositionInVisibilityRegion(
CYISceneNode *pNode);
964 void UpdateMagneticPoints();
967 glm::vec2 CalculateDistanceFromTopLeft(
CYISceneNode *pChild)
const;
968 void InitializeTimelineGroups();
969 void UpdateCascadeIn();
970 void UpdateCascadeOut();
974 void SetSwipeOneItemEnabled(
DIRECTION eDirection,
bool bSwipeOneItem);
975 bool IsSwipeOneItemEnabled(
DIRECTION eDirection)
const;
977 static const float s_fDefaultScrollThreshold;
978 static const uint32_t s_uDefaultFocusScrollDuration;
981 bool m_bVisibilityCheckRequired;
982 bool m_bMagnetSnapRequired;
983 glm::vec3 m_DownPosition;
984 glm::vec3 m_PreviousSize;
986 float m_fHorizontalLeaveFriction;
987 float m_fVerticalLeaveFriction;
997 glm::vec3 m_measuredScrollingArea;
1006 CYIMagnetScrollController *m_pScrollController[
DIRECTION_MAX];
1011 std::set<CYISceneNode*> m_visibleChildren;
1015 uint32_t m_uCascadeDelayMs;
1030 return !(lhs == rhs);
1035 #endif // _YI_SCROLLING_VIEW_H_
The base class for the timeline framework.
Definition: YiAbstractTimeline.h:29
Container for basic interpolator functions.
Definition: YiTimeInterpolator.h:21
Definition: YiSceneNode.h:356
A class containing focus search options.
Definition: YiFocusSearchOptions.h:23
Base class for events.
Definition: YiEvent.h:489
The base class for all view types. Views are containers of renderable elements that often define inte...
Definition: YiSceneView.h:47
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
bool operator!=(const CYIScrollingView::Magnets &lhs, const CYIScrollingView::Magnets &rhs)
Definition: YiScrollingView.h:1028
The base class for types of timeline groups.
Definition: YiTimelineGroup.h:25
Provides a base for the definition of camera objects.
Definition: YiAbstractCameraSceneNode.h:30
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
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
FOCUS_DIRECTION
Definition: YiFocus.h:44
This class represents an Axis-Aligned Bounding Box.
Definition: YiAABB.h:24
This kind of timeline group will play its children in parallel, possibly with specified offsets (dela...
Definition: YiParallelTimelineGroup.h:21
Definition: YiPerspectiveCameraSceneNode.h:39
bool operator==(const CYIScrollingView::Magnets &lhs, const CYIScrollingView::Magnets &rhs)
Definition: YiScrollingView.h:1020
Signals and slots are a thread-safe and flexible communication framework that will allow various obje...
Definition: YiSignal.h:164
Stores data related to a user Action event.
Definition: YiActionEvent.h:18