aboutsummaryrefslogtreecommitdiffstats
path: root/src/menu/software_mouse_pointer.hpp
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2012-09-17 01:44:40 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-13 22:41:06 +0100
commit21892f777ee38a93428e6a3804868eab73fc683d (patch)
treec8def6d1f937f4019ed8516b48b7cfb7d76fc91a /src/menu/software_mouse_pointer.hpp
parent668fb8ae01d1a09ba2bf2faf52d17e8edcf541e1 (diff)
downloadusdx-21892f777ee38a93428e6a3804868eab73fc683d.tar.gz
usdx-21892f777ee38a93428e6a3804868eab73fc683d.tar.xz
usdx-21892f777ee38a93428e6a3804868eab73fc683d.zip
menu/software_mouse_pointer: implement pressed state
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;
};
};