OpenCOVER
coRowMenuHandle.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_ROWMENUHANDLE_H
9#define CO_ROWMENUHANDLE_H
10
11#include <OpenVRUI/coAction.h>
12#include <OpenVRUI/coButton.h>
15
17
18#include <util/coVector.h>
19
20#include <string>
21
22namespace vrui
23{
24
25class coLabel;
26class coMenu;
27class coButton;
28class coBackground;
29class coFrame;
30class coMenuContainer;
31class coCombinedButtonInteraction;
32
33class vruiHit;
34
36class OPENVRUIEXPORT coRowMenuHandle
37 : public coRowContainer,
38 public coAction,
39 public coUpdateable,
40 public coButtonActor
41{
42public:
43 coRowMenuHandle(const std::string &title, coMenu *menu);
45 virtual void setTransformMatrix(vruiMatrix *matrix);
46 virtual void setTransformMatrix(vruiMatrix *matrix, float scale);
47 virtual void setScale(float scale);
48 virtual float getScale() const;
49 virtual bool update();
50 virtual void resizeToParent(float, float, float, bool shrink = true);
51
56 virtual int hit(vruiHit *hit);
57
58 // miss is called once after a hit, if the button is not intersected
59 // anymore
60 virtual void miss();
61
62 virtual void highlight(bool highlight);
63
64 virtual void shrinkToMin();
65
66 virtual void createGeometry()
67 {
68 }
69
71 virtual const char *getClassName() const;
73 virtual bool isOfClassName(const char *) const;
74
76 virtual void updateTitle(const char *newTitle);
77
78 bool wasMoved() const;
79
80protected:
81 virtual void buttonEvent(coButton *button);
84
88
90
96 coVector pickPosition;
100 float lastRoll;
102 float myScale;
103
104private:
105 //
106 coLabel *titleLabel;
107 coButton *closeButton;
108 coButton *minmaxButton;
109 coBackground *titleBackground;
110 coMenuContainer *titleContainer;
111 coFrame *titleFrame;
112 std::string title;
113 bool minimized;
114};
115}
116#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: coLabel.h:26
Definition: coMenu.h:51
Definition: coMenuContainer.h:20
Container class that aligns its children in a row.
Definition: coRowContainer.h:19
Handles 'normal' Menus.
Definition: coRowMenuHandle.h:41
virtual ~coRowMenuHandle()
virtual void shrinkToMin()
Set element location in space.
virtual void updateTitle(const char *newTitle)
update the title
float myScale
the menu size
Definition: coRowMenuHandle.h:102
vruiMatrix * startPosition
transformation matrix at the beginning of an interaction
Definition: coRowMenuHandle.h:92
virtual void resizeToParent(float, float, float, bool shrink=true)
virtual const char * getClassName() const
get the Element's classname
virtual float getScale() const
virtual void highlight(bool highlight)
virtual bool update()
float lastRoll
roll angle during the last frame
Definition: coRowMenuHandle.h:100
coCombinedButtonInteraction * interactionA
interaction for first button
Definition: coRowMenuHandle.h:85
virtual void setTransformMatrix(vruiMatrix *matrix, float scale)
coVector localPickPosition
point in local menu coordinates where the titlebar was picked
Definition: coRowMenuHandle.h:94
virtual void buttonEvent(coButton *button)
virtual void miss()
coCombinedButtonInteraction * interactionC
interaction for third button
Definition: coRowMenuHandle.h:87
coRowMenuHandle(const std::string &title, coMenu *menu)
virtual void setTransformMatrix(vruiMatrix *matrix)
virtual void setScale(float scale)
coCombinedButtonInteraction * interactionB
interaction for second button
Definition: coRowMenuHandle.h:86
virtual int hit(vruiHit *hit)
virtual void createGeometry()
Definition: coRowMenuHandle.h:66
coMenu * myMenu
pointer to the menue it handles
Definition: coRowMenuHandle.h:83
vruiMatrix * invStartHandTrans
inverse transformation of the pointer at the beginning of an interaction
Definition: coRowMenuHandle.h:98
bool unregister
Definition: coRowMenuHandle.h:89
bool wasMoved() const
virtual bool isOfClassName(const char *) const
check if the Element or any ancestor is this classname
coVector pickPosition
point in world coordinates where the titlebar was picked
Definition: coRowMenuHandle.h:96
objects that are derived from this class are called once per frame
Definition: coUpdateManager.h:20
Definition: vruiHit.h:21
Definition: vruiMatrix.h:20