OpenCOVER
coPopupHandle.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_POPUPHANDLE_H
9#define CO_POPUPHANDLE_H
10
12#include <OpenVRUI/coAction.h>
13#include <OpenVRUI/coButton.h>
15#include <string>
16
17namespace vrui
18{
19
20class coLabel;
21class coButton;
22class coBackground;
23class coFrame;
24class coMenuContainer;
25class coCombinedButtonInteraction;
26class vruiHit;
27class vruiMatrix;
28
30class OPENVRUIEXPORT coPopupHandle
31 : public coRowContainer,
32 public coAction,
33 public coUpdateable,
34 public coButtonActor
35{
36public:
37 coPopupHandle(const std::string &title);
38 virtual ~coPopupHandle();
39 virtual void setTransformMatrix(vruiMatrix *matrix);
40 virtual void setTransformMatrix(vruiMatrix *matrix, float scale);
41 virtual void setScale(float scale);
42 virtual float getScale() const;
43 virtual bool update();
44
45 virtual void resizeToParent(float, float, float, bool shrink = true);
46 virtual void shrinkToMin();
47
48 virtual void createGeometry()
49 {
50 }
51 // hit is called whenever the button
52 // with this action is intersected
53 // return ACTION_CALL_ON_MISS if you want miss to be called
54 // otherwise return ACTION_DONE
55 virtual int hit(vruiHit *hit);
56
57 // miss is called once after a hit, if the button is not intersected
58 // anymore
59 virtual void miss();
60
62 virtual const char *getClassName() const;
64 virtual bool isOfClassName(const char *) const;
65
66protected:
67 virtual void buttonEvent(coButton *source);
69
73
80 coVector pickPosition;
84 float lastRoll;
86 float myScale;
87
88private:
89 //
90 coLabel *titleLabel;
91 coButton *closeButton;
92 coButton *minmaxButton;
93 coBackground *titleBackground;
94 coMenuContainer *titleContainer;
95 coFrame *titleFrame;
96 std::string title;
97 bool minimized;
98};
99}
100#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: coMenuContainer.h:20
Popup Handler.
Definition: coPopupHandle.h:35
virtual void createGeometry()
Definition: coPopupHandle.h:48
coVector localPickPosition
point in local menu coordinates where the titlebar was picked
Definition: coPopupHandle.h:78
virtual void buttonEvent(coButton *source)
virtual bool update()
virtual void setTransformMatrix(vruiMatrix *matrix, float scale)
virtual void shrinkToMin()
Set element location in space.
virtual void miss()
float lastRoll
roll angle during the last frame
Definition: coPopupHandle.h:84
vruiMatrix * startPosition
transformation matrix at the beginning of an interaction
Definition: coPopupHandle.h:76
coCombinedButtonInteraction * interactionA
true, if the pointer could be grabbed for an interaction
Definition: coPopupHandle.h:70
vruiMatrix * invStartHandTrans
inverse transformation of the pointer at the beginning of an interaction
Definition: coPopupHandle.h:82
virtual void resizeToParent(float, float, float, bool shrink=true)
coPopupHandle(const std::string &title)
coCombinedButtonInteraction * interactionB
interaction for second button
Definition: coPopupHandle.h:71
virtual bool isOfClassName(const char *) const
check if the Element or any ancestor is this classname
float myScale
the size
Definition: coPopupHandle.h:86
virtual float getScale() const
virtual void setScale(float scale)
bool unregister
Definition: coPopupHandle.h:74
virtual const char * getClassName() const
get the Element's classname
virtual void setTransformMatrix(vruiMatrix *matrix)
virtual int hit(vruiHit *hit)
virtual ~coPopupHandle()
coCombinedButtonInteraction * interactionC
interaction for third button
Definition: coPopupHandle.h:72
coVector pickPosition
point in world coordinates where the titlebar was picked
Definition: coPopupHandle.h:80
Container class that aligns its children in a row.
Definition: coRowContainer.h:19
objects that are derived from this class are called once per frame
Definition: coUpdateManager.h:20
Definition: vruiHit.h:21
Definition: vruiMatrix.h:20