OpenCOVER
coToolboxMenu.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_TOOLBOX_MENU_H
9#define CO_TOOLBOX_MENU_H
10
11#include <OpenVRUI/coMenu.h>
12#include <OpenVRUI/coButton.h>
15
16#include <string>
17
18//class coButton;
19
20namespace vrui
21{
22
23class coMenuItem;
24class coTexturedBackground;
25class coBackground;
26class coToolboxMenuHandle;
27class coFrame;
28class coSubMenuToolboxItem;
29class coIconButtonToolboxItem;
30
36class OPENVRUIEXPORT coToolboxMenu
37 : public coMenu,
38 public coButtonActor,
39 public coMenuListener
40{
41protected:
43
45 // coBackground* itemsBackground; /// global background
46
48
49public:
50 coToolboxMenu(const std::string &name = "Toolbox",
51 coMenu *parent = 0,
53 int attachment = coUIElement::BOTTOM, int maxItems = 0);
54
55 virtual ~coToolboxMenu();
56
57 void add(coMenuItem *);
58 void insert(coMenuItem *, int);
60 void removeAll();
61 int getItemCount() const;
62 virtual void setScale(float s);
63 virtual float getScale() const;
64
65 virtual void setTransformMatrix(vruiMatrix *mat);
66 virtual void setTransformMatrix(vruiMatrix *mat, float scale);
67
68 virtual void setVisible(bool newState);
69
72
73 virtual void buttonEvent(coButton *)
74 {
75 }
76
77 bool update();
78
79 // Functions to Show and Hide the Toolbar
80 void show();
81 void hide();
82
83 // set the container Attachment
84 virtual void setAttachment(int);
85 virtual int getAttachment() const;
86
88 virtual const char *getClassName() const;
90 virtual bool isOfClassName(const char *) const;
91
92 void fixPos(bool doFix);
93
94 virtual void selected(bool select);
95 virtual void makeVisible(coMenuItem *item);
96
97private:
98 int attachment;
99 int isHidden;
100 int stateChangeRunning;
101 int showOperation;
102
103 double t_start, t_end, t_now;
104 double stateDelay;
105
106 coIconButtonToolboxItem *upItem_, *downItem_;
107 int maxItems_;
108 int startPos_;
109 virtual void menuEvent(coMenuItem *item);
110};
111}
112#endif
collaborative interface manager
Definition: coVRCommunication.h:41
Action listener for events triggered by coButton.
Definition: coButton.h:24
Definition: coButton.h:37
Definition: coFrame.h:29
Definition: coIconButtonToolboxItem.h:28
Definition: coMenu.h:51
Action listener for events triggered by any coMenuItem.
Definition: coMenuItem.h:25
Definition: coMenuItem.h:45
Container class that aligns its children in a row.
Definition: coRowContainer.h:19
Orientation
orientation of this container
Definition: coRowContainer.h:23
@ HORIZONTAL
Definition: coRowContainer.h:24
Definition: coToolboxMenu.h:40
void show()
makes the menu visible
virtual void setTransformMatrix(vruiMatrix *mat, float scale)
virtual ~coToolboxMenu()
virtual void buttonEvent(coButton *)
Definition: coToolboxMenu.h:73
virtual bool isOfClassName(const char *) const
check if the Element or any ancestor is this classname
void insert(coMenuItem *, int)
void hide()
hides this menu
virtual void setVisible(bool newState)
void fixPos(bool doFix)
fix mmy menu's position
virtual float getScale() const
Gets the current scaling factor.
coToolboxMenuHandle * handle
surrounding frame
Definition: coToolboxMenu.h:47
void remove(coMenuItem *)
virtual void setAttachment(int)
coFrame * itemsFrame
Definition: coToolboxMenu.h:44
coRowContainer * itemsContainer
menu items (anything below title bar)
Definition: coToolboxMenu.h:42
virtual void makeVisible(coMenuItem *item)
makes the item visible for joystick interaction
virtual void setScale(float s)
Sets the menu size by applying a scaling factor to the default size.
void add(coMenuItem *)
int getItemCount() const
virtual void selected(bool select)
Menu is selected via joystick.
virtual int getAttachment() const
coToolboxMenu(const std::string &name="Toolbox", coMenu *parent=0, coRowContainer::Orientation orientation=coRowContainer::HORIZONTAL, int attachment=coUIElement::BOTTOM, int maxItems=0)
handle
vruiTransformNode * getDCS()
Get Transformation Node.
virtual void setTransformMatrix(vruiMatrix *mat)
virtual const char * getClassName() const
get the Element's classname
virtual coUIElement * getUIElement()
Offers a Handle for Toolboxes.
Definition: coToolboxMenuHandle.h:36
Definition: coUIElement.h:53
@ BOTTOM
Definition: coUIElement.h:138
Definition: vruiMatrix.h:20
Definition: vruiTransformNode.h:18