OpenCOVER
coMenuItem.h
Go to the documentation of this file.
1/* This file is part of COVISE.
2
3 You can use it under the terms of the GNU Lesser General Public License
4 version 2.1 or later, see lgpl-2.1.txt.
5
6 * License: LGPL 2+ */
7
8#ifndef CO_MENUITEM_H
9#define CO_MENUITEM_H
10
12#include <string>
13
14namespace vrui
15{
16
17class coMenuContainer;
18class coColoredBackground;
19class coMenu;
20class coLabel;
21class coMenuItem;
22
24class OPENVRUIEXPORT coMenuListener
25{
26public:
32 {
33 }
34 virtual void menuEvent(coMenuItem *menuItem);
35 virtual void menuPressEvent(coMenuItem *menuItem);
36 virtual void menuReleaseEvent(coMenuItem *menuItem);
37};
38
44class OPENVRUIEXPORT coMenuItem
45{
46protected:
47 bool visible;
52 std::string myName;
54
55 bool active_;
56
57public:
58 coMenuItem(const std::string &name);
59 virtual ~coMenuItem();
60
61 virtual void setMenuListener(coMenuListener *listener);
63
64 virtual void setParentMenu(coMenu *parent);
65 virtual void setVisible(bool visible);
66 virtual bool isVisible() const;
67 virtual void setAttachment(int /*attachment*/)
68 {
69 }
70
71 virtual const char *getName() const;
73
75 virtual const char *getClassName() const;
77 virtual bool isOfClassName(const char *) const;
78
81 {
82 return myMenu;
83 }
84
86 void setName(const std::string &newName, bool updateTwins = true);
87
89 virtual void setActive(bool a)
90 {
91 active_ = a;
92 };
94 virtual bool getActive()
95 {
96 return active_;
97 };
98
100 virtual void setLabel(const std::string &newName);
101
102 virtual void selected(bool select);
103 virtual void doActionPress();
104 virtual void doActionRelease();
105 virtual void doSecondActionPress();
106 virtual void doSecondActionRelease();
107};
108}
109#endif
collaborative interface manager
Definition: coVRCommunication.h:41
Definition: coMenu.h:51
Action listener for events triggered by any coMenuItem.
Definition: coMenuItem.h:25
virtual void menuReleaseEvent(coMenuItem *menuItem)
virtual void menuPressEvent(coMenuItem *menuItem)
virtual void menuEvent(coMenuItem *menuItem)
virtual ~coMenuListener()
Definition: coMenuItem.h:31
Definition: coMenuItem.h:45
coMenuListener * listener
on menu selection
Definition: coMenuItem.h:50
virtual coMenuListener * getMenuListener()
virtual void setParentMenu(coMenu *parent)
void setName(const std::string &newName, bool updateTwins=true)
set my name - items with labels must call this when changing label
virtual void doActionRelease()
Action is called via joystick.
virtual void setLabel(const std::string &newName)
this function may be overloaded - it is called by setName()
virtual void doSecondActionRelease()
second Action for Item
std::string myName
symbolic name, or displayed as label)
Definition: coMenuItem.h:52
virtual void setAttachment(int)
sets the attachment border
Definition: coMenuItem.h:67
coMenuItem(const std::string &name)
virtual void setMenuListener(coMenuListener *listener)
coMenu * getParentMenu()
get my parent menu
Definition: coMenuItem.h:80
virtual bool getActive()
return if item is active
Definition: coMenuItem.h:94
virtual bool isOfClassName(const char *) const
check if the Element or any ancestor is this classname
virtual bool isVisible() const
virtual ~coMenuItem()
virtual const char * getName() const
bool active_
flag if item is active
Definition: coMenuItem.h:55
virtual void setVisible(bool visible)
virtual coUIElement * getUIElement()
virtual void doActionPress()
Action is called via joystick.
virtual void doSecondActionPress()
second Action for Item
virtual void setActive(bool a)
functions activates or deactivates the item
Definition: coMenuItem.h:89
virtual void selected(bool select)
MenuItem is selected via joystick.
bool visible
Definition: coMenuItem.h:47
coMenu * myMenu
this menu item
Definition: coMenuItem.h:48
virtual const char * getClassName() const
get the Element's classname
Definition: coUIElement.h:53