#include <YMenuWidget.h>
Public Member Functions | |
virtual | ~YMenuWidget () |
virtual const char * | widgetClass () const |
virtual void | rebuildMenuTree ()=0 |
virtual void | addItems (const YItemCollection &itemCollection) |
virtual void | addItem (YItem *item_disown) |
virtual void | deleteAllItems () |
void | resolveShortcutConflicts () |
virtual void | setItemEnabled (YMenuItem *item, bool enabled) |
virtual void | setItemVisible (YMenuItem *item, bool visible) |
YMenuItem * | findItem (std::vector< std::string > &path) const |
virtual void | activateItem (YMenuItem *item)=0 |
YMenuItem * | findMenuItem (int index) |
![]() | |
virtual | ~YSelectionWidget () |
std::string | label () const |
virtual void | setLabel (const std::string &newLabel) |
void | addItem (const std::string &itemLabel, bool selected=false) |
void | addItem (const std::string &itemLabel, const std::string &iconName, bool selected=false) |
void | setItems (const YItemCollection &itemCollection) |
YItemIterator | itemsBegin () |
YItemConstIterator | itemsBegin () const |
YItemIterator | itemsEnd () |
YItemConstIterator | itemsEnd () const |
bool | hasItems () const |
int | itemsCount () const |
YItem * | itemAt (int index) const |
YItem * | firstItem () const |
virtual YItem * | selectedItem () |
virtual YItemCollection | selectedItems () |
bool | hasSelectedItem () |
virtual void | selectItem (YItem *item, bool selected=true) |
virtual void | setItemStatus (YItem *item, int status) |
virtual void | deselectAllItems () |
void | setIconBasePath (const std::string &basePath) |
std::string | iconBasePath () const |
std::string | iconFullPath (const std::string &iconName) const |
std::string | iconFullPath (YItem *item) const |
bool | itemsContain (YItem *item) const |
YItem * | findItem (const std::string &itemLabel) const |
void | dumpItems () const |
bool | enforceSingleSelection () const |
virtual void | shortcutChanged () |
virtual std::string | shortcutString () const |
virtual void | setShortcutString (const std::string &str) |
![]() | |
virtual | ~YWidget () |
virtual std::string | debugLabel () const |
std::string | helpText () const |
void | setHelpText (const std::string &helpText) |
virtual const YPropertySet & | propertySet () |
virtual bool | setProperty (const std::string &propertyName, const YPropertyValue &val) |
virtual YPropertyValue | getProperty (const std::string &propertyName) |
bool | hasChildren () const |
YWidget * | firstChild () const |
YWidget * | lastChild () const |
YWidgetListIterator | childrenBegin () const |
YWidgetListIterator | childrenEnd () const |
YWidgetListConstIterator | childrenConstBegin () const |
YWidgetListConstIterator | childrenConstEnd () const |
YWidgetListIterator | begin () |
YWidgetListIterator | end () |
int | childrenCount () const |
bool | contains (YWidget *child) const |
virtual void | addChild (YWidget *child) |
virtual void | removeChild (YWidget *child) |
void | deleteChildren () |
YWidget * | parent () const |
bool | hasParent () const |
void | setParent (YWidget *newParent) |
YDialog * | findDialog () |
YWidget * | findWidget (YWidgetID *id, bool doThrow=true) const |
virtual int | preferredWidth ()=0 |
virtual int | preferredHeight ()=0 |
virtual int | preferredSize (YUIDimension dim) |
virtual void | setSize (int newWidth, int newHeight)=0 |
bool | isValid () const |
bool | beingDestroyed () const |
void * | widgetRep () const |
void | setWidgetRep (void *toolkitWidgetRep) |
bool | hasId () const |
YWidgetID * | id () const |
void | setId (YWidgetID *newId_disown) |
virtual void | setEnabled (bool enabled=true) |
void | setDisabled () |
virtual bool | isEnabled () const |
virtual bool | stretchable (YUIDimension dim) const |
void | setStretchable (YUIDimension dim, bool newStretch) |
void | setDefaultStretchable (YUIDimension dim, bool newStretch) |
virtual int | weight (YUIDimension dim) |
bool | hasWeight (YUIDimension dim) |
void | setWeight (YUIDimension dim, int weight) |
void | setNotify (bool notify=true) |
bool | notify () const |
void | setNotifyContextMenu (bool notifyContextMenu=true) |
bool | notifyContextMenu () const |
bool | sendKeyEvents () const |
void | setSendKeyEvents (bool doSend) |
bool | autoShortcut () const |
void | setAutoShortcut (bool _newAutoShortcut) |
int | functionKey () const |
bool | hasFunctionKey () const |
virtual void | setFunctionKey (int fkey_no) |
virtual bool | setKeyboardFocus () |
virtual const char * | userInputProperty () |
void | dumpWidgetTree (int indentationLevel=0) |
void | dumpDialogWidgetTree () |
void | setChildrenEnabled (bool enabled) |
virtual void | saveUserInput (YMacroRecorder *macroRecorder) |
void * | operator new (size_t size) |
void | operator delete (void *ptr) noexcept |
virtual void | startMultipleChanges () |
virtual void | doneMultipleChanges () |
Abstract base class for widgets that handle menus, e.g. YMenuButton or YMenuBar.
|
protected |
Constructor.
'label' is only passed through to the inherited class. For a menu button, this would be the label on the button; a menu bar does not have a label.
|
virtual |
Destructor.
|
pure virtual |
Support for the Rest API for UI testing:
Activate the item selected in the tree. This can be used in tests to simulate user input.
Derived classes are required to implement this.
|
virtual |
Add one item. This widget assumes ownership of the item object and will delete it in its destructor.
This reimplementation will assign an index to the item that is unique for all items in this MenuButton. That index can be used later with findMenuItem() to find the item by that index.
Reimplemented from YSelectionWidget.
Reimplemented from YSelectionWidget.
Reimplemented in YMenuButton.
|
virtual |
Add multiple items. For some UIs, this can be more efficient than calling addItem() multiple times. This function also automatically calls resolveShortcutConflicts() and rebuildMenuTree() at the end.
Derived classes can overwrite this function, but they should call this base class function at the end of the new implementation.
Reimplemented from YSelectionWidget.
Reimplemented from YSelectionWidget.
|
protected |
Assign a unique index to all items from iterator 'begin' to iterator 'end'.
|
virtual |
YMenuItem * YMenuWidget::findItem | ( | std::vector< std::string > & | path | ) | const |
Support for the Rest API for UI testing:
Return the item in the tree which matches a path of labels. This returns 0 if there is no such item or if it is not a leaf menu item.
'path' specifies the user-visible labels (i.e. the translated texts) of each menu level ( ["File", "Export", "As XML"] ).
|
protected |
Recursively looks for the first item in the tree of the menu items using depth first search. Return nullptr if item which matches full path is not found. Path is a vector of strings, where next element is a child item, so in case one needs to select File->Export->As PDF, for instance, Vector will look like [ "File", "Export", "As PDF" ].
YMenuItem * YMenuWidget::findMenuItem | ( | int | index | ) |
Recursively find the first menu item with the specified index. Returns 0 if there is no such item.
|
protected |
Recursively find the first menu item with the specified index from iterator 'begin' to iterator 'end'.
Returns 0 if there is no such item.
|
inlineprotected |
Alias for findMenuItem(). Reimplemented to ensure consistent behaviour with YSelectionWidget::itemAt().
|
pure virtual |
Rebuild the displayed menu tree from the internally stored YMenuItems.
The application should call this (once) after all items have been added with addItem(). YMenuButton::addItems() calls this automatically.
Derived classes are required to implement this.
void YMenuWidget::resolveShortcutConflicts | ( | ) |
Resolve keyboard shortcut conflicts: Change shortcuts of menu items if there are duplicates in the respective menu level.
This has to be called after all items are added, but before rebuildMenuTree() (see above). YMenuWidget::addItems() calls this automatically.
|
protected |
Resolve keyboard shortcut conflicts between iterators 'begin' and 'end'.
|
virtual |
Enable or disable an item. This default implementation only updates the item's 'enabled' field.
Derived classes should overwrite this method and either update the item's 'enabled' field in their implementation or call this default implementation.
|
virtual |
Show or hide an item. This default implementation only updates the item's 'visible' field.
Derived classes should overwrite this method and either update the item's 'visible' field in their implementation or call this default implementation.
|
inlinevirtual |
Returns a descriptive name of this widget class for logging, debugging etc.
Reimplemented from YSelectionWidget.
Reimplemented in YMenuBar, and YMenuButton.