OpenCOVER
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
coJoystickManager.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 COJOYSTICKMANAGER_H
9 #define COJOYSTICKMANAGER_H
10 
11 #include <util/coTypes.h>
12 
13 #include <stdio.h>
14 #include <string>
15 #include <vector>
16 #include <map>
17 #include <time.h>
18 
19 #include "coMenu.h"
20 
21 #define FORWARD 1
22 #define BACKWARD -1
23 #define ACTION 1
24 #define SECOND_ACTION -1
25 
26 namespace vrui
27 {
28 
32 class OPENVRUIEXPORT coJoystickManager
34 {
35 
36 public:
38  static coJoystickManager *instance(); //get instance of coJoystickManager
39  ~coJoystickManager();
40 
41 protected:
42  coJoystickManager(); //because of singleton
43  static coJoystickManager *joystickManager;
44 
45  void setMenuActive(coMenu *m);
46  void setItemActive(bool b);
47  void pressActiveItem(int action);
48  void selectAction(int action);
49  void selectActionButton(int action);
50  std::vector<coMenuItem *> getGoodItems(coMenu *m);
51  bool isDocument(coMenu *m);
52  void selectNextMenu(bool forward);
53 
56  std::map<coMenu *, int> activeItem;
57  std::list<coMenu *> menus;
59 
60  bool active;
61 
63 
64  int oldX;
65  int oldY;
66  int oldButton;
67 
72  long actualTime;
73  long lastTime;
74 
77 
79 
84 
86 
87 public:
89  void setActive(bool a);
90  bool getActive()
91  {
92  return active;
93  };
95  void setSelectOnRelease(bool b)
96  {
97  selectOnRelease = b;
98  };
100  {
101  return selectOnRelease;
102  };
104  void setBarrierXValue(float f)
105  {
106  barrierXValue = f;
107  };
109  void setBarrierYValue(float f)
110  {
111  barrierYValue = f;
112  };
114  {
115  return barrierXValue;
116  };
118  {
119  return barrierYValue;
120  };
123  {
124  barrierMilliSeconds = sec;
125  };
127  {
128  return barrierMilliSeconds;
129  };
131  void setDeltaSlider(long delta)
132  {
133  deltaSlider = delta;
134  }
136  {
137  return deltaSlider;
138  };
140  void setAccuracyFloatSlider(int accuracy)
141  {
142  accuracyFloatSlider = accuracy;
143  };
145  {
146  return accuracyFloatSlider;
147  }
149  long getLastTime()
150  {
151  return lastTime;
152  };
155  {
156  return actualTime;
157  };
158 
160  void registerMenu(coMenu *, bool force = false);
162  void unregisterMenu(coMenu *);
164  void closedMenu(coMenu *oldMenu, coMenu *newMenu);
166  void selectItem(coMenuItem *item, coMenu *parentMenu);
168  void openedSubMenu(coGenericSubMenuItem *item, coMenu *subMenu);
170  void update(float x, float y, long timeStamp = -1);
172  void update(int x, int y, long timeStamp = -1);
173 
175  void newUpdate(float x, float y, int button, long timeStamp = -1);
177  void newUpdate(int x, int y, int button, long timeStamp = -1);
178 
179  void setAttachment(int att)
180  {
181  attachment = att;
182  };
183 };
184 }
185 
186 #endif
void setAccuracyFloatSlider(int accuracy)
set accuracy of float-slider (one step is maxValue-minValue/accuracy)
Definition: coJoystickManager.h:140
int oldButton
Definition: coJoystickManager.h:66
int getAccuracyFloatSlider()
Definition: coJoystickManager.h:144
void setAttachment(int att)
Definition: coJoystickManager.h:179
Definition: coMenu.h:50
int accuracyFloatSlider
Definition: coJoystickManager.h:76
int oldX
save old value of x valuator
Definition: coJoystickManager.h:64
int barrierMilliSeconds
Definition: coJoystickManager.h:70
long firstPressed
Definition: coJoystickManager.h:71
bool getActive()
Definition: coJoystickManager.h:90
static coJoystickManager * joystickManager
static singleton variable
Definition: coJoystickManager.h:43
coMenu * oldActiveMenu
selected menu before
Definition: coJoystickManager.h:55
coMenu * rootMenu
root menu
Definition: coJoystickManager.h:58
coMenu * activeMenu
the selected menu
Definition: coJoystickManager.h:54
bool getSelectOnRelease()
Definition: coJoystickManager.h:99
long getLastTime()
get time of the last update
Definition: coJoystickManager.h:149
long deltaSlider
Definition: coJoystickManager.h:75
bool actionRelease
Definition: coJoystickManager.h:80
float getBarrierYValue()
Definition: coJoystickManager.h:117
void setBarrierYValue(float f)
set barrier value for y value of slider
Definition: coJoystickManager.h:109
long lastTime
Definition: coJoystickManager.h:73
long actualTime
Definition: coJoystickManager.h:72
Definition: coGenericSubMenuItem.h:22
bool secondActionRelease
Definition: coJoystickManager.h:82
std::map< coMenu *, int > activeItem
list of the selected items in menu and in parent menus
Definition: coJoystickManager.h:56
bool actionPress
Definition: coJoystickManager.h:81
long getActualTime()
get time of the actual update
Definition: coJoystickManager.h:154
float barrierXValue
Definition: coJoystickManager.h:68
int attachment
Definition: coJoystickManager.h:78
void setDeltaSlider(long delta)
set milliseconds after a slider updates its value
Definition: coJoystickManager.h:131
bool selectOnRelease
Definition: coJoystickManager.h:62
std::list< coMenu * > menus
Definition: coJoystickManager.h:57
float getBarrierXValue()
Definition: coJoystickManager.h:113
long getDeltaSlider()
Definition: coJoystickManager.h:135
bool active
flag if the joystick manager is active
Definition: coJoystickManager.h:60
float barrierYValue
Definition: coJoystickManager.h:69
void setBarrierMilliSeconds(int sec)
set milliseconds to wait until a action is called (release action)
Definition: coJoystickManager.h:122
int getBarrierMilliSeconds()
Definition: coJoystickManager.h:126
bool secondActionPress
Definition: coJoystickManager.h:83
void setSelectOnRelease(bool b)
set select on release
Definition: coJoystickManager.h:95
void setBarrierXValue(float f)
set barrier value for x value of slider
Definition: coJoystickManager.h:104
Definition: coMenuItem.h:44
int oldY
save old value of y valuator
Definition: coJoystickManager.h:65
bool menuTypeChanged
Definition: coJoystickManager.h:85