OpenCOVER
coToolboxMenuHandle.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_TOOLBOXMENUHANDLE_H
9#define CO_TOOLBOXMENUHANDLE_H
10
12#include <OpenVRUI/coAction.h>
13#include <OpenVRUI/coButton.h>
15
16#include <string>
17
18namespace vrui
19{
20
21class vruiInteraction;
22class vruiMatrix;
23
24class coBackground;
25class coFrame;
26class coMenuContainer;
27class coToolboxMenu;
28class coCombinedButtonInteraction;
29
31class OPENVRUIEXPORT coToolboxMenuHandle
32 : public coRowContainer,
33 public coAction,
34 public coUpdateable,
35 public coButtonActor
36{
37public:
38 coToolboxMenuHandle(const std::string &, coToolboxMenu *);
40 virtual void setTransformMatrix(vruiMatrix *mat);
41 virtual void setTransformMatrix(vruiMatrix *mat, float scale);
42 virtual void setScale(float s);
43 virtual float getScale() const;
44 virtual bool update();
45
46 virtual void addCloseButton();
47
48 // hit is called whenever the button
49 // with this action is intersected
50 // return ACTION_CALL_ON_MISS if you want miss to be called
51 // otherwise return ACTION_DONE
52 virtual int hit(vruiHit *hit);
53
54 // miss is called once after a hit, if the button is not intersected
55 // anymore
56 virtual void miss();
57
58 virtual void highlight(bool highlight);
59
61
63 virtual const char *getClassName() const;
64
66 virtual bool isOfClassName(const char *) const;
67
69 void fixPos(bool doFix);
70
71protected:
72 virtual void buttonEvent(coButton *);
73
75
79
83 coVector pickPosition;
85 float lastRoll;
86 float myScale;
87 bool fixedPos;
88
89private:
90 coButton *closeButton;
91 coButton *minmaxButton;
92 coButton *cwrotButton;
93
94 coBackground *titleBackground;
95 coFrame *titleFrame;
96 coMenuContainer *titleContainer;
97
98 bool minimized;
99};
100}
101#endif
collaborative interface manager
Definition: coVRCommunication.h:41
Definition: coAction.h:26
Definition: coBackground.h:23
Action listener for events triggered by coButton.
Definition: coButton.h:24
Definition: coButton.h:37
Definition: coCombinedButtonInteraction.h:22
Definition: coFrame.h:29
Definition: coMenuContainer.h:20
Container class that aligns its children in a row.
Definition: coRowContainer.h:19
Orientation
orientation of this container
Definition: coRowContainer.h:23
Definition: coToolboxMenu.h:40
Offers a Handle for Toolboxes.
Definition: coToolboxMenuHandle.h:36
float lastRoll
Definition: coToolboxMenuHandle.h:85
virtual void addCloseButton()
adds the close button to the title bar
coCombinedButtonInteraction * interactionB
interaction for second button
Definition: coToolboxMenuHandle.h:77
coCombinedButtonInteraction * interactionA
interaction for first button
Definition: coToolboxMenuHandle.h:76
coCombinedButtonInteraction * interactionC
interaction for third button
Definition: coToolboxMenuHandle.h:78
bool unregister
Definition: coToolboxMenuHandle.h:80
virtual void setTransformMatrix(vruiMatrix *mat)
void fixPos(bool doFix)
fix this menu at current position
virtual void setScale(float s)
coToolboxMenuHandle(const std::string &, coToolboxMenu *)
coVector pickPosition
Definition: coToolboxMenuHandle.h:83
virtual bool isOfClassName(const char *) const
check if the Element or any ancestor is this classname
virtual void buttonEvent(coButton *)
virtual void highlight(bool highlight)
coVector localPickPosition
Definition: coToolboxMenuHandle.h:82
coToolboxMenu * myMenu
Definition: coToolboxMenuHandle.h:74
virtual void setTransformMatrix(vruiMatrix *mat, float scale)
virtual float getScale() const
float myScale
Definition: coToolboxMenuHandle.h:86
void setOrientation(coRowContainer::Orientation)
bool fixedPos
menu is fixed and may not be moved
Definition: coToolboxMenuHandle.h:87
virtual int hit(vruiHit *hit)
vruiMatrix * startPosition
Definition: coToolboxMenuHandle.h:81
vruiMatrix * invStartHandTrans
Definition: coToolboxMenuHandle.h:84
virtual const char * getClassName() const
get the Element's classname
objects that are derived from this class are called once per frame
Definition: coUpdateManager.h:20
Definition: vruiHit.h:21
Definition: vruiMatrix.h:20