aboutsummaryrefslogtreecommitdiffstats
path: root/src/menu/software_mouse_pointer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/menu/software_mouse_pointer.hpp')
-rw-r--r--src/menu/software_mouse_pointer.hpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/menu/software_mouse_pointer.hpp b/src/menu/software_mouse_pointer.hpp
index 0e3d2ff8..797236ff 100644
--- a/src/menu/software_mouse_pointer.hpp
+++ b/src/menu/software_mouse_pointer.hpp
@@ -34,6 +34,7 @@
#include "utils/disposer.hpp"
#include <boost/signals2.hpp>
+#include <boost/thread/shared_mutex.hpp>
#include <GL/gl.h>
namespace usdx
@@ -44,12 +45,21 @@ namespace usdx
GLfloat vertices[8];
RgbaColor color;
+ bool down;
+
Disposer<Texture>* texture_normal;
Disposer<Texture>* texture_pressed;
Timer* fade_inactive;
boost::signals2::connection mouse_move_connection;
+ boost::signals2::connection mouse_down_connection;
+ boost::signals2::connection mouse_up_connection;
+
+ mutable boost::shared_mutex down_mutex;
+
+ Texture* get_current_texture() const;
+ void update(void);
protected:
void draw(void);
@@ -59,6 +69,10 @@ namespace usdx
virtual ~SoftwareMousePointer();
void on_mouse_move(uint16_t x, uint16_t y);
+ void on_mouse_down(uint8_t button, uint16_t x, uint16_t y);
+ void on_mouse_up(uint8_t button, uint16_t x, uint16_t y);
+
+ bool is_down(void) const;
};
};