OpenCOVER
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
22 namespace vrui
23 {
24 
25 class coLabel;
26 class coMenu;
27 class coButton;
28 class coBackground;
29 class coFrame;
30 class coMenuContainer;
31 class coCombinedButtonInteraction;
32 
33 class vruiHit;
34 
36 class OPENVRUIEXPORT coRowMenuHandle
37  : public coRowContainer,
38  public coAction,
39  public coUpdateable,
40  public coButtonActor
41 {
42 public:
43  coRowMenuHandle(const std::string &title, coMenu *menu);
44  virtual ~coRowMenuHandle();
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 
80 protected:
81  virtual void buttonEvent(coButton *button);
84 
88 
89  bool unregister;
90 
96  coVector pickPosition;
100  float lastRoll;
102  float myScale;
103 
104 private:
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
Action listener for events triggered by coButton.
Definition: coButton.h:23
coVector localPickPosition
point in local menu coordinates where the titlebar was picked
Definition: coRowMenuHandle.h:94
Definition: coMenu.h:50
Definition: vruiHit.h:20
virtual void createGeometry()
Definition: coRowMenuHandle.h:66
coCombinedButtonInteraction * interactionA
interaction for first button
Definition: coRowMenuHandle.h:85
vruiMatrix * invStartHandTrans
inverse transformation of the pointer at the beginning of an interaction
Definition: coRowMenuHandle.h:98
vruiMatrix * startPosition
transformation matrix at the beginning of an interaction
Definition: coRowMenuHandle.h:92
Definition: coButton.h:36
Definition: coBackground.h:22
coVector pickPosition
point in world coordinates where the titlebar was picked
Definition: coRowMenuHandle.h:96
coCombinedButtonInteraction * interactionC
interaction for third button
Definition: coRowMenuHandle.h:87
Definition: coAction.h:25
Handles &#39;normal&#39; Menus.
Definition: coRowMenuHandle.h:36
Definition: coLabel.h:25
Definition: vruiMatrix.h:19
Definition: coCombinedButtonInteraction.h:20
float myScale
the menu size
Definition: coRowMenuHandle.h:102
Definition: coMenuContainer.h:19
float lastRoll
roll angle during the last frame
Definition: coRowMenuHandle.h:100
Definition: coFrame.h:28
coCombinedButtonInteraction * interactionB
interaction for second button
Definition: coRowMenuHandle.h:86
bool unregister
Definition: coRowMenuHandle.h:89
coMenu * myMenu
pointer to the menue it handles
Definition: coRowMenuHandle.h:83
Container class that aligns its children in a row.
Definition: coRowContainer.h:18
objects that are derived from this class are called once per frame
Definition: coUpdateManager.h:19