Aurore
A Switch-like interface for your app, on every screen
Loading...
Searching...
No Matches
aurore::Dropdown Class Reference

#include <aurore/views/dropdown.hpp>

Inheritance diagram for aurore::Dropdown:
aurore::Box aurore::RecyclerDataSource aurore::View

Public Member Functions

 Dropdown (std::string title, std::vector< std::string > values, ValueSelectedEvent::Callback cb, int selected=0, ValueSelectedEvent::Callback dismissCb=[](int) {})
 
void show (std::function< void(void)> cb, bool animate, float animationDuration) override
 
void hide (std::function< void(void)> cb, bool animated, float animationDuration) override
 
virtual AppletFrame * getAppletFrame () override
 The AppletFrame the view is in, or nullptr.
 
virtual View * getParentNavigationDecision (View *from, View *newFocus, FocusDirection direction) override
 
Event< RecyclerCell * > * getCellFocusDidChangeEvent ()
 
bool isTranslucent () override
 
- Public Member Functions inherited from aurore::Box
 Box (Axis flexDirection)
 An empty box laying its children out along flexDirection.
 
 Box ()
 An empty row.
 
 ~Box ()
 Deletes the children (those a ptrLock() holds go to the deletion pool).
 
void draw (NVGcontext *vg, float x, float y, float width, float height, Style style, FrameContext *ctx) override
 
View * getDefaultFocus () override
 
View * hitTest (Point point) override
 
View * getNextFocus (FocusDirection direction, View *currentView) override
 
void willAppear (bool resetState) override
 
void willDisappear (bool resetState) override
 
void onWindowSizeChanged () override
 
void onThemeChanged () override
 
void onFocusGained () override
 
void onFocusLost () override
 
void onParentFocusGained (View *focusedView) override
 
void onParentFocusLost (View *focusedView) override
 
bool applyXMLAttribute (std::string name, std::string value) override
 
virtual void addView (View *view)
 
virtual void addView (View *view, size_t position)
 
virtual void removeView (View *view, bool free=true)
 
virtual void clearViews (bool free=true)
 
virtual void setPadding (float padding)
 
virtual void setPadding (float top, float right, float bottom, float left)
 
virtual void setPaddingTop (float top)
 
float getPaddingTop ()
 
virtual void setPaddingRight (float right)
 
float getPaddingRight ()
 
virtual void setPaddingBottom (float bottom)
 
float getPaddingBottom ()
 
virtual void setPaddingLeft (float left)
 
float getPaddingLeft ()
 
virtual void setGap (float gap)
 
float getGap ()
 
void setRowGap (float gap)
 
float getRowGap ()
 
void setColumnGap (float gap)
 
float getColumnGap ()
 
void setJustifyContent (JustifyContent justify)
 
void setAlignItems (AlignItems alignment)
 
void setDirection (Direction direction)
 
void setAxis (Axis axis)
 The axis the children are laid out along.
 
Axis getAxis () const
 
void setWrap (Wrap wrap)
 
Wrap getWrap () const
 
std::vector< View * > & getChildren ()
 The children, in order. The box owns them: it deletes them with itself.
 
virtual void getCullingBounds (float *top, float *right, float *bottom, float *left)
 
void forwardXMLAttribute (std::string attributeName, View *target)
 
void forwardXMLAttribute (std::string attributeName, View *target, std::string targetAttributeName)
 
virtual void onChildFocusGained (View *directChild, View *focusedView)
 
virtual void onChildFocusLost (View *directChild, View *focusedView)
 
View * getView (std::string id) override
 
void setLastFocusedView (View *view)
 The child the focus goes back to when the box gets it again.
 
void setDefaultFocusedIndex (int index)
 The child that takes the focus first (negative values are ignored).
 
size_t getDefaultFocusedIndex () const
 
View * getLastFocusedView () const
 See setLastFocusedView().
 
virtual bool isChildFocused ()
 Whether the focus is on one of the children, at any depth.
 
- Public Member Functions inherited from aurore::View
void setScale (float scale)
 
void setScaleX (float scale)
 
void setScaleY (float scale)
 
float getScaleX () const
 
float getScaleY () const
 
 View ()
 
virtual ~View ()
 
void setBackground (ViewBackground background)
 How the view's background is drawn: none, the sidebar's, the backdrop, a plain colour or a gradient.
 
void setBackgroundLinearGradient (NVGcolor start, NVGcolor end, ViewBackground direction=ViewBackground::VERTICAL_LINEAR)
 
void shakeHighlight (FocusDirection direction)
 Shakes the focus highlight towards direction: there is nothing to go to there.
 
Rect getFrame ()
 The view's position and size on the screen, after layout (getX(), getY(), getWidth(), getHeight()).
 
float getX ()
 The position on the screen, in layout units: the parents' positions and translations added.
 
float getY ()
 
Rect getLocalFrame ()
 The position and size in the parent, as laid out by Yoga.
 
float getLocalX ()
 
float getLocalY ()
 
float getWidth ()
 The size as laid out by Yoga; the height without the collapse when includeCollapse is false.
 
float getHeight (bool includeCollapse=true)
 
virtual void invalidate ()
 
virtual void onLayout ()
 
void setWidth (float width)
 
void setHeight (float height)
 
void setSize (Size size)
 
void setDimensions (float width, float height)
 
void setWidthPercentage (float percentage)
 
void setHeightPercentage (float percentage)
 
void setMinWidth (float minWidth)
 
void setMinHeight (float minHeight)
 
void setMinWidthPercentage (float percentage)
 
void setMinHeightPercentage (float percentage)
 
void setMaxWidth (float maxWidth)
 
void setMaxHeight (float maxHeight)
 
void setMaxWidthPercentage (float percentage)
 
void setMaxHeightPercentage (float percentage)
 
void setGrow (float grow)
 
void setShrink (float shrink)
 
void setMargins (float top, float right, float bottom, float left)
 
void setMarginTop (float top)
 
void setMarginRight (float right)
 
float getMarginRight ()
 
float getMarginLeft ()
 
void setMarginBottom (float right)
 
void setMarginLeft (float left)
 
void setVisibility (Visibility visibility)
 
Visibility getVisibility ()
 
void setPositionTop (float pos)
 
void setPositionRight (float pos)
 
void setPositionBottom (float pos)
 
void setPositionLeft (float pos)
 
void setPositionTopPercentage (float percentage)
 
void setPositionRightPercentage (float percentage)
 
void setPositionBottomPercentage (float percentage)
 
void setPositionLeftPercentage (float percentage)
 
void setPositionType (PositionType type)
 
void setId (std::string id)
 
const std::string & getId () const
 
void setAlignSelf (AlignSelf align)
 
void setBoxSizing (BoxSizing sizing)
 
void setLineColor (NVGcolor color)
 
void setLineTop (float thickness)
 
void setLineRight (float thickness)
 
void setLineBottom (float thickness)
 
void setLineLeft (float thickness)
 
void setBackgroundColor (NVGcolor color)
 
void setBorderColor (NVGcolor color)
 
ViewBackground getBackground () const
 
NVGcolor getBackgroundColor () const
 
NVGcolor getBorderColor () const
 
void setBorderThickness (float thickness)
 
float getBorderThickness ()
 
void setCornerRadius (float radius)
 
void setCornerRadius (float topLeft, float topRight, float bottomRight, float bottomLeft)
 
float getCornerRadius ()
 
void setThemeArea (ThemeArea area)
 
ThemeArea getThemeArea () const
 
void setShadowType (ShadowType type)
 
void setShadowVisibility (bool visible)
 
void setHideHighlightBackground (bool hide)
 
void setHideHighlightBorder (bool hide)
 
void setHideHighlight (bool hide)
 
void setHideClickAnimation (bool hide)
 No click animation when the view is clicked.
 
void setHighlightPadding (float padding)
 
void setHighlightCornerRadius (float radius)
 
virtual View * getNearestView (std::string id)
 
virtual void applyXMLAttributes (tinyxml2::XMLElement *element)
 
void registerAutoXMLAttribute (std::string name, AutoAttributeHandler handler)
 
void registerPercentageXMLAttribute (std::string name, FloatAttributeHandler handler)
 
void registerFloatXMLAttribute (std::string name, FloatAttributeHandler handler)
 
void registerStringXMLAttribute (std::string name, StringAttributeHandler handler)
 
void registerColorXMLAttribute (std::string name, ColorAttributeHandler handler)
 
void registerBoolXMLAttribute (std::string name, BoolAttributeHandler handler)
 
void registerFilePathXMLAttribute (std::string name, FilePathAttributeHandler handler)
 
bool isXMLAttributeValid (std::string attributeName)
 
void setMaximumAllowedXMLElements (unsigned max)
 
unsigned getMaximumAllowedXMLElements ()
 
void setInFadeAnimation (bool translucent)
 
void setFocusable (bool focusable)
 
bool isFocusable ()
 Whether the view takes the focus: focusable, and visible.
 
void removeFromSuperView (bool free=true)
 
void setFocusSound (enum Sound sound)
 
virtual enum Sound getFocusSound ()
 
void detach ()
 
bool isDetached ()
 See detach().
 
void setDetachedPosition (float x, float y)
 
void setDetachedPositionX (float x)
 
void setDetachedPositionY (float y)
 
Point getDetachedPosition () const
 
void setParent (Box *parent, void *parentUserdata=nullptr)
 The box this view is in (Box::addView sets it; parentUserdata is the box's own).
 
Box * getParent ()
 
bool hasParent ()
 
void * getParentUserData ()
 
template<class ButtonType >
ActionIterator getAction (ButtonType button)
 
ActionIterator getAction (ActionIdentifier identifier)
 The action registered under identifier, or getActions().end().
 
template<class ButtonType , class ActionType >
ActionIdentifier registerAction (const std::string &hintText, ButtonType button, const ActionListener &actionListener, bool hidden=false, bool allowRepeating=false, enum Sound sound=SOUND_NONE)
 
ActionIdentifier registerAction (const std::string &hintText, ControllerButton button, const ActionListener &actionListener, bool hidden=false, bool allowRepeating=false, enum Sound sound=SOUND_NONE)
 The same, on a controller button.
 
ActionIdentifier registerAction (AuroreKeyCombination key, const ActionListener &actionListener, bool allowRepeating=false)
 An action on a keyboard key (a combination with modifiers): no hint, no sound.
 
void func (AuroreKeyCombination key)
 
void unregisterAction (ActionIdentifier identifier)
 
void registerClickAction (const ActionListener &actionListener)
 
void updateActionHint (enum ControllerButton button, const std::string &hintText)
 Changes the hint of the action on button.
 
void setActionAvailable (enum ControllerButton button, bool available)
 Turns the action on button on or off (an action off runs nothing and shows no hint).
 
void setActionsAvailable (bool available) const
 The same for every action of the view.
 
void setActionHidden (enum ControllerButton button, bool hidden)
 
void resetClickAnimation ()
 
void playClickAnimation (bool reverse=false, bool animateBack=true, bool force=false)
 Plays the click animation (the flash over the view).
 
std::string getClassString () const
 The view's class name ("Label", "Box"…).
 
std::string describe () const
 The class name and the id, for logs: Label (id="title").
 
YGNode * getYGNode ()
 The view's Yoga node.
 
const std::vector< std::shared_ptr< Action > > & getActions ()
 The actions registered on the view.
 
const std::vector< GestureRecognizer * > & getGestureRecognizers ()
 
void interruptGestures (bool onlyIfUnsureState)
 
void addGestureRecognizer (GestureRecognizer *recognizer)
 
bool removeGestureRecognizer (GestureRecognizer *recognizer)
 
Sound gestureRecognizerRequest (TouchState touch, MouseState mouse, View *firstResponder)
 
virtual void frame (FrameContext *ctx)
 
void frameHighlight (FrameContext *ctx)
 
virtual void onShowAnimationEnd ()
 
virtual void show (std::function< void(void)> cb)
 
void collapse (bool animated=true)
 
bool isCollapsed ()
 Whether collapse() hid the view.
 
void setAlpha (float alpha)
 The view's opacity, 0 to 1 (a transition when its style has one).
 
void expand (bool animated=true)
 
virtual void hide (std::function< void(void)> cb)
 
bool isHidden ()
 Whether hide() hid the view.
 
bool isFocused ()
 Whether the view has the focus.
 
void setCustomNavigationRoute (FocusDirection direction, View *target)
 
void setCustomNavigationRoute (FocusDirection direction, std::string targetId)
 
bool hasCustomNavigationRouteByPtr (FocusDirection direction)
 
bool hasCustomNavigationRouteById (FocusDirection direction)
 
View * getCustomNavigationRoutePtr (FocusDirection direction)
 
std::string getCustomNavigationRouteId (FocusDirection direction)
 
GenericEvent * getFocusEvent ()
 Fired with the view when it gains the focus.
 
GenericEvent * getFocusLostEvent ()
 Fired with the view when it loses the focus.
 
virtual float getAlpha (bool child=false)
 The opacity drawn: the view's alpha times its parents'.
 
float getClickAlpha ()
 
void overrideTheme (Theme *newTheme)
 
void setCulled (bool culled)
 
bool isCulled ()
 
void setAspectRatio (float value)
 The width over the height, kept by the layout (values <= 0 are ignored).
 
float getAspectRatio ()
 
void setBackgroundCornerRadii (float topLeft, float topRight, float bottomRight, float bottomLeft)
 
void setTranslationY (float translateY)
 
void setTranslationX (float translateX)
 
void setWireframeEnabled (bool wireframe)
 
bool isWireframeEnabled ()
 
AppletFrameItem * getAppletFrameItem ()
 
void updateAppletFrameItem ()
 
bool getClipsToBounds () const
 Whether the children are clipped to the view's frame when drawn.
 
void setClipsToBounds (bool value)
 
void present (View *view)
 Pushes view as the content of the view's AppletFrame (a page inside the frame).
 
virtual void dismiss (std::function< void(void)> cb=[] {})
 Pops the AppletFrame's content back to the one before, then runs cb.
 
std::weak_ptr< void > aliveToken ()
 
void ptrLock ()
 
void ptrUnlock ()
 
bool isPtrLocked ()
 Whether a ptrLock() holds the view.
 
void freeView ()
 Deletes the view at the end of the frame (Application::addToFreeQueue).
 
Activity * getParentActivity ()
 The activity the view is in, through its parents; nullptr when none.
 
void setParentActivity (Activity *activity)
 
bool setStateStyle (StyleState state, const std::string &property, const std::string &value)
 
void setStyleState (StyleState state, bool on)
 
bool hasStyleState (StyleState state)
 
bool setTransition (const std::string &spec)
 
virtual bool getStyleProperty (const std::string &name, StyleValue *value)
 
virtual bool setStyleProperty (const std::string &name, const StyleValue &value)
 
void keepSubscription (Subscription &&subscription)
 
bool bind (const std::string &spec)
 
virtual bool setBoundText (const std::string &text)
 
void setAccessibilityRole (AccessibilityRole role)
 
AccessibilityRole getAccessibilityRole ()
 See setAccessibilityRole().
 
void setAccessibilityLabel (const std::string &label)
 
std::string getAccessibilityLabel ()
 
void setAccessibilityValue (const std::string &value)
 
std::string getAccessibilityValue ()
 
void setAccessibilitySelected (bool selected)
 
bool isAccessibilitySelected ()
 
virtual bool getAccessibilityPosition (int *index, int *count)
 
virtual std::string getAccessibilityDescription ()
 
std::string getAccessibilityText ()
 
void announceAccessibilityValue ()
 
void resolveBindings (Activity *activity=nullptr)
 
virtual void onTextScaleChanged ()
 
bool setThemeColor (const std::string &property, const std::string &key)
 
std::string getThemeColor (const std::string &property)
 

Protected Member Functions

float getShowAnimationDuration (TransitionAnimation animation) override
 
AccessibilityRole getDefaultAccessibilityRole () override
 
std::string getDefaultAccessibilityLabel () override
 A focusable box says the texts shown in it (getAccessibilityText).
 
- Protected Member Functions inherited from aurore::Box
void inflateFromXMLString (std::string_view xml)
 
void inflateFromXMLElement (tinyxml2::XMLElement *element)
 
void inflateFromXMLRes (const std::string &res)
 
void inflateFromXMLFile (const std::string &path)
 
void handleXMLElement (tinyxml2::XMLElement *element) override
 
- Protected Member Functions inherited from aurore::View
NVGcolor a (NVGcolor color)
 Helper functions to apply this view's alpha to a color.
 
NVGpaint a (NVGpaint paint)
 
NVGcolor RGB (unsigned r, unsigned g, unsigned b)
 
NVGcolor RGBA (unsigned r, unsigned g, unsigned b, unsigned a)
 
NVGcolor RGBf (float r, float g, float b)
 
NVGcolor RGBAf (float r, float g, float b, float a)
 
NVGcolor shadowColor (NVGcolor color, float opacity)
 
virtual bool animateHint ()
 
virtual std::string getDefaultAccessibilityValue ()
 
virtual bool getDefaultAccessibilitySelected ()
 
bool transitionStyle (const char *name, const StyleValue &to)
 

Additional Inherited Members

- Public Types inherited from aurore::View
typedef std::vector< std::shared_ptr< Action > >::iterator ActionIterator
 
- Static Public Member Functions inherited from aurore::Box
static View * create ()
 
- Static Public Member Functions inherited from aurore::View
static void setHighlightGlide (bool glide)
 
static View * createFromXMLString (std::string_view xml)
 
static View * createFromXMLElement (tinyxml2::XMLElement *element)
 
static View * createFromXMLFile (std::string path)
 
static View * createFromXMLResource (std::string name)
 
static std::shared_ptr< tinyxml2::XMLDocument > getXMLCache (std::string_view path)
 
static void forgetXMLCache (const std::string &path)
 
static std::string describeXMLError (tinyxml2::XMLDocument *document, const std::string &source="")
 
static std::string describeXMLLocation (const tinyxml2::XMLElement *element)
 
static void fatalXML (const std::string &message)
 
static std::string closestXMLName (const std::string &name, const std::vector< std::string > &known)
 
template<typename T >
static std::string listXMLValues (const std::unordered_map< std::string, T > &values)
 An enumeration's values, sorted, for an error message.
 
static std::string getStringXMLAttributeValue (std::string value)
 
static std::string getFilePathXMLAttributeValue (std::string value)
 
- Public Attributes inherited from aurore::View
Animatable alpha = 1.0f
 
- Static Public Attributes inherited from aurore::View
static constexpr float AUTO = NAN
 A size or position left to the layout (auto in XML).
 
static std::string CUSTOM_RESOURCES_PATH
 
static std::string currentXMLResource
 
- Protected Attributes inherited from aurore::View
Animatable collapseState = 1.0f
 
bool focused = false
 
Activity * parentActivity = nullptr
 
Box * parent = nullptr
 
GenericEvent focusEvent
 
GenericEvent focusLostEvent
 
YGNode * ygNode
 
std::string id = ""
 

Constructor & Destructor Documentation

◆ Dropdown()

aurore::Dropdown::Dropdown ( std::string  title,
std::vector< std::string >  values,
ValueSelectedEvent::Callback  cb,
int  selected = 0,
ValueSelectedEvent::Callback  dismissCb = [](int) {} 
)

Member Function Documentation

◆ getAppletFrame()

virtual AppletFrame * aurore::Dropdown::getAppletFrame ( )
overridevirtual

The AppletFrame the view is in, or nullptr.

Reimplemented from aurore::View.

◆ getCellFocusDidChangeEvent()

Event< RecyclerCell * > * aurore::Dropdown::getCellFocusDidChangeEvent ( )
inline

◆ getDefaultAccessibilityLabel()

std::string aurore::Dropdown::getDefaultAccessibilityLabel ( )
inlineoverrideprotectedvirtual

A focusable box says the texts shown in it (getAccessibilityText).

Reimplemented from aurore::Box.

◆ getDefaultAccessibilityRole()

AccessibilityRole aurore::Dropdown::getDefaultAccessibilityRole ( )
inlineoverrideprotectedvirtual

The view's own role and label when the app gave none.

Reimplemented from aurore::View.

◆ getParentNavigationDecision()

virtual View * aurore::Dropdown::getParentNavigationDecision ( View *  from,
View *  newFocus,
FocusDirection  direction 
)
overridevirtual

The focus about to move from from to newFocus: a box may give another view instead. Asked of every parent up the tree; returns newFocus by default.

Reimplemented from aurore::Box.

◆ getShowAnimationDuration()

float aurore::Dropdown::getShowAnimationDuration ( TransitionAnimation  animation)
overrideprotectedvirtual

Returns the duration of the view show / hide animation.

Reimplemented from aurore::View.

◆ hide()

void aurore::Dropdown::hide ( std::function< void(void)>  cb,
bool  animate,
float  animationDuration 
)
overridevirtual

Hides the view with a fade out animation, or no animation at all.

Reimplemented from aurore::View.

◆ isTranslucent()

bool aurore::Dropdown::isTranslucent ( )
inlineoverridevirtual

Is this view translucent?

If you override it please return

|| View::isTranslucent() to keep the fadeIn transition

Reimplemented from aurore::View.

◆ show()

void aurore::Dropdown::show ( std::function< void(void)>  cb,
bool  animate,
float  animationDuration 
)
overridevirtual

Shows the view with a fade in animation, or no animation at all.

Reimplemented from aurore::View.


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