OpenCOVER
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
coToolboxMenu.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_TOOLBOX_MENU_H
9 #define CO_TOOLBOX_MENU_H
10 
11 #include <OpenVRUI/coMenu.h>
12 #include <OpenVRUI/coButton.h>
14 #include <OpenVRUI/coUIElement.h>
15 
16 #include <string>
17 
18 //class coButton;
19 
20 namespace vrui
21 {
22 
23 class coMenuItem;
24 class coTexturedBackground;
25 class coBackground;
26 class coToolboxMenuHandle;
27 class coFrame;
28 class coSubMenuToolboxItem;
29 class coIconButtonToolboxItem;
30 
36 class OPENVRUIEXPORT coToolboxMenu
37  : public coMenu,
38  public coButtonActor,
39  public coMenuListener
40 {
41 protected:
43 
45  // coBackground* itemsBackground; /// global background
46 
48 
49 public:
50  coToolboxMenu(const std::string &name = "Toolbox",
51  coMenu *parent = 0,
53  int attachment = coUIElement::BOTTOM, int maxItems = 0);
54 
55  virtual ~coToolboxMenu();
56 
57  void add(coMenuItem *);
58  void insert(coMenuItem *, int);
59  void remove(coMenuItem *);
60  void removeAll();
61  int getItemCount() const;
62  virtual void setScale(float s);
63  virtual float getScale() const;
64 
65  virtual void setTransformMatrix(vruiMatrix *mat);
66  virtual void setTransformMatrix(vruiMatrix *mat, float scale);
67 
68  virtual void setVisible(bool newState);
69 
70  vruiTransformNode *getDCS();
71  virtual coUIElement *getUIElement();
72 
73  virtual void buttonEvent(coButton *)
74  {
75  }
76 
77  bool update();
78 
79  // Functions to Show and Hide the Toolbar
80  void show();
81  void hide();
82 
83  // set the container Attachment
84  virtual void setAttachment(int);
85  virtual int getAttachment() const;
86 
88  virtual const char *getClassName() const;
90  virtual bool isOfClassName(const char *) const;
91 
92  void fixPos(bool doFix);
93 
94  virtual void selected(bool select);
95  virtual void makeVisible(coMenuItem *item);
96 
97 private:
98  int attachment;
99  int isHidden;
100  int stateChangeRunning;
101  int showOperation;
102 
103  double t_start, t_end, t_now;
104  double stateDelay;
105 
106  coIconButtonToolboxItem *upItem_, *downItem_;
107  int maxItems_;
108  int startPos_;
109  virtual void menuEvent(coMenuItem *item);
110 };
111 }
112 #endif
Action listener for events triggered by coButton.
Definition: coButton.h:23
Definition: coMenu.h:50
Orientation
orientation of this container
Definition: coRowContainer.h:22
Definition: coToolboxMenu.h:36
coToolboxMenuHandle * handle
surrounding frame
Definition: coToolboxMenu.h:47
Definition: vruiTransformNode.h:17
Definition: coButton.h:36
virtual void buttonEvent(coButton *)
Definition: coToolboxMenu.h:73
Definition: vruiMatrix.h:19
Definition: coRowContainer.h:24
Definition: coUIElement.h:134
coFrame * itemsFrame
Definition: coToolboxMenu.h:44
coRowContainer * itemsContainer
menu items (anything below title bar)
Definition: coToolboxMenu.h:42
Definition: coUIElement.h:52
Definition: coFrame.h:28
Action listener for events triggered by any coMenuItem.
Definition: coMenuItem.h:24
Offers a Handle for Toolboxes.
Definition: coToolboxMenuHandle.h:31
Container class that aligns its children in a row.
Definition: coRowContainer.h:18
Definition: coIconButtonToolboxItem.h:24
Definition: coMenuItem.h:44