The CYIDrawerView can be placed around the edges of a view, making it possible for the user to swipe to open and close.
The CYIDrawerView can contain arbitrary content in a "drawer" that can be opened or closed. This is accomplished internally by moving the CYIDrawerView in its parent's local space.
When the user starts dragging the drawer, it will track the finger or pointer. Once it has gone beyond a configurable threshold and the user releases the drawer, it will continue to animate to the fully opened or closed state.
The drawer's DIRECTION is automatically detected during Init() based on the drawer's position in its parent's local space. If the automatic detection is not desirable the open direction can also be set using SetDrawerOpenDirection().
The CYIDrawerView is self-animated, and the animation interpolators are configurable. The duration and threshold for opening/closing animation are also configurable.
- Note
- If the parent of a CYIDrawerView is not full-screen, it may be desirable to enable clipping on the parent.
- Warning
- Some mobile operating system use a bezel-swipe feature on some edges that may interfere with the CYIDrawerView.
|
| | CYIDrawerView () |
| |
| virtual bool | Init () override |
| |
| virtual bool | HandleEvent (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override |
| |
| virtual void | OnPropertyAnimationComplete (CYISceneNode *pNode, YI_NODE_PROPERTY_TYPE ePropType) |
| |
| virtual void | Open () |
| |
| virtual void | Close () |
| |
| virtual void | ShowDrawer () |
| |
| virtual void | HideDrawer () |
| |
| DIRECTION | GetDrawerOpenDirection () const |
| |
| void | SetDrawerOpenDirection (DIRECTION eDirection, float fDrawerLength) |
| |
| STATE | GetDrawerState () const |
| |
| float | GetDrawerThreshold () const |
| |
| void | SetDrawerThreshold (float fDrawerThresholdPercentage) |
| |
| uint32_t | GetDrawerDelay () const |
| |
| void | SetDrawerDelay (uint32_t fDrawerDelayMs) |
| |
| void | SetDrawerOpenInterpolator (CYITimeInterpolator *pInterpolator) |
| |
| void | SetDrawerCloseInterpolator (CYITimeInterpolator *pInterpolator) |
| |
| | CYISceneView () |
| |
| virtual | ~CYISceneView () |
| |
| bool | BuildFromTemplate (CYISceneManager *pSceneManager, const std::shared_ptr< CYIAssetViewTemplate > &pAssetViewTemplate, CYISceneManager::MISSING_CLASS_HANDLING_MODE eMissingHandlingMode=CYISceneManager::ABORT) |
| |
| bool | IsInitialized () const |
| |
| void | SetClippingAreaNode (CYISceneNode *pClippingNode) |
| |
| virtual bool | GetProperty (const CYIString &propertyName, CYIString *pValue) const override |
| |
| void | EnableDefaultHitZone () |
| |
| bool | IsResponsiveLayoutEnabled () const |
| |
| void | EnableResponsiveLayout () |
| |
| void | DisableResponsiveLayout () |
| |
| void | AddAnchor (YI_ANCHOR_TYPE anchorType) |
| |
| YI_ANCHOR_DATA | GetAnchor (YI_ANCHOR_TYPE anchorType) const |
| |
| virtual const CYISceneView::AssetRequirement * | GetAssetRequirements (uint32_t *pRequirementCount) |
| |
| CYIAbstractTimeline * | GetInTimeline () const |
| |
| CYIAbstractTimeline * | GetOutTimeline () const |
| |
| CYIAbstractTimeline * | GetFocusInTimeline () const |
| |
| CYIAbstractTimeline * | GetFocusOutTimeline () const |
| |
| virtual bool | HandlesFocusInDescendants () const |
| |
| virtual bool | RequestFocus (CYIFocus::FOCUS_DIRECTION eDirection=CYIFocus::FOCUS_FORWARD, CYIFocus::FOCUS_ROOT_RULE eFocusRootRule=CYIFocus::FOCUS_ROOT_DESCENDANTS_UPDATE_CONTEXT, const CYIAABB &previousFocusRect=CYIAABB(), const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) |
| |
| bool | HasFocus () const |
| |
| void | SetFocusable (bool bFocusable) |
| |
| bool | IsFocusable () const |
| |
| bool | CanBeFocused () const |
| |
| void | SetNextFocus (CYISceneView *pView, CYIFocus::FOCUS_DIRECTION eDirection) |
| |
| CYISceneView * | GetNextFocus (CYIFocus::FOCUS_DIRECTION eDirection) const |
| |
| void | SetInitiallyFocusedView (CYISceneView *pView) |
| |
| CYISceneView * | GetInitiallyFocusedView () const |
| |
| CYISceneView * | FindNextFocus (CYIFocus::FOCUS_DIRECTION eDirection, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const |
| |
| CYISceneView * | FindNextFocus (CYIFocus::FOCUS_DIRECTION eDirection, CYIAABB &screenSpaceFocusRegion, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const |
| |
| virtual CYISceneView * | FindNextFocusInDescendants (const CYISceneView *pCurrentFocusView, CYIFocus::FOCUS_DIRECTION eDirection, CYIAABB &screenSpaceFocusRegion, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const |
| |
| const CYISceneNode * | GetFocusRoot () const |
| |
| CYISceneView * | GetFocusHandler () 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 () |
| |
| virtual CYIAbstractTimeline * | GetTimeline (const CYIString &rMarkerName, TIMELINE_GET_MODE eMode=GET_DEFAULT) |
| |
| CYIAbstractTimeline * | GetTimeline (CYIMarkerData::MARKER_ID eID, TIMELINE_GET_MODE eMode=GET_DEFAULT) |
| |
| std::map< CYIString, CYITimeline * > | GetTimelines () const |
| |
| bool | FindTimeline (CYIAbstractTimeline *&pTimeline, const CYIString &markerName, FETCH_TYPE eType, const CYIString &tag="", TIMELINE_GET_MODE eMode=GET_DEFAULT) |
| |
| CYITimelineGroup * | GetTimelineGroup (const CYIString &markerName) |
| |
| std::unique_ptr< CYITimelineGroup > | BuildTimelineGroup (const CYIString &markerName) |
| |
| void | BuildAnchorList () |
| |
| virtual void | Reset () |
| |
| void | SetLayout (std::unique_ptr< CYILayout > pLayout) |
| |
| const CYILayout * | GetLayout () const |
| |
| CYILayout * | GetLayout () |
| |
| virtual void | Measure (const MeasureSpec &widthSpec, const MeasureSpec &heightSpec, const MeasureSpec &depthSpec) override |
| |
| virtual void | ApplyMeasurements () override |
| |
| virtual void | BuildDrawList (std::vector< IYIRenderer::Command > &children, CYIAbstractCameraSceneNode *pCameraToDrawWith=nullptr) override |
| |
| | CYISceneNode () |
| |
| virtual | ~CYISceneNode () |
| |
| void | ForceDirty () |
| |
| void | ClearDirtyFlag () |
| |
| void | SetDirtyFlag (DirtyFlag eDirtyFlag) |
| |
| DirtyFlag | GetDirtyFlag () const |
| |
| DirtyFlag | GetPreviousDirtyFlag () const |
| |
| const CYIString & | GetName () const |
| |
| CYIString | GetUniqueName () const |
| |
| void | SetSceneManager (CYISceneManager *pSceneManager) |
| |
| void | SetName (const CYIString &name) |
| |
| int32_t | GetID () const |
| |
| void | SetID (int32_t nID) |
| |
| uint64_t | GetUniqueID () const |
| |
| bool | AddChild (std::unique_ptr< CYISceneNode > pSceneNode) |
| |
| bool | AddChild (std::unique_ptr< CYISceneNode >, int32_t nIndex) |
| |
| bool | InsertChildAfter (CYISceneNode *pRefNode, std::unique_ptr< CYISceneNode > pSceneNode) |
| |
| std::unique_ptr< CYISceneNode > | RemoveChild (CYISceneNode *pSceneNode) |
| |
| bool | ReorderChild (uint32_t uFromIndex, uint32_t uToIndex) |
| |
| CYISceneNode * | GetParent () const |
| |
| bool | ChangeParent (CYISceneNode *pParent) |
| |
| CYISceneNode * | GetDrawParent () const |
| |
| bool | IsAncestorOf (const CYISceneNode *pNode) const |
| |
| CYISceneManager * | GetSceneManager () const |
| |
| uint32_t | GetChildCount () const |
| |
| uint32_t | GetChildCountRecursive () const |
| |
| CYISceneNode * | GetChild (uint32_t nIndex) const |
| |
| Iterator | begin (Iterator::ITERATION_MODE eMode=Iterator::IMMEDIATE_CHILDREN) const |
| |
| Iterator | end (Iterator::ITERATION_MODE eMode=Iterator::IMMEDIATE_CHILDREN) const |
| |
| ReverseIterator | rbegin (Iterator::ITERATION_MODE eMode=Iterator::IMMEDIATE_CHILDREN) const |
| |
| ReverseIterator | rend (Iterator::ITERATION_MODE eMode=Iterator::IMMEDIATE_CHILDREN) const |
| |
| CYISceneNode * | GetChild (const CYIString &sName) const |
| |
| uint32_t | GetDrawChildCount () const |
| |
| CYISceneNode * | GetDrawChild (uint32_t uIndex) const |
| |
| CYISceneNode * | GetDrawChildByID (int32_t nID) const |
| |
| template<class YI_SCENE_NODE_SUBCLASS > |
| YI_SCENE_NODE_SUBCLASS * | GetChild (uint32_t uTargetMatchedNodeCount=1) const |
| |
| template<class YI_SCENE_NODE_SUBCLASS > |
| std::list< YI_SCENE_NODE_SUBCLASS * > | GetChildren () const |
| |
| int32_t | GetIndexOfChild (const CYISceneNode *pSceneNode) const |
| |
| void | Show () |
| |
| void | Hide () |
| |
| void | SetVisibility (bool bVisible) |
| |
| void | SetOpacity (float fOpacity) |
| |
| float | GetCompositeOpacity () const |
| |
| float | GetLocalOpacity () const |
| |
| bool | IsVisible () const |
| |
| bool | IsTrulyVisible () const |
| |
| CYISceneNode * | GetNode (const CYIString &name) |
| |
| CYISceneNode * | GetNode (const CYIString &name, const CYIRuntimeTypeInfo &enforceClassType) |
| |
| CYISceneNode * | GetNode (const CYIRuntimeTypeInfo &enforceClassType) |
| |
| CYISceneNode * | GetNodeAfterTarget (const CYIRuntimeTypeInfo &enforceClassType, CYISceneNode *pStartAfterTarget) |
| |
| template<class YI_SCENE_NODE_SUBCLASS > |
| YI_SCENE_NODE_SUBCLASS * | GetNode (const CYIString &name) |
| |
| CYISceneNode * | GetNode (const int32_t nID) |
| |
| CYISceneNode * | GetNode (const int32_t nID, const CYIRuntimeTypeInfo &enforceClassType) |
| |
| template<class YI_SCENE_NODE_SUBCLASS > |
| bool | FindNode (YI_SCENE_NODE_SUBCLASS *&pNode, const CYIString &nodeName, FETCH_TYPE eType, const CYIString &tag) |
| |
| std::list< CYISceneNode * > | GetNodes (const CYIString &name) |
| |
| std::list< CYISceneNode * > | GetNodes (int32_t nID) |
| |
| std::list< CYISceneNode * > | GetNodes (const CYIRuntimeTypeInfo &enforceClassType) |
| |
| template<class YI_SCENE_NODE_SUBCLASS > |
| const YI_SCENE_NODE_SUBCLASS * | GetNode (uint32_t uTargetMatchedNodeCount=1) const |
| |
| template<class YI_SCENE_NODE_SUBCLASS > |
| YI_SCENE_NODE_SUBCLASS * | GetNode (uint32_t uTargetMatchedNodeCount=1) |
| |
| void | SetMesh (const std::shared_ptr< CYIMesh > &pMesh) |
| |
| void | SetMaterial (const std::shared_ptr< CYIMaterial > &pMaterial, uint32_t nIndex=0) |
| |
| void | AddEffect (const std::shared_ptr< CYIEffect > &pEffect) |
| |
| void | RemoveEffect (const std::shared_ptr< CYIEffect > &pEffect) |
| |
| uint32_t | GetEffectCount () const |
| |
| std::shared_ptr< CYIEffect > | GetEffect (uint32_t uIndex) const |
| |
| void | ConnectEffectsToTimelines (const CYITimelineTrack *pTrack) |
| |
| void | AddMask (std::unique_ptr< CYIMask > pMask) |
| |
| std::unique_ptr< CYIMask > | RemoveMask (const CYIMask *pMask) |
| |
| uint32_t | GetMaskCount () const |
| |
| const CYIMask * | GetMask (uint32_t uIndex) const |
| |
| CYIMask * | GetMask (uint32_t uIndex) |
| |
| const std::shared_ptr< CYIMesh > & | GetMesh () const |
| |
| uint32_t | GetMaterialCount () const |
| |
| const std::shared_ptr< CYIMaterial > | GetMaterial (uint32_t nIndex=0) const |
| |
| const std::shared_ptr< IYIUniformBufferObject > & | GetShaderUniforms () const |
| |
| void | SetMeshTransform (const glm::mat4 &rTransform) |
| |
| void | DestroyChildren () |
| |
| const glm::mat4 & | GetLocalTransform () const |
| |
| const glm::mat4 & | GetEffectTransform () const |
| |
| 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 |
| |
| const CYIAABB & | GetWorldAABB () const |
| |
| const CYIAABB & | GetLocalAABB () const |
| |
| void | SetAnchorPoint (const glm::vec3 &ref) |
| |
| void | SetAnchorPoint (float fX, float fY, float fZ) |
| |
| void | SetAnchorPointX (float fX) |
| |
| void | SetAnchorPointY (float fY) |
| |
| void | SetAnchorPointZ (float fZ) |
| |
| void | SetPosition (const glm::vec3 &ref) |
| |
| void | SetPosition (float fX, float fY, float fZ) |
| |
| void | SetPositionX (float fX) |
| |
| void | SetPositionY (float fY) |
| |
| void | SetPositionZ (float fZ) |
| |
| void | SetRotation (const glm::vec3 &fEulerDegrees) |
| |
| void | SetRotation (float fPitchDegrees, float fYawDegrees, float fRollDegrees) |
| |
| void | SetRotationX (float fPitchDegrees) |
| |
| void | SetRotationY (float fYawDegrees) |
| |
| void | SetRotationZ (float fRollDegrees) |
| |
| void | SetOrientation (float fPitchDegrees, float fYawDegrees, float fRollDegrees) |
| |
| void | SetOrientation (const glm::quat &orient) |
| |
| void | SetScale (const glm::vec3 &fScaleFactors) |
| |
| void | SetScale (float fFactorX, float fFactorY, float fFactorZ) |
| |
| void | SetScaleX (float fFactor) |
| |
| void | SetScaleY (float fFactor) |
| |
| void | SetScaleZ (float fFactor) |
| |
| 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 &vSize, bool bDirtyLayout=true) |
| |
| const glm::vec3 & | GetSize () const |
| |
| const glm::vec3 & | GetInitialSize () const |
| |
| void | SetMeasuredSize (const glm::vec3 &vMeasuredSize) |
| |
| const glm::vec3 & | GetMeasuredSize () const |
| |
| void | SetInternalCustomTimelineValue (uint32_t nTrackID, const CYIVariant &value) |
| |
| virtual void | SetCustomTimelineValue (uint32_t nTrackID, const CYIVariant &value) |
| |
| void | SetClippingOn () |
| |
| void | SetClippingOff () |
| |
| bool | GetClipping () const |
| |
| void | SetClippingBox (const CYIAABB &rWorldBox) |
| |
| const CYIAABB & | GetClippingBox () const |
| |
| void | StartPropertyAnimation (YI_NODE_PROPERTY_TYPE ePropType, float fFrom, float fTo, uint32_t nDurMs, CYITimeInterpolator *pTimeInterpolator=nullptr, bool bDirtyLayout=true) |
| |
| void | StopPropertyAnimation (YI_NODE_PROPERTY_TYPE ePropType) |
| |
| void | UpdateLocalSpaceCollision (CYIActionEvent *pActionEvent) |
| |
| virtual bool | BroadcastEvent (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) |
| |
| void | UpdateEventForLocalSpace (CYIActionEvent *pActionEvent, glm::vec3 &rayOrigin, glm::vec3 &rayNonOriginPoint) const |
| |
| bool | IsBoundingBoxHit (const CYIRay &rWorldSpaceRay) const |
| |
| bool | IsMeshHit (const CYIRay &rWorldSpaceRay) const |
| |
| void | DumpTree () const |
| |
| void | StartCaptureKeyboardEvents () |
| |
| void | StopCaptureKeyboardEvents () |
| |
| void | StartCaptureTrackpadEvents () |
| |
| void | StopCaptureTrackpadEvents () |
| |
| void | StartCapturePointerEvents (uint8_t uPointerID) |
| |
| void | StopCapturePointerEvents (uint8_t uPointerID) |
| |
| bool | DrawBehindChildren (CYISceneNode *pSceneNode) |
| |
| bool | DrawInFrontOfChildren (CYISceneNode *pSceneNode) |
| |
| bool | DrawBehind (CYISceneNode *pSceneNode) |
| |
| bool | DrawInFront (CYISceneNode *pSceneNode) |
| |
| bool | IsFocusRoot () const |
| |
| void | SetIsFocusRoot (bool bIsFocusRoot) |
| |
| virtual void | OnFocusGainedInDescendants () |
| |
| virtual void | FocusGainedInDescendants () |
| |
| virtual void | OnFocusLostInDescendants () |
| |
| virtual void | FocusLostInDescendants () |
| |
| virtual void | OnFocusChangedInDescendants () |
| |
| virtual void | FocusChangedInDescendants () |
| |
| virtual bool | ContainsFocusableDescendant (const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const |
| |
| void | ShowPointerDebugNode (CYIActionEvent *pActionEvent) |
| |
| void | SetUseLocalTransformAndAlpha (bool bUse) |
| |
| virtual const std::map< CYIString, CYIString > & | GetProperties () const override |
| |
| void | SetProperty (const CYIString &rPropertyName, const CYIString &rPropertyValue) |
| |
| const std::shared_ptr< CYISceneNodeProxy > & | GetSceneNodeProxy () const |
| |
| void | SetLayoutConfig (std::unique_ptr< CYILayoutConfig > pLayoutConfig) |
| |
| const CYILayoutConfig * | GetLayoutConfig (LayoutConfigFetchMode eFetchMode=LAYOUT_CONFIG_LAZY_INSTANTIATE) const |
| |
| CYILayoutConfig * | GetLayoutConfig (LayoutConfigFetchMode eFetchMode=LAYOUT_CONFIG_LAZY_INSTANTIATE) |
| |
| void | SetLayoutState (std::unique_ptr< CYILayoutState > pLayoutState) |
| |
| const CYILayoutState * | GetLayoutState () const |
| |
| CYILayoutState * | GetLayoutState () |
| |
| void | RequestLayout () |
| |
| LayoutDirtyFlag | GetLayoutDirtyFlag () const |
| |
| virtual void | SetLayoutDirtyFlag (LayoutDirtyFlag eFlag) |
| |
| CYIAbstractCameraSceneNode * | FindActiveCamera () const |
| |
| template<typename T > |
| bool | CanCastTo () const |
| |
| | CYIEventTarget () |
| |
| virtual | ~CYIEventTarget () |
| |
| bool | AddEventListener (YI_EVENT_TYPE eEventType, CYIEventHandler *pListener, EVENT_PHASE ePhase=BUBBLE) |
| |
| bool | RemoveEventListener (YI_EVENT_TYPE eEventType, CYIEventHandler *pListener, EVENT_PHASE ePhase=BUBBLE) |
| |
| void | SetSpecialTypeFlag (YI_SPECIAL_EVENT_TARGET_TYPE eType) |
| |
| void | ClearSpecialTypeFlag (YI_SPECIAL_EVENT_TARGET_TYPE eType) |
| |
| YI_SPECIAL_EVENT_TARGET_TYPE | GetSpecialTypes () const |
| |
| | CYIScriptableRTTIObject () |
| |
| virtual | ~CYIScriptableRTTIObject () |
| |
| virtual const CYIRuntimeTypeInfo * | GetRuntimeTypeInfoForScriptObject () const override |
| |
| | CYIScriptableObject () |
| |
| | CYIScriptableObject (const CYIScriptableObject &other) |
| |
| CYIScriptableObject & | operator= (const CYIScriptableObject &other) |
| |
| virtual | ~CYIScriptableObject () |
| |
| CYIBindingImplementation * | GetBindingImplementation () const |
| |
| void | SetBindingImplementation (CYIBindingImplementation *pBindingImplementation) |
| |
Public Member Functions inherited from CYISignalHandler |
| | CYISignalHandler () |
| |
| | CYISignalHandler (const CYISignalHandler &rSignalHandler) |
| |
| virtual | ~CYISignalHandler () |
| |
| CYISignalHandler & | operator= (const CYISignalHandler &rSignalHandler) |
| |
| 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 &rThreadAffinity) |
| |
| virtual bool | IsConnected () const |
| |
| virtual bool | IsConnected (const CYISignalBase &rSignal) const |
| |
| void | Disconnect (CYISignalBase &rSignal) |
| |
| void | DisconnectFromAllSignals () |
| |
| | Listener () |
| |
| virtual | ~Listener () |
| |
| virtual void | OnThreadStarted (CYIThread *) |
| |
| virtual void | OnThreadTerminated (CYIThread *) |
| |
| virtual void | OnThreadFinished (CYIThread *) |
| |
| virtual | ~IYIPropertiesSource () |
| |
Public Member Functions inherited from CYIEventHandler |
| | CYIEventHandler () |
| |
| | CYIEventHandler (const CYIEventHandler &) |
| |
| virtual | ~CYIEventHandler () |
| |
| CYIEventHandler & | operator= (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 bEnable) |
| |