Provides an implementation of a button which accepts user interaction in the form of a press and release.
This push button can be used to accept user interaction and trigger an event based on signals emitted by this class at various stages of interaction. The class maintains various state timelines and plays them at the various stages of interaction, see below for supported timelines:
View Template Specification
Type | Labels | Property | Description |
Marker | Press | Optional | The timeline to play when the button is pressed down. The reverse will be played when the button is released if the 'Release' marker is not provided. |
Marker | Release | Optional | The timeline to play when the button is released. If this marker is not provided, the reverse of the 'Press' Marker will be played. The reverse will be played when 'Press' marker is not provided. |
Marker | Disable | Optional | The timeline to play when the button is disabled. The reverse will be played when transitioning from the CYIAbstractButtonView::DISABLED to the CYIAbstractButtonView::ENABLED state. |
Marker | Up-Over | Optional | The timeline to play when a cursor enters the button area. If this marker is not provided, the reverse of 'Over-Up' marker will be played. |
Marker | Over-Up | Optional | The timeline to play when a cursor leaves the button area. If this marker is not provided, the reverse of 'Up-Over' marker will be played. |
Marker | Down-Up | Optional | The timeline to play when a cursor leaves the button area while being pressed. If this marker is not provided, the 'Release' marker will be played. If the 'Release' marker is not provided, the reverse of 'Press' will be played. |
Node | Text OR Placeholder-Text | Optional | Text displayed on the button, which can be set using SetText(). |
Node | TextPressed OR Placeholder-TextPressed | Optional | Text displayed on the button when pressed, which can be set using SetText(). This is useful if you want a different font or color when pressed. |
Comment | text | Optional | Corresponds to: SetText(). Contains a quoted string, which will be set as the text of this button, assuming the correct text nodes are present. |
Push buttons are automatically marked focusable when the FocusIn timeline (specified in CYISceneView) is present. The enter or select keys are used to activate a focused button.
|
| CYIPushButtonView () |
|
virtual | ~CYIPushButtonView () |
|
virtual bool | Init () override |
|
| CYIAbstractButtonView () |
|
virtual | ~CYIAbstractButtonView () |
|
void | Enable () |
|
void | Disable () |
|
void | SetEnabled (bool enabled) |
|
bool | IsEnabled () const |
|
bool | IsPressed () const |
|
bool | IsOver () const |
|
void | SetText (const CYIString &text) |
|
const CYIString & | GetText () const |
|
void | SetButtonID (int32_t buttonID) |
|
int32_t | GetButtonID () const |
|
| 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< CYIStringView > | GetProperty (CYIStringView propertyName) const override |
|
bool | GetProperty (CYIStringView propertyName, CYIString *pValue) const |
|
virtual std::map< CYIString, CYIString > | GetProperties () 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::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::Direction direction=CYIFocus::Direction::Forward, CYIFocus::FocusRootRule focusRootRule=CYIFocus::FocusRootRule::DescendantsUpdateContext, const CYIAABB &previousFocusRect=CYIAABB(), const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) |
|
bool | HasFocus () const |
|
void | SetFocusable (bool focusable) |
|
bool | IsFocusable () const |
|
bool | CanBeFocused () const |
|
void | SetNextFocus (CYISceneView *pView, CYIFocus::Direction direction) |
|
CYISceneView * | GetNextFocus (CYIFocus::Direction direction) const |
|
void | SetInitiallyFocusedView (CYISceneView *pView, InitialFocusLifetime initialFocusLifetime=InitialFocusLifetime::Persistent) |
|
CYISceneView * | GetInitiallyFocusedView () const |
|
CYISceneView * | FindNextFocus (CYIFocus::Direction direction, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const |
|
CYISceneView * | FindNextFocus (CYIFocus::Direction direction, CYIAABB &screenSpaceFocusRegion, const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const |
|
virtual CYISceneView * | FindNextFocusInDescendants (const CYISceneView *pCurrentFocusView, CYIFocus::Direction direction, 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 () |
|
virtual void | FocusGainedInDescendants () override |
|
virtual bool | ContainsFocusableDescendant (const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const override |
|
const std::shared_ptr< CYIAssetViewTemplate > & | GetViewTemplate () const |
|
const std::vector< CYIString > & | GetChildTemplateNames () |
|
virtual CYIAbstractTimeline * | GetTimeline (CYIStringView markerName, TimelineGetMode mode=TimelineGetMode::GetDefault) |
|
CYIAbstractTimeline * | GetTimeline (CYIMarkerData::ID id, TimelineGetMode mode=TimelineGetMode::GetDefault) |
|
std::map< CYIString, CYITimeline * > | GetTimelines () const |
|
bool | FindTimeline (CYIAbstractTimeline *&pTimeline, CYIStringView markerName, FetchType type, const CYIString &tag="", TimelineGetMode mode=TimelineGetMode::GetDefault) |
|
CYITimelineGroup * | GetTimelineGroup (CYIStringView markerName) |
|
std::unique_ptr< CYITimelineGroup > | BuildTimelineGroup (CYIStringView 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 | SetDirtyFlag (DirtyFlag dirtyFlag) |
|
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 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< CYISceneNode > | RemoveChild (CYISceneNode *pSceneNode) |
|
bool | ReorderChild (size_t fromIndex, size_t toIndex) |
|
CYITransform * | GetTransform () |
|
CYISceneNode * | GetParent () const |
|
bool | ChangeParent (CYISceneNode *pParent) |
|
CYISceneNode * | GetDrawParent () const |
|
bool | IsAncestorOf (const CYISceneNode *pNode) const |
|
CYISceneManager * | GetSceneManager () const |
|
size_t | GetChildCount () const |
|
uint32_t | GetChildCountRecursive () const |
|
CYISceneNode * | GetChild (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 |
|
CYISceneNode * | GetChild (const CYIString &name) const |
|
size_t | GetDrawChildCount () const |
|
CYISceneNode * | GetDrawChild (size_t index) const |
|
CYISceneNode * | GetDrawChildByID (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 |
|
CYISceneNode * | GetNode (CYIStringView name) |
|
CYISceneNode * | GetNode (CYIStringView 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 (CYIStringView name) |
|
CYISceneNode * | GetNode (const int32_t id) |
|
CYISceneNode * | GetNode (const int32_t id, const CYIRuntimeTypeInfo &enforceClassType) |
|
CYISceneNode * | GetNodeWithUniqueID (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< CYIMask > | RemoveMask (const CYIMask *pMask) |
|
size_t | GetMaskCount () const |
|
const CYIMask * | GetMask (size_t index) const |
|
CYIMask * | GetMask (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 &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 &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 &rWorldBox) |
|
const CYIAABB & | GetClippingBox () 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) |
|
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 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 () |
|
virtual void | OnFocusLostInDescendants () |
|
virtual void | FocusLostInDescendants () |
|
virtual void | OnFocusChangedInDescendants () |
|
virtual void | FocusChangedInDescendants () |
|
void | SetUseLocalTransformAndAlpha (bool use) |
|
bool | GetProperty (CYIStringView propertyName, CYIString *pValue) const |
|
void | SetProperty (const CYIString &rPropertyName, const CYIString &rPropertyValue) |
|
std::shared_ptr< CYISceneNodeProxy > | GetSceneNodeProxy () const |
|
void | SetLayoutConfig (std::unique_ptr< CYILayoutConfig > pLayoutConfig) |
|
const CYILayoutConfig * | GetLayoutConfig (LayoutConfigFetchMode fetchMode=LayoutConfigFetchMode::LazyInstantiate) const |
|
CYILayoutConfig * | GetLayoutConfig (LayoutConfigFetchMode fetchMode=LayoutConfigFetchMode::LazyInstantiate) |
|
void | SetLayoutState (std::unique_ptr< CYILayoutState > pLayoutState) |
|
const CYILayoutState * | GetLayoutState () const |
|
CYILayoutState * | GetLayoutState () |
|
void | RequestLayout () |
|
LayoutDirtyFlag | GetLayoutDirtyFlag () const |
|
virtual void | SetLayoutDirtyFlag (LayoutDirtyFlag flag) |
|
virtual CYIAbstractCameraSceneNode * | FindActiveCamera (const CYISceneNode *pTargetSceneNode=nullptr) const |
|
CYIAccessibilityAttributes::Accessible | GetAccessible () const |
|
void | SetAccessible (CYIAccessibilityAttributes::Accessible accessible) |
|
const CYIAccessibilityAttributes * | GetAccessibilityAttributes () const |
|
std::unique_ptr< CYIAccessibilityAttributes > | TakeAccessibilityAttributes () |
|
void | SetAccessibilityAttributes (std::unique_ptr< CYIAccessibilityAttributes > pAttributes) |
|
template<typename T > |
bool | CanCastTo () const |
|
| 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 &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 ()=default |
|
bool | GetProperty (CYIStringView propertyName, CYIString *pValue) const |
|
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 enable) |
|