OpenCOVER
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
18 namespace vrui
19 {
20 
21 class vruiInteraction;
22 class vruiMatrix;
23 
24 class coBackground;
25 class coFrame;
26 class coMenuContainer;
27 class coToolboxMenu;
28 class coCombinedButtonInteraction;
29 
31 class OPENVRUIEXPORT coToolboxMenuHandle
32  : public coRowContainer,
33  public coAction,
34  public coUpdateable,
35  public coButtonActor
36 {
37 public:
38  coToolboxMenuHandle(const std::string &, coToolboxMenu *);
39  virtual ~coToolboxMenuHandle();
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 
60  void setOrientation(coRowContainer::Orientation);
61 
63  virtual const char *getClassName() const;
64 
66  virtual bool isOfClassName(const char *) const;
67 
69  void fixPos(bool doFix);
70 
71 protected:
72  virtual void buttonEvent(coButton *);
73 
75 
79 
80  bool unregister;
83  coVector pickPosition;
85  float lastRoll;
86  float myScale;
87  bool fixedPos;
88 
89 private:
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
Action listener for events triggered by coButton.
Definition: coButton.h:23
bool unregister
Definition: coToolboxMenuHandle.h:80
coCombinedButtonInteraction * interactionB
interaction for second button
Definition: coToolboxMenuHandle.h:77
Orientation
orientation of this container
Definition: coRowContainer.h:22
Definition: vruiHit.h:20
Definition: coToolboxMenu.h:36
vruiMatrix * startPosition
Definition: coToolboxMenuHandle.h:81
Definition: coButton.h:36
Definition: coBackground.h:22
coVector pickPosition
Definition: coToolboxMenuHandle.h:83
Definition: coAction.h:25
float myScale
Definition: coToolboxMenuHandle.h:86
float lastRoll
Definition: coToolboxMenuHandle.h:85
coVector localPickPosition
Definition: coToolboxMenuHandle.h:82
vruiMatrix * invStartHandTrans
Definition: coToolboxMenuHandle.h:84
coCombinedButtonInteraction * interactionA
interaction for first button
Definition: coToolboxMenuHandle.h:76
Definition: vruiMatrix.h:19
coCombinedButtonInteraction * interactionC
interaction for third button
Definition: coToolboxMenuHandle.h:78
Definition: coCombinedButtonInteraction.h:20
bool fixedPos
menu is fixed and may not be moved
Definition: coToolboxMenuHandle.h:87
Definition: coMenuContainer.h:19
Definition: coFrame.h:28
Offers a Handle for Toolboxes.
Definition: coToolboxMenuHandle.h:31
Container class that aligns its children in a row.
Definition: coRowContainer.h:18
coToolboxMenu * myMenu
Definition: coToolboxMenuHandle.h:74
objects that are derived from this class are called once per frame
Definition: coUpdateManager.h:19