Menu UI element that displays a popup list view. More...

#include <Urho3D/UI/DropDownList.h>

Inheritance diagram for Urho3D::DropDownList:
[legend]
Collaboration diagram for Urho3D::DropDownList:
[legend]

Public Member Functions

 DropDownList (Context *context)
 Construct.
 
virtual ~DropDownList () override
 Destruct.
 
virtual void ApplyAttributes () override
 Apply attribute changes that can not be applied immediately.
 
virtual void GetBatches (PODVector< UIBatch > &batches, PODVector< float > &vertexData, const IntRect &currentScissor) override
 Return UI rendering batches.
 
virtual void OnShowPopup () override
 React to the popup being shown.
 
virtual void OnHidePopup () override
 React to the popup being hidden.
 
virtual void OnSetEditable () override
 React to editable status change.
 
void AddItem (UIElement *item)
 Add item to the end of the list.
 
void InsertItem (unsigned index, UIElement *item)
 Insert item to a specific position.
 
void RemoveItem (UIElement *item)
 Remove specific item.
 
void RemoveItem (unsigned index)
 Remove item at index.
 
void RemoveAllItems ()
 Remove all items.
 
void SetSelection (unsigned index)
 Set selection.
 
void SetPlaceholderText (const String &text)
 Set place holder text. This is the text shown when there is no selection (-1) in drop down list. Note that if the list has items, the default is to show the first item, so the "no selection" state has to be set explicitly.
 
void SetResizePopup (bool enable)
 Set whether popup should be automatically resized to match the dropdown button width.
 
unsigned GetNumItems () const
 Return number of items.
 
UIElementGetItem (unsigned index) const
 Return item at index.
 
PODVector< UIElement * > GetItems () const
 Return all items.
 
unsigned GetSelection () const
 Return selection index, or M_MAX_UNSIGNED if none selected.
 
UIElementGetSelectedItem () const
 Return selected item, or null if none selected.
 
ListViewGetListView () const
 Return listview element.
 
UIElementGetPlaceholder () const
 Return selected item placeholder element.
 
const StringGetPlaceholderText () const
 Return place holder text.
 
bool GetResizePopup () const
 Return whether popup should be automatically resized.
 
void SetSelectionAttr (unsigned index)
 Set selection attribute.
 
- Public Member Functions inherited from Urho3D::Menu
 Menu (Context *context)
 Construct.
 
virtual ~Menu () override
 Destruct.
 
virtual bool LoadXML (const XMLElement &source, XMLFile *styleFile, bool setInstanceDefault=false) override
 Load from XML data with style. Return true if successful.
 
virtual bool SaveXML (XMLElement &dest) const override
 Save as XML data. Return true if successful.
 
virtual void Update (float timeStep) override
 Perform UI element update.
 
virtual void OnHover (const IntVector2 &position, const IntVector2 &screenPosition, int buttons, int qualifiers, Cursor *cursor) override
 React to mouse hover.
 
void SetPopup (UIElement *element)
 Set popup element to show on selection.
 
void SetPopupOffset (const IntVector2 &offset)
 Set popup element offset.
 
void SetPopupOffset (int x, int y)
 Set popup element offset.
 
void ShowPopup (bool enable)
 Force the popup to show or hide.
 
void SetAccelerator (int key, int qualifiers)
 Set accelerator key (set zero key code to disable.)
 
UIElementGetPopup () const
 Return popup element.
 
const IntVector2GetPopupOffset () const
 Return popup element offset.
 
bool GetShowPopup () const
 Return whether popup is open.
 
int GetAcceleratorKey () const
 Return accelerator key code, 0 if disabled.
 
int GetAcceleratorQualifiers () const
 Return accelerator qualifiers.
 
- Public Member Functions inherited from Urho3D::Button
 Button (Context *context)
 Construct.
 
virtual ~Button () override
 Destruct.
 
virtual void OnClickBegin (const IntVector2 &position, const IntVector2 &screenPosition, int button, int buttons, int qualifiers, Cursor *cursor) override
 React to mouse click begin.
 
virtual void OnClickEnd (const IntVector2 &position, const IntVector2 &screenPosition, int button, int buttons, int qualifiers, Cursor *cursor, UIElement *beginElement) override
 React to mouse click end.
 
virtual void OnDragMove (const IntVector2 &position, const IntVector2 &screenPosition, const IntVector2 &deltaPos, int buttons, int qualifiers, Cursor *cursor) override
 React to mouse drag motion.
 
virtual void OnKey (int key, int buttons, int qualifiers) override
 React to a key press.
 
void SetPressedOffset (const IntVector2 &offset)
 Set offset to image rectangle used when pressed.
 
void SetPressedOffset (int x, int y)
 Set offset to image rectangle used when pressed.
 
void SetDisabledOffset (const IntVector2 &offset)
 Set offset to image rectangle used when disabled.
 
void SetDisabledOffset (int x, int y)
 Set offset to image rectangle used when disabled.
 
void SetPressedChildOffset (const IntVector2 &offset)
 Set offset of child elements when pressed.
 
void SetPressedChildOffset (int x, int y)
 Set offset of child elements when pressed.
 
void SetRepeat (float delay, float rate)
 Set repeat properties. Rate 0 (default) disables repeat.
 
void SetRepeatDelay (float delay)
 Set repeat delay.
 
void SetRepeatRate (float rate)
 Set repeat rate.
 
const IntVector2GetPressedOffset () const
 Return pressed image offset.
 
const IntVector2GetDisabledOffset () const
 Return disabled image offset.
 
const IntVector2GetPressedChildOffset () const
 Return offset of child elements when pressed.
 
float GetRepeatDelay () const
 Return repeat delay.
 
float GetRepeatRate () const
 Return repeat rate.
 
bool IsPressed () const
 Return whether is currently pressed.
 
- Public Member Functions inherited from Urho3D::BorderImage
 BorderImage (Context *context)
 Construct.
 
virtual ~BorderImage () override
 Destruct.
 
void SetTexture (Texture *texture)
 Set texture.
 
void SetImageRect (const IntRect &rect)
 Set part of texture to use as the image.
 
void SetFullImageRect ()
 Use whole texture as the image.
 
void SetBorder (const IntRect &rect)
 Set border dimensions on the screen.
 
void SetImageBorder (const IntRect &rect)
 Set border dimensions on the image. If zero (default) uses the screen dimensions, resulting in pixel-perfect borders.
 
void SetHoverOffset (const IntVector2 &offset)
 Set offset to image rectangle used on hover.
 
void SetHoverOffset (int x, int y)
 Set offset to image rectangle used on hover.
 
void SetBlendMode (BlendMode mode)
 Set blend mode.
 
void SetTiled (bool enable)
 Set tiled mode.
 
TextureGetTexture () const
 Return texture.
 
const IntRectGetImageRect () const
 Return image rectangle.
 
const IntRectGetBorder () const
 Return border screen dimensions.
 
const IntRectGetImageBorder () const
 Return border image dimensions. Zero rect uses border screen dimensions.
 
const IntVector2GetHoverOffset () const
 Return offset to image rectangle used on hover.
 
BlendMode GetBlendMode () const
 Return blend mode.
 
bool IsTiled () const
 Return whether is tiled.
 
void SetTextureAttr (const ResourceRef &value)
 Set texture attribute.
 
ResourceRef GetTextureAttr () const
 Return texture attribute.
 
- Public Member Functions inherited from Urho3D::UIElement
 UIElement (Context *context)
 Construct.
 
virtual ~UIElement () override
 Destruct.
 
virtual bool LoadXML (const XMLElement &source, bool setInstanceDefault=false) override
 Load from XML data. Return true if successful.
 
virtual UIElementLoadChildXML (const XMLElement &childElem, XMLFile *styleFile=nullptr, bool setInstanceDefault=false)
 Create a child by loading from XML data with style. Returns the child element if successful, null if otherwise.
 
virtual bool IsWithinScissor (const IntRect &currentScissor)
 Return whether is visible and inside a scissor rectangle and should be rendered.
 
virtual const IntVector2GetScreenPosition () const
 Update and return screen position.
 
virtual void GetDebugDrawBatches (PODVector< UIBatch > &batches, PODVector< float > &vertexData, const IntRect &currentScissor)
 Return UI rendering batches for debug draw.
 
virtual void OnDoubleClick (const IntVector2 &position, const IntVector2 &screenPosition, int button, int buttons, int qualifiers, Cursor *cursor)
 React to double mouse click.
 
virtual void OnDragBegin (const IntVector2 &position, const IntVector2 &screenPosition, int buttons, int qualifiers, Cursor *cursor)
 React to mouse drag begin.
 
virtual void OnDragEnd (const IntVector2 &position, const IntVector2 &screenPosition, int dragButtons, int releaseButton, Cursor *cursor)
 React to mouse drag end.
 
virtual void OnDragCancel (const IntVector2 &position, const IntVector2 &screenPosition, int dragButtons, int cancelButton, Cursor *cursor)
 React to a mouse drag cancel event (ie, when an extra button is pressed)
 
virtual bool OnDragDropTest (UIElement *source)
 React to drag and drop test. Return true to signal that the drop is acceptable.
 
virtual bool OnDragDropFinish (UIElement *source)
 React to drag and drop finish. Return true to signal that the drop was accepted.
 
virtual void OnWheel (int delta, int buttons, int qualifiers)
 React to mouse wheel.
 
virtual void OnTextInput (const String &text)
 React to text input event.
 
virtual void OnResize (const IntVector2 &newSize, const IntVector2 &delta)
 React to resize.
 
virtual void OnPositionSet (const IntVector2 &newPosition)
 React to position change.
 
virtual void OnIndentSet ()
 React to indent change.
 
virtual IntVector2 ScreenToElement (const IntVector2 &screenPosition)
 Convert screen coordinates to element coordinates.
 
virtual IntVector2 ElementToScreen (const IntVector2 &position)
 Convert element coordinates to screen coordinates.
 
bool LoadXML (Deserializer &source)
 Load from an XML file. Return true if successful.
 
bool SaveXML (Serializer &dest, const String &indentation="\t") const
 Save to an XML file. Return true if successful.
 
bool FilterAttributes (XMLElement &dest) const
 Filter attributes in serialization process.
 
void SetName (const String &name)
 Set name.
 
void SetPosition (const IntVector2 &position)
 Set position.
 
void SetPosition (int x, int y)
 Set position.
 
void SetSize (const IntVector2 &size)
 Set size.
 
void SetSize (int width, int height)
 Set size.
 
void SetWidth (int width)
 Set width only.
 
void SetHeight (int height)
 Set height only.
 
void SetMinSize (const IntVector2 &minSize)
 Set minimum size.
 
void SetMinSize (int width, int height)
 Set minimum size.
 
void SetMinWidth (int width)
 Set minimum width.
 
void SetMinHeight (int height)
 Set minimum height.
 
void SetMaxSize (const IntVector2 &maxSize)
 Set maximum size.
 
void SetMaxSize (int width, int height)
 Set maximum size.
 
void SetMaxWidth (int width)
 Set maximum width.
 
void SetMaxHeight (int height)
 Set maximum height.
 
void SetFixedSize (const IntVector2 &size)
 Set fixed size.
 
void SetFixedSize (int width, int height)
 Set fixed size.
 
void SetFixedWidth (int width)
 Set fixed width.
 
void SetFixedHeight (int height)
 Set fixed height.
 
void SetAlignment (HorizontalAlignment hAlign, VerticalAlignment vAlign)
 Set horizontal and vertical alignment.
 
void SetHorizontalAlignment (HorizontalAlignment align)
 Set horizontal alignment.
 
void SetVerticalAlignment (VerticalAlignment align)
 Set vertical alignment.
 
void SetEnableAnchor (bool enable)
 Enable automatic positioning & sizing of the element relative to its parent using min/max anchor and min/max offset. Default false.
 
void SetMinAnchor (const Vector2 &anchor)
 Set minimum (top left) anchor in relation to the parent element (from 0 to 1.) No effect when anchor is not enabled.
 
void SetMinAnchor (float x, float y)
 Set minimum anchor.
 
void SetMaxAnchor (const Vector2 &anchor)
 Set maximum (bottom right) anchor in relation to the parent element (from 0 to 1.) No effect when anchor is not enabled.
 
void SetMaxAnchor (float x, float y)
 Set maximum anchor.
 
void SetMinOffset (const IntVector2 &offset)
 Set offset of element's top left from the minimum anchor in pixels. No effect when anchor is not enabled.
 
void SetMaxOffset (const IntVector2 &offset)
 Set offset of element's bottom right from the maximum anchor in pixels. No effect when anchor is not enabled.
 
void SetPivot (const Vector2 &pivot)
 Set pivot relative to element's size (from 0 to 1, where 0.5 is center.) Overrides horizontal & vertical alignment.
 
void SetPivot (float x, float y)
 Set pivot relative to element's size (from 0 to 1, where 0.5 is center.) Overrides horizontal & vertical alignment.
 
void SetClipBorder (const IntRect &rect)
 Set child element clipping border.
 
void SetColor (const Color &color)
 Set color on all corners.
 
void SetColor (Corner corner, const Color &color)
 Set color on one corner.
 
void SetPriority (int priority)
 Set priority.
 
void SetOpacity (float opacity)
 Set opacity.
 
void SetBringToFront (bool enable)
 Set whether should be brought to front when focused.
 
void SetBringToBack (bool enable)
 Set whether should be put to background when another element is focused.
 
void SetClipChildren (bool enable)
 Set whether should clip child elements. Default false.
 
void SetSortChildren (bool enable)
 Set whether should sort child elements according to priority. Default true.
 
void SetUseDerivedOpacity (bool enable)
 Set whether parent elements' opacity affects opacity. Default true.
 
void SetEnabled (bool enable)
 Set whether reacts to input. Default false, but is enabled by subclasses if applicable.
 
void SetDeepEnabled (bool enable)
 Set enabled state on self and child elements. Elements' own enabled state is remembered (IsEnabledSelf) and can be restored.
 
void ResetDeepEnabled ()
 Reset enabled state to the element's remembered state prior to calling SetDeepEnabled.
 
void SetEnabledRecursive (bool enable)
 Set enabled state on self and child elements. Unlike SetDeepEnabled this does not remember the elements' own enabled state, but overwrites it.
 
void SetEditable (bool enable)
 Set whether value is editable through input. Not applicable to all elements. Default true.
 
void SetFocus (bool enable)
 Set whether is focused. Only one element can be focused at a time.
 
void SetSelected (bool enable)
 Set selected mode. Actual meaning is element dependent, for example constant hover or pressed effect.
 
void SetVisible (bool enable)
 Set whether is visible. Visibility propagates to child elements.
 
void SetFocusMode (FocusMode mode)
 Set focus mode.
 
void SetDragDropMode (unsigned mode)
 Set drag and drop flags.
 
bool SetStyle (const String &styleName, XMLFile *file=nullptr)
 Set style from an XML file. Find the style element by name. If the style file is not explicitly provided, use the default style from parental chain. Return true if the style is applied successfully.
 
bool SetStyle (const XMLElement &element)
 Set style from an XML element. Return true if the style is applied successfully.
 
bool SetStyleAuto (XMLFile *file=nullptr)
 Set style from an XML file. Find the style element automatically by using the element's typename. If the style file is not explicitly provided, use the default style from parental chain. Return true if the style is applied successfully.
 
void SetDefaultStyle (XMLFile *style)
 Set default style file for later use by children elements.
 
void SetLayout (LayoutMode mode, int spacing=0, const IntRect &border=IntRect::ZERO)
 Set layout parameters.
 
void SetLayoutMode (LayoutMode mode)
 Set layout mode only.
 
void SetLayoutSpacing (int spacing)
 Set layout spacing.
 
void SetLayoutBorder (const IntRect &border)
 Set layout border.
 
void SetLayoutFlexScale (const Vector2 &scale)
 Set layout flex scale.
 
void SetIndent (int indent)
 Set horizontal indentation.
 
void SetIndentSpacing (int indentSpacing)
 Set indent spacing (number of pixels per indentation level).
 
void UpdateLayout ()
 Manually update layout. Should not be necessary in most cases, but is provided for completeness.
 
void DisableLayoutUpdate ()
 Disable automatic layout update. Should only be used if there are performance problems.
 
void EnableLayoutUpdate ()
 Enable automatic layout update.
 
void BringToFront ()
 Bring UI element to front.
 
UIElementCreateChild (StringHash type, const String &name=String::EMPTY, unsigned index=M_MAX_UNSIGNED)
 Create and add a child element and return it.
 
void AddChild (UIElement *element)
 Add a child element.
 
void InsertChild (unsigned index, UIElement *element)
 Insert a child element into a specific position in the child list.
 
void RemoveChild (UIElement *element, unsigned index=0)
 Remove a child element. Starting search at specified index if provided.
 
void RemoveChildAtIndex (unsigned index)
 Remove a child element at index.
 
void RemoveAllChildren ()
 Remove all child elements.
 
void Remove ()
 Remove from the parent element. If no other shared pointer references exist, causes immediate deletion.
 
unsigned FindChild (UIElement *element) const
 Find child index. Return M_MAX_UNSIGNED if not found.
 
void SetParent (UIElement *parent, unsigned index=M_MAX_UNSIGNED)
 Set parent element. Same as parent->InsertChild(index, this).
 
void SetVar (StringHash key, const Variant &value)
 Set a user variable.
 
void SetInternal (bool enable)
 Mark as internally (programmatically) created. Used when an element composes itself out of child elements.
 
void SetTraversalMode (TraversalMode traversalMode)
 Set traversal mode for rendering. The default traversal mode is TM_BREADTH_FIRST for non-root element. Root element should be set to TM_DEPTH_FIRST to avoid artifacts during rendering.
 
void SetElementEventSender (bool flag)
 Set element event sender flag. When child element is added or deleted, the event would be sent using UIElement found in the parental chain having this flag set. If not set, the event is sent using UI's root as per normal.
 
void SetTags (const StringVector &tags)
 Set tags. Old tags are overwritten.
 
void AddTag (const String &tag)
 Add a tag.
 
void AddTags (const String &tags, char separator= ';')
 Add tags with the specified separator, by default ;.
 
void AddTags (const StringVector &tags)
 Add tags.
 
bool RemoveTag (const String &tag)
 Remove specific tag. Return true if existed.
 
void RemoveAllTags ()
 Remove all tags.
 
template<class T >
T * CreateChild (const String &name=String::EMPTY, unsigned index=M_MAX_UNSIGNED)
 Template version of creating a child element.
 
template<class T >
T * GetChildStaticCast (unsigned index) const
 Template version of returning child element by index using static cast.
 
template<class T >
T * GetChildStaticCast (const String &name, bool recursive=false) const
 Template version of returning child element by name using static cast.
 
template<class T >
T * GetChildStaticCast (const StringHash &key, const Variant &value=Variant::EMPTY, bool recursive=false) const
 Template version of returning child element by variable using static cast. If only key is provided, return the first child having the matching variable key. If value is also provided then the actual variable value would also be checked against.
 
template<class T >
T * GetChildDynamicCast (unsigned index) const
 Template version of returning child element by index using dynamic cast. May return 0 when casting failed.
 
template<class T >
T * GetChildDynamicCast (const String &name, bool recursive=false) const
 Template version of returning child element by name using dynamic cast. May return 0 when casting failed.
 
template<class T >
T * GetChildDynamicCast (const StringHash &key, const Variant &value=Variant::EMPTY, bool recursive=false) const
 Template version of returning child element by variable. If only key is provided, return the first child having the matching variable key. If value is also provided then the actual variable value would also be checked against using dynamic cast. May return 0 when casting failed.
 
const StringGetName () const
 Return name.
 
const IntVector2GetPosition () const
 Return position.
 
const IntVector2GetSize () const
 Return size.
 
int GetWidth () const
 Return width.
 
int GetHeight () const
 Return height.
 
const IntVector2GetMinSize () const
 Return minimum size.
 
int GetMinWidth () const
 Return minimum width.
 
int GetMinHeight () const
 Return minimum height.
 
const IntVector2GetMaxSize () const
 Return maximum size.
 
int GetMaxWidth () const
 Return minimum width.
 
int GetMaxHeight () const
 Return minimum height.
 
bool IsFixedSize () const
 Return true if size is fixed.
 
bool IsFixedWidth () const
 Return true if width is fixed.
 
bool IsFixedHeight () const
 Return true if height is fixed.
 
const IntVector2GetChildOffset () const
 Return child element offset.
 
HorizontalAlignment GetHorizontalAlignment () const
 Return horizontal alignment. If pivot has been adjusted to a custom horizontal setting, returns HA_CUSTOM.
 
VerticalAlignment GetVerticalAlignment () const
 Return vertical alignment. If pivot has been adjusted to a custom vertical setting, returns VA_CUSTOM.
 
bool GetEnableAnchor () const
 Return whether anchor positioning & sizing is enabled.
 
const Vector2GetMinAnchor () const
 Return minimum anchor.
 
const Vector2GetMaxAnchor () const
 Return maximum anchor.
 
const IntVector2GetMinOffset () const
 
const IntVector2GetMaxOffset () const
 
const Vector2GetPivot () const
 Return pivot.
 
const IntRectGetClipBorder () const
 Return child element clipping border.
 
const ColorGetColor (Corner corner) const
 Return corner color.
 
int GetPriority () const
 Return priority.
 
float GetOpacity () const
 Return opacity.
 
float GetDerivedOpacity () const
 Return derived opacity (affected by parent elements.) If UseDerivedOpacity is false, returns same as element's own opacity.
 
bool GetBringToFront () const
 Return whether should be brought to front when focused.
 
bool GetBringToBack () const
 Return whether should be put to background when another element is focused.
 
bool GetClipChildren () const
 Return whether should clip child elements.
 
bool GetSortChildren () const
 Return whether should sort child elements according to priority.
 
bool GetUseDerivedOpacity () const
 Return whether parent elements' opacity affects opacity.
 
bool HasFocus () const
 Return whether has focus.
 
bool IsEnabled () const
 Return whether reacts to input.
 
bool IsEnabledSelf () const
 Returns the element's last own enabled state. May be different than the value returned by IsEnabled when SetDeepEnabled has been used.
 
bool IsEditable () const
 Return whether value is editable through input.
 
bool IsSelected () const
 Return whether is selected. Actual meaning is element dependent.
 
bool IsVisible () const
 Return whether element itself should be visible. Elements can be also hidden due to the parent being not visible, use IsVisibleEffective() to check.
 
bool IsVisibleEffective () const
 Return whether element is effectively visible (parent element chain is visible.)
 
bool IsHovering () const
 Return whether the cursor is hovering on this element.
 
bool IsInternal () const
 Return whether is internally created.
 
bool HasColorGradient () const
 Return whether has different color in at least one corner.
 
FocusMode GetFocusMode () const
 Return focus mode.
 
unsigned GetDragDropMode () const
 Return drag and drop flags.
 
const StringGetAppliedStyle () const
 Return applied style name. Return an empty string when the applied style is an 'auto' style (i.e. style derived from instance's type).
 
XMLFileGetDefaultStyle (bool recursiveUp=true) const
 Return default style.
 
LayoutMode GetLayoutMode () const
 Return layout mode.
 
int GetLayoutSpacing () const
 Return layout spacing.
 
const IntRectGetLayoutBorder () const
 Return layout border.
 
const Vector2GetLayoutFlexScale () const
 Return layout flex scale.
 
unsigned GetNumChildren (bool recursive=false) const
 Return number of child elements.
 
UIElementGetChild (unsigned index) const
 Return child element by index.
 
UIElementGetChild (const String &name, bool recursive=false) const
 Return child element by name.
 
UIElementGetChild (const StringHash &key, const Variant &value=Variant::EMPTY, bool recursive=false) const
 Return child element by variable. If only key is provided, return the first child having the matching variable key. If value is also provided then the actual variable value would also be checked against.
 
const Vector< SharedPtr
< UIElement > > & 
GetChildren () const
 Return immediate child elements.
 
void GetChildren (PODVector< UIElement * > &dest, bool recursive=false) const
 Return child elements either recursively or non-recursively.
 
UIElementGetParent () const
 Return parent element.
 
UIElementGetRoot () const
 Return root element.
 
const ColorGetDerivedColor () const
 Return derived color. Only valid when no gradient.
 
const VariantGetVar (const StringHash &key) const
 Return a user variable.
 
const VariantMapGetVars () const
 Return all user variables.
 
bool HasTag (const String &tag) const
 Return whether element is tagged by a specific tag.
 
const StringVectorGetTags () const
 Return all tags.
 
void GetChildrenWithTag (PODVector< UIElement * > &dest, const String &tag, bool recursive=false) const
 Return child elements with a specific tag either recursively or non-recursively.
 
PODVector< UIElement * > GetChildrenWithTag (const String &tag, bool recursive=false) const
 Return child elements with a specific tag either recursively or non-recursively.
 
int GetDragButtonCombo () const
 Return the drag button combo if this element is being dragged.
 
unsigned GetDragButtonCount () const
 Return the number of buttons dragging this element.
 
bool IsInside (IntVector2 position, bool isScreen)
 Return whether a point (either in element or screen coordinates) is inside the element.
 
bool IsInsideCombined (IntVector2 position, bool isScreen)
 Return whether a point (either in element or screen coordinates) is inside the combined rect of the element and its children.
 
IntRect GetCombinedScreenRect ()
 Return combined screen coordinate rect of element and its children.
 
void SortChildren ()
 Sort child elements if sorting enabled and order dirty. Called by UI. More...
 
int GetLayoutElementMaxSize () const
 Return maximum layout element size in the layout direction. Only valid after layout has been calculated. Used internally by UI for optimizations.
 
int GetIndent () const
 Return horizontal indentation.
 
int GetIndentSpacing () const
 Return indent spacing (number of pixels per indentation level).
 
int GetIndentWidth () const
 Return indent width in pixels.
 
void SetChildOffset (const IntVector2 &offset)
 Set child offset.
 
void SetHovering (bool enable)
 Set hovering state.
 
void AdjustScissor (IntRect &currentScissor)
 Adjust scissor for rendering.
 
void GetBatchesWithOffset (IntVector2 &offset, PODVector< UIBatch > &batches, PODVector< float > &vertexData, IntRect currentScissor)
 Get UI rendering batches with a specified offset. Also recurse to child elements.
 
const ColorGetColorAttr () const
 Return color attribute. Uses just the top-left color.
 
TraversalMode GetTraversalMode () const
 Return traversal mode for rendering.
 
bool IsElementEventSender () const
 Return whether element should send child added / removed events by itself. If false, defers to parent element.
 
UIElementGetElementEventSender () const
 Get element which should send child added / removed events.
 
IntVector2 GetEffectiveMinSize () const
 Return effective minimum size, also considering layout. Used internally.
 
- Public Member Functions inherited from Urho3D::Animatable
 Animatable (Context *context)
 Construct.
 
virtual ~Animatable () override
 Destruct.
 
virtual bool LoadJSON (const JSONValue &source, bool setInstanceDefault=false) override
 Load from JSON data. When setInstanceDefault is set to true, after setting the attribute value, store the value as instance's default value. Return true if successful.
 
virtual bool SaveJSON (JSONValue &dest) const override
 Save as JSON data. Return true if successful.
 
void SetAnimationEnabled (bool enable)
 Set automatic update of animation, default true.
 
void SetAnimationTime (float time)
 Set time position of all attribute animations or an object animation manually. Automatic update should be disabled in this case.
 
void SetObjectAnimation (ObjectAnimation *objectAnimation)
 Set object animation.
 
void SetAttributeAnimation (const String &name, ValueAnimation *attributeAnimation, WrapMode wrapMode=WM_LOOP, float speed=1.0f)
 Set attribute animation.
 
void SetAttributeAnimationWrapMode (const String &name, WrapMode wrapMode)
 Set attribute animation wrap mode.
 
void SetAttributeAnimationSpeed (const String &name, float speed)
 Set attribute animation speed.
 
void SetAttributeAnimationTime (const String &name, float time)
 Set attribute animation time position manually. Automatic update should be disabled in this case.
 
void RemoveObjectAnimation ()
 Remove object animation. Same as calling SetObjectAnimation with a null pointer.
 
void RemoveAttributeAnimation (const String &name)
 Remove attribute animation. Same as calling SetAttributeAnimation with a null pointer.
 
bool GetAnimationEnabled () const
 Return animation enabled.
 
ObjectAnimationGetObjectAnimation () const
 Return object animation.
 
ValueAnimationGetAttributeAnimation (const String &name) const
 Return attribute animation.
 
WrapMode GetAttributeAnimationWrapMode (const String &name) const
 Return attribute animation wrap mode.
 
float GetAttributeAnimationSpeed (const String &name) const
 Return attribute animation speed.
 
float GetAttributeAnimationTime (const String &name) const
 Return attribute animation time position.
 
void SetObjectAnimationAttr (const ResourceRef &value)
 Set object animation attribute.
 
ResourceRef GetObjectAnimationAttr () const
 Return object animation attribute.
 
- Public Member Functions inherited from Urho3D::Serializable
 Serializable (Context *context)
 Construct.
 
virtual ~Serializable () override
 Destruct.
 
virtual void OnSetAttribute (const AttributeInfo &attr, const Variant &src)
 Handle attribute write access. Default implementation writes to the variable at offset, or invokes the set accessor.
 
virtual void OnGetAttribute (const AttributeInfo &attr, Variant &dest) const
 Handle attribute read access. Default implementation reads the variable at offset, or invokes the get accessor.
 
virtual const Vector
< AttributeInfo > * 
GetAttributes () const
 Return attribute descriptions, or null if none defined.
 
virtual const Vector
< AttributeInfo > * 
GetNetworkAttributes () const
 Return network replication attribute descriptions, or null if none defined.
 
virtual bool Load (Deserializer &source, bool setInstanceDefault=false)
 Load from binary data. When setInstanceDefault is set to true, after setting the attribute value, store the value as instance's default value. Return true if successful.
 
virtual bool Save (Serializer &dest) const
 Save as binary data. Return true if successful.
 
virtual bool SaveDefaultAttributes () const
 Return whether should save default-valued attributes into XML. Default false.
 
virtual void MarkNetworkUpdate ()
 Mark for attribute check on the next network update.
 
bool SetAttribute (unsigned index, const Variant &value)
 Set attribute by index. Return true if successfully set.
 
bool SetAttribute (const String &name, const Variant &value)
 Set attribute by name. Return true if successfully set.
 
void ResetToDefault ()
 Reset all editable attributes to their default values.
 
void RemoveInstanceDefault ()
 Remove instance's default values if they are set previously.
 
void SetTemporary (bool enable)
 Set temporary flag. Temporary objects will not be saved.
 
void SetInterceptNetworkUpdate (const String &attributeName, bool enable)
 Enable interception of an attribute from network updates. Intercepted attributes are sent as events instead of applying directly. This can be used to implement client side prediction.
 
void AllocateNetworkState ()
 Allocate network attribute state.
 
void WriteInitialDeltaUpdate (Serializer &dest, unsigned char timeStamp)
 Write initial delta network update.
 
void WriteDeltaUpdate (Serializer &dest, const DirtyBits &attributeBits, unsigned char timeStamp)
 Write a delta network update according to dirty attribute bits.
 
void WriteLatestDataUpdate (Serializer &dest, unsigned char timeStamp)
 Write a latest data network update.
 
bool ReadDeltaUpdate (Deserializer &source)
 Read and apply a network delta update. Return true if attributes were changed.
 
bool ReadLatestDataUpdate (Deserializer &source)
 Read and apply a network latest data update. Return true if attributes were changed.
 
Variant GetAttribute (unsigned index) const
 Return attribute value by index. Return empty if illegal index.
 
Variant GetAttribute (const String &name) const
 Return attribute value by name. Return empty if not found.
 
Variant GetAttributeDefault (unsigned index) const
 Return attribute default value by index. Return empty if illegal index.
 
Variant GetAttributeDefault (const String &name) const
 Return attribute default value by name. Return empty if not found.
 
unsigned GetNumAttributes () const
 Return number of attributes.
 
unsigned GetNumNetworkAttributes () const
 Return number of network replication attributes.
 
bool IsTemporary () const
 Return whether is temporary.
 
bool GetInterceptNetworkUpdate (const String &attributeName) const
 Return whether an attribute's network updates are being intercepted.
 
NetworkStateGetNetworkState () const
 Return the network attribute state, if allocated.
 
- Public Member Functions inherited from Urho3D::Object
 Object (Context *context)
 Construct.
 
virtual ~Object () override
 Destruct. Clean up self from event sender & receiver structures.
 
virtual StringHash GetType () const =0
 Return type hash.
 
virtual const StringGetTypeName () const =0
 Return type name.
 
virtual const TypeInfoGetTypeInfo () const =0
 Return type info.
 
virtual void OnEvent (Object *sender, StringHash eventType, VariantMap &eventData)
 Handle event.
 
bool IsInstanceOf (StringHash type) const
 Check current instance is type of specified type.
 
bool IsInstanceOf (const TypeInfo *typeInfo) const
 Check current instance is type of specified type.
 
template<typename T >
bool IsInstanceOf () const
 Check current instance is type of specified class.
 
void SubscribeToEvent (StringHash eventType, EventHandler *handler)
 Subscribe to an event that can be sent by any sender.
 
void SubscribeToEvent (Object *sender, StringHash eventType, EventHandler *handler)
 Subscribe to a specific sender's event.
 
void SubscribeToEvent (StringHash eventType, const std::function< void(StringHash, VariantMap &)> &function, void *userData=nullptr)
 Subscribe to an event that can be sent by any sender.
 
void SubscribeToEvent (Object *sender, StringHash eventType, const std::function< void(StringHash, VariantMap &)> &function, void *userData=nullptr)
 Subscribe to a specific sender's event.
 
void UnsubscribeFromEvent (StringHash eventType)
 Unsubscribe from an event.
 
void UnsubscribeFromEvent (Object *sender, StringHash eventType)
 Unsubscribe from a specific sender's event.
 
void UnsubscribeFromEvents (Object *sender)
 Unsubscribe from a specific sender's events.
 
void UnsubscribeFromAllEvents ()
 Unsubscribe from all events.
 
void UnsubscribeFromAllEventsExcept (const PODVector< StringHash > &exceptions, bool onlyUserData)
 Unsubscribe from all events except those listed, and optionally only those with userdata (script registered events.)
 
void SendEvent (StringHash eventType)
 Send event to all subscribers.
 
void SendEvent (StringHash eventType, VariantMap &eventData)
 Send event with parameters to all subscribers.
 
VariantMapGetEventDataMap () const
 Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps.
 
template<typename... Args>
void SendEvent (StringHash eventType, Args...args)
 Send event with variadic parameter pairs to all subscribers. The parameter pairs is a list of paramID and paramValue separated by comma, one pair after another.
 
ContextGetContext () const
 Return execution context.
 
const VariantGetGlobalVar (StringHash key) const
 Return global variable based on key.
 
const VariantMapGetGlobalVars () const
 Return all global variables.
 
void SetGlobalVar (StringHash key, const Variant &value)
 Set global variable with the respective key and value.
 
ObjectGetSubsystem (StringHash type) const
 Return subsystem by type.
 
ObjectGetEventSender () const
 Return active event sender. Null outside event handling.
 
EventHandlerGetEventHandler () const
 Return active event handler. Null outside event handling.
 
bool HasSubscribedToEvent (StringHash eventType) const
 Return whether has subscribed to an event without specific sender.
 
bool HasSubscribedToEvent (Object *sender, StringHash eventType) const
 Return whether has subscribed to a specific sender's event.
 
bool HasEventHandlers () const
 Return whether has subscribed to any event.
 
template<class T >
T * GetSubsystem () const
 Template version of returning a subsystem.
 
const StringGetCategory () const
 Return object category. Categories are (optionally) registered along with the object factory. Return an empty string if the object category is not registered.
 
- Public Member Functions inherited from Urho3D::RefCounted
 RefCounted ()
 Construct. Allocate the reference count structure and set an initial self weak reference.
 
virtual ~RefCounted ()
 Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist.
 
void AddRef ()
 Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting.
 
void ReleaseRef ()
 Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting.
 
int Refs () const
 Return reference count.
 
int WeakRefs () const
 Return weak reference count.
 
RefCountRefCountPtr ()
 Return pointer to the reference count structure.
 

Static Public Member Functions

static void RegisterObject (Context *context)
 Register object factory.
 
- Static Public Member Functions inherited from Urho3D::Menu
static void RegisterObject (Context *context)
 Register object factory.
 
- Static Public Member Functions inherited from Urho3D::Button
static void RegisterObject (Context *context)
 Register object factory.
 
- Static Public Member Functions inherited from Urho3D::BorderImage
static void RegisterObject (Context *context)
 Register object factory.
 
- Static Public Member Functions inherited from Urho3D::UIElement
static void RegisterObject (Context *context)
 Register object factory.
 
- Static Public Member Functions inherited from Urho3D::Animatable
static void RegisterObject (Context *context)
 Register object factory.
 
- Static Public Member Functions inherited from Urho3D::Object
static const TypeInfoGetTypeInfoStatic ()
 Return type info static.
 

Protected Member Functions

virtual bool FilterImplicitAttributes (XMLElement &dest) const override
 Filter implicit attributes in serialization process.
 
virtual bool FilterPopupImplicitAttributes (XMLElement &dest) const override
 Filter implicit attributes in serialization process.
 
- Protected Member Functions inherited from Urho3D::Button
void SetPressed (bool enable)
 Set new pressed state.
 
- Protected Member Functions inherited from Urho3D::BorderImage
void GetBatches (PODVector< UIBatch > &batches, PODVector< float > &vertexData, const IntRect &currentScissor, const IntVector2 &offset)
 Return UI rendering batches with offset to image rectangle.
 
- Protected Member Functions inherited from Urho3D::UIElement
virtual void OnAttributeAnimationAdded () override
 Handle attribute animation added.
 
virtual void OnAttributeAnimationRemoved () override
 Handle attribute animation removed.
 
virtual AnimatableFindAttributeAnimationTarget (const String &name, String &outName) override
 Find target of an attribute animation from object hierarchy by name.
 
void MarkDirty ()
 Mark screen position as needing an update.
 
bool RemoveChildXML (XMLElement &parent, const String &name) const
 Remove child XML element by matching attribute name.
 
bool RemoveChildXML (XMLElement &parent, const String &name, const String &value) const
 Remove child XML element by matching attribute name and value.
 
bool FilterUIStyleAttributes (XMLElement &dest, const XMLElement &styleElem) const
 Filter UI-style attributes in serialization process.
 
void UpdateAnchoring ()
 Update anchored size & position. Only called when anchoring is enabled.
 
- Protected Member Functions inherited from Urho3D::Animatable
void SetObjectAttributeAnimation (const String &name, ValueAnimation *attributeAnimation, WrapMode wrapMode, float speed)
 Set object attribute animation internal.
 
void OnObjectAnimationAdded (ObjectAnimation *objectAnimation)
 Handle object animation added.
 
void OnObjectAnimationRemoved (ObjectAnimation *objectAnimation)
 Handle object animation removed.
 
void UpdateAttributeAnimations (float timeStep)
 Update attribute animations.
 
bool IsAnimatedNetworkAttribute (const AttributeInfo &attrInfo) const
 Is animated network attribute.
 
AttributeAnimationInfoGetAttributeAnimationInfo (const String &name) const
 Return attribute animation info.
 
void HandleAttributeAnimationAdded (StringHash eventType, VariantMap &eventData)
 Handle attribute animation added.
 
void HandleAttributeAnimationRemoved (StringHash eventType, VariantMap &eventData)
 Handle attribute animation removed.
 

Protected Attributes

SharedPtr< ListViewlistView_
 Listview element.
 
SharedPtr< UIElementplaceholder_
 Selected item placeholder element.
 
bool resizePopup_
 Resize popup flag.
 
- Protected Attributes inherited from Urho3D::Menu
SharedPtr< UIElementpopup_
 Popup element.
 
IntVector2 popupOffset_
 Popup element offset.
 
bool showPopup_
 Show popup flag.
 
int acceleratorKey_
 Accelerator key code.
 
int acceleratorQualifiers_
 Accelerator qualifiers.
 
- Protected Attributes inherited from Urho3D::Button
IntVector2 pressedOffset_
 Pressed image offset.
 
IntVector2 disabledOffset_
 Disabled image offset.
 
IntVector2 pressedChildOffset_
 Pressed label offset.
 
float repeatDelay_
 Repeat delay.
 
float repeatRate_
 Repeat rate.
 
float repeatTimer_
 Repeat timer.
 
bool pressed_
 Current pressed state.
 
- Protected Attributes inherited from Urho3D::BorderImage
SharedPtr< Texturetexture_
 Texture.
 
IntRect imageRect_
 Image rectangle.
 
IntRect border_
 Border dimensions on screen.
 
IntRect imageBorder_
 Border dimensions on the image.
 
IntVector2 hoverOffset_
 Offset to image rectangle on hover.
 
BlendMode blendMode_
 Blend mode flag.
 
bool tiled_
 Tiled flag.
 
- Protected Attributes inherited from Urho3D::UIElement
String name_
 Name.
 
Vector< SharedPtr< UIElement > > children_
 Child elements.
 
UIElementparent_
 Parent element.
 
IntRect clipBorder_
 Child element clipping border.
 
Color color_ [MAX_UIELEMENT_CORNERS]
 Colors.
 
VariantMap vars_
 User variables.
 
int priority_
 Priority.
 
bool bringToFront_
 Bring to front when focused flag.
 
bool bringToBack_
 Bring to back when defocused flag.
 
bool clipChildren_
 Clip children flag.
 
bool sortChildren_
 Sort children according to priority flag.
 
bool useDerivedOpacity_
 Use derived opacity flag.
 
bool enabled_
 Input enabled flag.
 
bool enabledPrev_
 Last SetEnabled flag before any SetDeepEnabled.
 
bool editable_
 Value editable flag.
 
bool selected_
 Selected flag.
 
bool visible_
 Visible flag.
 
bool hovering_
 Hovering flag.
 
bool internal_
 Internally created flag.
 
FocusMode focusMode_
 Focus mode.
 
unsigned dragDropMode_
 Drag and drop flags.
 
LayoutMode layoutMode_
 Layout mode.
 
int layoutSpacing_
 Layout spacing.
 
IntRect layoutBorder_
 Layout borders.
 
Vector2 layoutFlexScale_
 Layout flex scale.
 
unsigned resizeNestingLevel_
 Resize nesting level to prevent multiple events and endless loop.
 
unsigned layoutNestingLevel_
 Layout update nesting level to prevent endless loop.
 
int layoutElementMaxSize_
 Layout element maximum size in layout direction.
 
int indent_
 Horizontal indentation.
 
int indentSpacing_
 Indent spacing (number of pixels per indentation level).
 
IntVector2 position_
 Position.
 
IntVector2 screenPosition_
 Screen position.
 
bool positionDirty_
 Screen position dirty flag.
 
String appliedStyle_
 Applied style.
 
int dragButtonCombo_
 Drag button combo.
 
unsigned dragButtonCount_
 Drag button count.
 
- Protected Attributes inherited from Urho3D::Animatable
bool animationEnabled_
 Animation enabled.
 
SharedPtr< ObjectAnimationobjectAnimation_
 Animation.
 
HashSet< const AttributeInfo * > animatedNetworkAttributes_
 Animated network attribute set.
 
HashMap< String, SharedPtr
< AttributeAnimationInfo > > 
attributeAnimationInfos_
 Attribute animation infos.
 
- Protected Attributes inherited from Urho3D::Serializable
UniquePtr< NetworkStatenetworkState_
 Network attribute state.
 
- Protected Attributes inherited from Urho3D::Object
Contextcontext_
 Execution context.
 

Private Member Functions

void HandleItemClicked (StringHash eventType, VariantMap &eventData)
 Handle listview item click event.
 
void HandleListViewKey (StringHash eventType, VariantMap &eventData)
 Handle a key press from the listview.
 
void HandleSelectionChanged (StringHash eventType, VariantMap &eventData)
 Handle the listview selection change. Set placeholder text hidden/visible as necessary.
 

Private Attributes

unsigned selectionAttr_
 Selected item index attribute.
 

Detailed Description

Menu UI element that displays a popup list view.


The documentation for this class was generated from the following files:
  • Source/Urho3D/UI/DropDownList.h
  • Source/Urho3D/UI/DropDownList.cpp