VSTGUI: COptionMenu Class Reference

VSTGUI 4.10 Graphical User Interface Framework not only for VST plugins

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
COptionMenu Class Reference
Controls

a popup menu control More...

Inheritance diagram for COptionMenu:

## Public Types
enum | Style { kPopupStyle = 1 << StylePopup, kCheckStyle = 1 << StyleCheck, kMultipleCheckStyle = 1 << StyleMultipleCheck }
Public Types inherited from CParamDisplay
enum | Style { kShadowText = 1 << StyleShadowText, k3DIn = 1 << Style3DIn, k3DOut = 1 << Style3DOut, kNoTextStyle = 1 << StyleNoText, kNoDrawStyle = 1 << StyleNoDraw, kRoundRectStyle = 1 << StyleRoundRect, kNoFrame = 1 << StyleNoFrame }
using | ValueToStringUserData = CParamDisplay
using | ValueToStringFunction = std::function< bool(float value, char utf8String[256], CParamDisplay *display)>
using | ValueToStringFunction2 = std::function< bool(float value, std::string &result, CParamDisplay *display)>

## Public Member Functions
| COptionMenu ()
| COptionMenu (const CRect &size, IControlListener *listener, int32_t tag, CBitmap *background=nullptr, CBitmap *bgWhenClick=nullptr, const int32_t style=0)
| COptionMenu constructor.
| COptionMenu (const COptionMenu &menu)
| ~COptionMenu () noexceptoverride
bool | isPopupStyle () const
bool | isCheckStyle () const
bool | isMultipleCheckStyle () const
void | setValue (float val) override
void | setMin (float val) override
float | getMin () const override
void | setMax (float val) override
float | getMax () const override
void | draw (CDrawContext *pContext) override
| called if the view should draw itself
CMouseEventResult | onMouseDown (CPoint &where, const CButtonState &buttons) override
| do not use any longer.
void | onKeyboardEvent (KeyboardEvent &event) override
| called when a keyboard event is dispatched to this view
void | takeFocus () override
| called if view should take focus
void | looseFocus () override
| called if view should loose focus
CBaseObject * | newCopy () const override
Public Member Functions inherited from CParamDisplay
| CParamDisplay (const CRect &size, CBitmap *background=nullptr, int32_t style=0)
| CParamDisplay (const CParamDisplay &paramDisplay)
void | draw (CDrawContext *pContext) override
| called if the view should draw itself
bool | getFocusPath (CGraphicsPath &outPath) override
| the graphics path will be drawn filled with the evenodd method and the color set in CFrame::setFocusColor()
bool | removed (CView *parent) override
| view is removed from parent view
CBaseObject * | newCopy () const override
virtual void | setFont (CFontRef fontID)
const CFontRef | getFont () const
virtual void | setFontColor (CColor color)
CColor | getFontColor () const
virtual void | setBackColor (CColor color)
CColor | getBackColor () const
virtual void | setFrameColor (CColor color)
CColor | getFrameColor () const
virtual void | setShadowColor (CColor color)
CColor | getShadowColor () const
virtual void | setShadowTextOffset (const CPoint &offset)
CPoint | getShadowTextOffset () const
virtual void | setAntialias (bool state)
bool | getAntialias () const
virtual void | setHoriAlign (CHoriTxtAlign hAlign)
CHoriTxtAlign | getHoriAlign () const
virtual void | setTextInset (const CPoint &p)
CPoint | getTextInset () const
virtual void | setTextRotation (double angle)
double | getTextRotation () const
virtual void | setRoundRectRadius (const CCoord &radius)
CCoord | getRoundRectRadius () const
virtual void | setFrameWidth (const CCoord &width)
CCoord | getFrameWidth () const
void | setValueToStringFunction (const ValueToStringFunction &valueToStringFunc)
void | setValueToStringFunction (ValueToStringFunction &&valueToStringFunc)
void | setValueToStringFunction2 (const ValueToStringFunction2 &valueToStringFunc)
void | setValueToStringFunction2 (ValueToStringFunction2 &&valueToStringFunc)
virtual void | setStyle (int32_t val)
int32_t | getStyle () const
virtual void | setPrecision (uint8_t precision)
uint8_t | getPrecision () const
virtual void | setBackOffset (const CPoint &offset)
const CPoint & | getBackOffset () const
void | copyBackOffset ()
Public Member Functions inherited from CControl
| CControl (const CRect &size, IControlListener *listener=nullptr, int32_t tag=0, CBitmap *pBackground=nullptr)
| CControl (const CControl &c)
bool | isDirty () const override
| check if view is dirty
void | setDirty (bool val=true) override
| set the view to dirty so that it is redrawn in the next idle.
bool | drawFocusOnTop () override
| draw focus before view will be drawn or afterwards
virtual float | getValue () const
virtual void | setValueNormalized (float val)
virtual float | getValueNormalized () const
float | getRange () const
virtual void | setOldValue (float val)
virtual float | getOldValue () const
virtual void | setDefaultValue (float val)
virtual float | getDefaultValue () const
virtual void | bounceValue ()
virtual void | valueChanged ()
| notifies listener and dependent objects
virtual void | setTag (int32_t val)
virtual int32_t | getTag () const
virtual void | beginEdit ()
virtual void | endEdit ()
bool | isEditing () const
virtual IControlListener * | getListener () const
| get main listener
virtual void | setListener (IControlListener *l)
| set main listener
void | registerControlListener (IControlListener *listener)
| register a sub listener
void | unregisterControlListener (IControlListener *listener)
| unregister a sub listener
virtual void | setWheelInc (float val)
virtual float | getWheelInc () const
Public Member Functions inherited from CView
| CView (const CRect &size)
| CView (const CView &view)
void | setSubviewState (bool state)
bool | isSubview () const
virtual bool | wantsWindowActiveStateChangeNotification () const
| whether this view wants to be informed if the window's active state changes
virtual void | onWindowActivate (bool state)
| called when the active state of the window changes
void | setTooltipText (UTF8StringPtr text)
virtual CViewContainer * | asViewContainer ()
virtual const CViewContainer * | asViewContainer () const
CMouseEventResult | callMouseListener (MouseListenerCall type, CPoint pos, CButtonState buttons)
void | callMouseListenerEnteredExited (bool mouseEntered)
CMessageResult | notify (CBaseObject *sender, IdStringPtr message) override
void | beforeDelete () override
CBaseObject * | newCopy () const override
virtual void | dispatchEvent (Event &event)
| dispatch an event
virtual void | onMouseDownEvent (MouseDownEvent &event)
| called when a mouse down event occurs
virtual void | onMouseMoveEvent (MouseMoveEvent &event)
| called when a mouse move event occurs
virtual void | onMouseUpEvent (MouseUpEvent &event)
| called when a mouse up event occurs
virtual void | onMouseCancelEvent (MouseCancelEvent &event)
| called when mouse tracking should be canceled
virtual void | onMouseEnterEvent (MouseEnterEvent &event)
| called when the mouse enters this view
virtual void | onMouseExitEvent (MouseExitEvent &event)
| called when the mouse leaves this view
virtual void | onMouseWheelEvent (MouseWheelEvent &event)
| called when a mouse wheel event occurs
virtual void | onZoomGestureEvent (ZoomGestureEvent &event)
| called when a zoom gesture event occurs
virtual void | setMouseEnabled (bool bEnable=true)
| turn on/off mouse usage for this view
bool | getMouseEnabled () const
| get the state of wheather this view uses the mouse or not
virtual void | setMouseableArea (const CRect &rect)
| set the area in which the view reacts to the mouse
CRect | getMouseableArea () const
| get the area in which the view reacts to the mouse
virtual CMouseEventResult | onMouseUp (CPoint &where, const CButtonState &buttons)
| do not use any longer.
virtual CMouseEventResult | onMouseMoved (CPoint &where, const CButtonState &buttons)
| do not use any longer.
virtual CMouseEventResult | onMouseCancel ()
| do not use any longer.
virtual CMouseEventResult | onMouseEntered (CPoint &where, const CButtonState &buttons)
| do not use any longer.
virtual CMouseEventResult | onMouseExited (CPoint &where, const CButtonState &buttons)
| do not use any longer.
virtual bool | onWheel (const CPoint &where, const float &distance, const CButtonState &buttons) final
virtual bool | onWheel (const CPoint &where, const CMouseWheelAxis &axis, const float &distance, const CButtonState &buttons)
CRect & | getMouseableArea (CRect &rect) const
| get the area in which the view reacts to the mouse
void | setHitTestPath (CGraphicsPath *path)
virtual bool | hitTest (const CPoint &where, const Event &event=noEvent())
| check if where hits this view
bool | doDrag (const DragDescription &dragDescription, const SharedPointer< IDragCallback > &callback={})
| A drag can only be started from within onMouseDown or onMouseMove.
virtual SharedPointer < IDropTarget > | getDropTarget ()
| get the drag target for drag and drop handling
void | setDropTarget (const SharedPointer< IDropTarget > &dt)
| set a custom drop target
DragResult | doDrag (IDataPackage *source, const CPoint &offset=CPoint(0, 0), CBitmap *dragBitmap=nullptr)
| a drag can only be started from within onMouseDown
virtual int32_t | onKeyDown (VstKeyCode &keyCode)
| called if a key down event occurs and this view has focus
virtual int32_t | onKeyUp (VstKeyCode &keyCode)
| called if a key up event occurs and this view has focus
CCoord | getHeight () const
| get the height of the view
CCoord | getWidth () const
| get the width of the view
virtual void | setViewSize (const CRect &rect, bool invalid=true)
| set views size
const CRect & | getViewSize () const
| read only access to view size
virtual CRect | getVisibleViewSize () const
| returns the visible size of the view
virtual void | parentSizeChanged ()
| notification that one of the views parent has changed its size
virtual CPoint & | frameToLocal (CPoint &point) const
| conversion from frame coordinates to local view coordinates
virtual CPoint & | localToFrame (CPoint &point) const
| conversion from local view coordinates to frame coordinates
virtual void | setAutosizeFlags (int32_t flags)
| set autosize flags
int32_t | getAutosizeFlags () const
| get autosize flags
virtual bool | sizeToFit ()
| resize view to optimal size
virtual bool | wantsFocus () const
| check if view supports focus
virtual void | setWantsFocus (bool state)
| set focus support on/off
bool | getAttributeSize (const CViewAttributeID id, uint32_t &outSize) const
| get the size of an attribute
bool | getAttribute (const CViewAttributeID id, const uint32_t inSize, void *outData, uint32_t &outSize) const
| get an attribute
bool | setAttribute (const CViewAttributeID id, const uint32_t inSize, const void *inData)
| set an attribute
bool | removeAttribute (const CViewAttributeID id)
| remove an attribute
template<typename T >
bool | setAttribute (const CViewAttributeID id, const T &data)
| set an attribute
template<typename T >
bool | getAttribute (const CViewAttributeID id, T &data) const
| get an attribute
virtual void | setBackground (CBitmap *background)
| set the background image of this view
CBitmap * | getBackground () const
| get the background image of this view
virtual void | setDisabledBackground (CBitmap *background)
| set background image used when the mouse is not enabled
CBitmap * | getDisabledBackground () const
| get background image used when the mouse is not enabled
CBitmap * | getDrawBackground () const
| get the bitmap which is drawn depending on the enabled state.
virtual void | setTransparency (bool val)
| set views transparent state
bool | getTransparency () const
| get views transparent state
virtual void | setAlphaValue (float alpha)
| set alpha value which will be applied when drawing this view
float | getAlphaValue () const
| get alpha value
virtual bool | attached (CView *parent)
| view is attached to a parent view
bool | isAttached () const
| is view attached to a parentView
CView * | getParentView () const
| get parent view
CFrame * | getFrame () const
| get frame
virtual VSTGUIEditorInterface * | getEditor () const
| get editor
void | addAnimation (IdStringPtr name, Animation::IAnimationTarget *target, Animation::ITimingFunction *timingFunction, CBaseObject *notificationObject)
void | addAnimation (IdStringPtr name, Animation::IAnimationTarget *target, Animation::ITimingFunction *timingFunction, const Animation::DoneFunction &doneFunc=nullptr, bool callDoneOnCancel=false)
void | removeAnimation (IdStringPtr name)
void | removeAllAnimations ()
void | registerViewListener (IViewListener *listener)
void | unregisterViewListener (IViewListener *listener)
void | registerViewEventListener (IViewEventListener *listener)
void | unregisterViewEventListener (IViewEventListener *listener)
void | registerViewMouseListener (IViewMouseListener *listener)
void | unregisterViewMouseListener (IViewMouseListener *listener)
CGraphicsTransform | getGlobalTransform (bool ignoreFrame=false) const
| get the active global transform for this view
template<typename T >
T & | translateToGlobal (T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms
template<typename T >
T | translateToGlobal (const T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms
template<typename T >
T & | translateToLocal (T &t, bool ignoreFrame=false) const
| translates a global coordinate to a local one using parent transforms
template<typename T >
T | translateToLocal (const T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms
virtual void | drawRect (CDrawContext *pContext, const CRect &updateRect)
| called if the view should draw itself
virtual bool | checkUpdate (const CRect &updateRect) const
virtual void | invalidRect (const CRect &rect)
| mark rect as invalid
virtual void | invalid ()
| mark whole view as invalid
virtual void | setVisible (bool state)
| set visibility state
bool | isVisible () const
| get visibility state
virtual void | onIdle ()
| called on idle when view wants idle
void | setWantsIdle (bool state)
| enable/disable onIdle() callback
bool | wantsIdle () const
| returns if the view wants idle callback or not
Public Member Functions inherited from CBaseObject
| CBaseObject ()=default
| ~CBaseObject () noexceptoverride=default
| CBaseObject (const CBaseObject &)
CBaseObject & | operator= (const CBaseObject &)
virtual CMessageResult | notify ([[maybe_unused]] CBaseObject *sender,[[maybe_unused]] IdStringPtr message)
Public Member Functions inherited from ReferenceCounted< T >
| ReferenceCounted ()=default
virtual | ~ReferenceCounted () noexcept=default
| ReferenceCounted (const ReferenceCounted &)
ReferenceCounted & | operator= (const ReferenceCounted &)
void | forget () override
| decrease refcount and delete object if refcount == 0
void | remember () override
| increase refcount
virtual int32_t | getNbReference () const
| get refcount
Public Member Functions inherited from IFocusDrawing
virtual | ~IFocusDrawing () noexcept=default

## Protected Types
using | MenuListenerList = DispatchList< IOptionMenuListener * >
Protected Types inherited from CParamDisplay
enum | StyleEnum { StyleShadowText = 0, Style3DIn, Style3DOut, StyleNoText, StyleNoDraw, StyleRoundRect, StyleNoFrame, StyleAntialias, LastStyle }
enum | StylePrivate { kAntialias = 1 << StyleAntialias }

## Protected Member Functions
bool | doPopup ()
void | beforePopup ()
void | afterPopup ()
Protected Member Functions inherited from CParamDisplay
| ~CParamDisplay () noexceptoverride
virtual void | drawBack (CDrawContext *pContext, CBitmap *newBack=nullptr)
virtual void | drawPlatformText (CDrawContext *pContext, IPlatformString *string)
virtual void | drawPlatformText (CDrawContext *pContext, IPlatformString *string, const CRect &size)
virtual void | drawStyleChanged ()
Protected Member Functions inherited from CControl
| ~CControl () noexceptoverride
Protected Member Functions inherited from CView
| ~CView () noexceptoverride
CGraphicsPath * | getHitTestPath () const
bool | hasViewFlag (int32_t bit) const
void | setViewFlag (int32_t bit, bool state)
void | setAlphaValueNoInvalidate (float value)
void | setParentFrame (CFrame *frame)
void | setParentView (CView *parent)

## Protected Attributes
CMenuItemList * | menuItems
bool | inPopup {false}
int32_t | currentIndex {-1}
CButtonState | lastButton {0}
int32_t | nbItemsPerColumn {-1}
int32_t | lastResult {-1}
int32_t | prefixNumbers {0}
SharedPointer< CBitmap > | bgWhenClick
COptionMenu * | lastMenu {nullptr}
std::unique_ptr< MenuListenerList > | listeners
Protected Attributes inherited from CParamDisplay
ValueToStringFunction2 | valueToStringFunction
CHoriTxtAlign | horiTxtAlign
int32_t | style
uint8_t | valuePrecision
CFontRef | fontID
CColor | fontColor
CColor | backColor
CColor | frameColor
CColor | shadowColor
CPoint | textInset
CPoint | shadowTextOffset {1., 1.}
CPoint | backOffset
CCoord | roundRectRadius
CCoord | frameWidth
double | textRotation
Protected Attributes inherited from CControl
IControlListener * | listener
int32_t | tag
float | value

## COptionMenu Methods
using | PopupCallback = std::function< void(COptionMenu *menu)>
| popup callback function
virtual CMenuItem * | addEntry (CMenuItem *item, int32_t index=-1)
| add a new entry
virtual CMenuItem * | addEntry (COptionMenu *submenu, const UTF8String &title)
| add a new submenu entry
virtual CMenuItem * | addEntry (const UTF8String &title, int32_t index=-1, int32_t itemFlags=CMenuItem::kNoFlags)
| add a new entry
virtual CMenuItem * | addSeparator (int32_t index=-1)
| add a new separator entry
virtual CMenuItem * | getCurrent () const
| get current entry
virtual int32_t | getCurrentIndex (bool countSeparator=false) const
| TODO: Doc.
virtual CMenuItem * | getEntry (int32_t index) const
| get entry at index position
virtual int32_t | getNbEntries () const
| get number of entries
virtual bool | setCurrent (int32_t index, bool countSeparator=true)
| set current entry
virtual bool | removeEntry (int32_t index)
| remove an entry
virtual bool | removeAllEntry ()
| remove all entries
virtual bool | checkEntry (int32_t index, bool state)
| change check state of entry at index
virtual bool | checkEntryAlone (int32_t index)
| check entry at index and uncheck every other item
virtual bool | isCheckEntry (int32_t index) const
| get check state of entry at index
virtual void | setNbItemsPerColumn (int32_t val)
| Windows only.
virtual int32_t | getNbItemsPerColumn () const
| Windows only.
int32_t | getLastResult () const
| get last index of choosen entry
COptionMenu * | getLastItemMenu (int32_t &idxInMenu) const
| get last menu and index of choosen entry
virtual void | setPrefixNumbers (int32_t preCount)
| set prefix numbering
int32_t | getPrefixNumbers () const
| get prefix numbering
COptionMenu * | getSubMenu (int32_t idx) const
| get a submenu
bool | popup (const PopupCallback &callback={})
| pops up the menu
bool | popup (CFrame *frame, const CPoint &frameLocation, const PopupCallback &callback={})
| pops up the menu at frameLocation
CMenuItemList * | getItems () const
void | cleanupSeparators (bool deep)
| remove separators as first and last item and double separators
void | registerOptionMenuListener (IOptionMenuListener *listener)
void | unregisterOptionMenuListener (IOptionMenuListener *listener)

## Additional Inherited Members
Static Public Attributes inherited from CControl
static CheckDefaultValueEventFuncT | CheckDefaultValueEventFunc
| Function to check if a mouse down event should reset the value to its default value for a *control.
static int32_t | kZoomModifier = kShift
| zoom modifier key, per default is the shift key
static int32_t | kDefaultValueModifier = kControl
static CheckDefaultValueFuncT | CheckDefaultValueFunc
Static Protected Member Functions inherited from CControl
static int32_t | mapVstKeyModifier (int32_t vstModifier)

## Detailed Description

a popup menu control

Define a rectangle view where a text-value can be displayed with a given font and color. The text-value is centered in the given rect. A bitmap can be used as background, a second bitmap can be used when the option menu is popuped. There are 2 styles with or without a shadowed text. When a mouse click occurs, a popup menu is displayed.

## Member Typedef Documentation

using MenuListenerList = DispatchList<IOptionMenuListener*>
| protected

using PopupCallback = std::function<void (COptionMenu* menu)>

popup callback function

## Member Enumeration Documentation

enum Style

Enumerator
kPopupStyle |
kCheckStyle |
kMultipleCheckStyle |

## Constructor & Destructor Documentation

COptionMenu | ( |  | ) |

COptionMenu | ( | const CRect & | size,
|  | IControlListener * | listener,
|  | int32_t | tag,
|  | CBitmap * | background = `nullptr`,
|  | CBitmap * | bgWhenClick = `nullptr`,
|  | const int32_t | style = `0`
| ) |  |

COptionMenu constructor.

Parameters

  size | the size of this view
  listener | the listener
  tag | the control tag
  background | the background bitmap
  bgWhenClick | the background bitmap if the option menu is displayed
  style | the style of the display (see CParamDisplay for styles)

COptionMenu | ( | const COptionMenu & | menu | ) |

~COptionMenu | ( |  | ) |
| overridenoexcept

## Member Function Documentation

CMenuItem * addEntry | ( | CMenuItem * | item,
|  | int32_t | index = `-1`
| ) |  |
| virtual

add a new entry

Parameters

  item | menu item to add. Takes ownership of item.
  index | position of insertation. -1 appends the item

CMenuItem * addEntry | ( | COptionMenu * | submenu,
|  | const UTF8String & | title
| ) |  |
| virtual

add a new submenu entry

CMenuItem * addEntry | ( | const UTF8String & | title,
|  | int32_t | index = `-1`,
|  | int32_t | itemFlags = `CMenuItem::kNoFlags`
| ) |  |
| virtual

add a new entry

CMenuItem * addSeparator | ( | int32_t | index = `-1` | ) |
| virtual

add a new separator entry

void afterPopup | ( |  | ) |
| protected

void beforePopup | ( |  | ) |
| protected

bool checkEntry | ( | int32_t | index,
|  | bool | state
| ) |  |
| virtual

change check state of entry at index

bool checkEntryAlone | ( | int32_t | index | ) |
| virtual

check entry at index and uncheck every other item

void cleanupSeparators | ( | bool | deep | ) |

remove separators as first and last item and double separators

bool doPopup | ( |  | ) |
| protected

void draw | ( | CDrawContext * | pContext | ) |
| overridevirtual

called if the view should draw itself

Parameters

  pContext | draw context in which to draw

Implements CControl.

CMenuItem * getCurrent | ( |  | ) | const
| virtual

get current entry

int32_t getCurrentIndex | ( | bool | countSeparator = `false` | ) | const
| virtual

TODO: Doc.

CMenuItem * getEntry | ( | int32_t | index | ) | const
| virtual

get entry at index position

CMenuItemList* getItems | ( |  | ) | const
| inline

COptionMenu * getLastItemMenu | ( | int32_t & | idxInMenu | ) | const

get last menu and index of choosen entry

int32_t getLastResult | ( |  | ) | const
| inline

get last index of choosen entry

float getMax | ( |  | ) | const
| overridevirtual

Reimplemented from CControl.

float getMin | ( |  | ) | const
| inlineoverridevirtual

Reimplemented from CControl.

int32_t getNbEntries | ( |  | ) | const
| virtual

get number of entries

virtual int32_t getNbItemsPerColumn | ( |  | ) | const
| inlinevirtual

Windows only.

int32_t getPrefixNumbers | ( |  | ) | const
| inline

get prefix numbering

COptionMenu * getSubMenu | ( | int32_t | idx | ) | const

get a submenu

bool isCheckEntry | ( | int32_t | index | ) | const
| virtual

get check state of entry at index

bool isCheckStyle | ( |  | ) | const
| inline

bool isMultipleCheckStyle | ( |  | ) | const
| inline

bool isPopupStyle | ( |  | ) | const
| inline

void looseFocus | ( |  | ) |
| overridevirtual

called if view should loose focus

Reimplemented from CView.

CBaseObject* newCopy | ( |  | ) | const
| inlineoverridevirtual

Implements CControl.

void onKeyboardEvent | ( | KeyboardEvent & | event | ) |
| overridevirtual

called when a keyboard event is dispatched to this view

This happens normally only if the view is the focus view.

Reimplemented from CView.

CMouseEventResult onMouseDown | ( | CPoint & | where,
|  | const CButtonState & | buttons
| ) |  |
| overridevirtual

do not use any longer.

if possible refactor your classes to use the newer mouse event methods above.

Parameters

  where | mouse location of mouse down
  buttons | button and modifier state

Returns
  event result. see CMouseEventResult

Reimplemented from CView.

bool popup | ( | const PopupCallback & | callback = `{}` | ) |

pops up the menu

bool popup | ( | CFrame * | frame,
|  | const CPoint & | frameLocation,
|  | const PopupCallback & | callback = `{}`
| ) |  |

pops up the menu at frameLocation

void registerOptionMenuListener | ( | IOptionMenuListener * | listener | ) |

bool removeAllEntry | ( |  | ) |
| virtual

remove all entries

bool removeEntry | ( | int32_t | index | ) |
| virtual

remove an entry

bool setCurrent | ( | int32_t | index,
|  | bool | countSeparator = `true`
| ) |  |
| virtual

set current entry

void setMax | ( | float | val | ) |
| inlineoverridevirtual

Reimplemented from CControl.

void setMin | ( | float | val | ) |
| inlineoverridevirtual

Reimplemented from CControl.

virtual void setNbItemsPerColumn | ( | int32_t | val | ) |
| inlinevirtual

Windows only.

void setPrefixNumbers | ( | int32_t | preCount | ) |
| virtual

set prefix numbering

void setValue | ( | float | val | ) |
| overridevirtual

Reimplemented from CControl.

void takeFocus | ( |  | ) |
| overridevirtual

called if view should take focus

Reimplemented from CView.

void unregisterOptionMenuListener | ( | IOptionMenuListener * | listener | ) |

## Member Data Documentation

SharedPointer<CBitmap> bgWhenClick
| protected

int32_t currentIndex {-1}
| protected

bool inPopup {false}
| protected

CButtonState lastButton {0}
| protected

COptionMenu* lastMenu {nullptr}
| protected

int32_t lastResult {-1}
| protected

std::unique_ptr<MenuListenerList> listeners
| protected

CMenuItemList* menuItems
| protected

int32_t nbItemsPerColumn {-1}
| protected

int32_t prefixNumbers {0}
| protected

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

- coptionmenu.h
- coptionmenu.cpp