X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=lib%2Fgui%2Fmousecursor.h;h=0842b62c8dc3d260735e159c27a7087979eb85de;hb=8e0bad9f82ccbc811a18edd7ce6c6f69c5bca082;hp=30c9ae6409a1379f0191cf0037cf43612a4bc59c;hpb=107229850b95120c161024677894a1faec3f4ef9;p=supertux.git diff --git a/lib/gui/mousecursor.h b/lib/gui/mousecursor.h index 30c9ae640..0842b62c8 100644 --- a/lib/gui/mousecursor.h +++ b/lib/gui/mousecursor.h @@ -25,54 +25,62 @@ #include "special/timer.h" #include "video/surface.h" -#define MC_FRAME_PERIOD 800 // in ms +namespace SuperTux + { -#define MC_STATES_NB 3 -enum { - MC_NORMAL, - MC_CLICK, - MC_LINK, - MC_HIDE -}; + #define MC_FRAME_PERIOD 800 // in ms -/// Mouse cursor. -/** Used to create mouse cursors. - The mouse cursors can be animated - and can be used in four different states. - (MC_NORMAL, MC_CLICK, MC_LINK or MC_HIDE) */ -class MouseCursor -{ -public: - /// Constructor of MouseCursor. - /** Expects an imagefile for the cursor and the number of animation frames it contains. */ - MouseCursor(std::string cursor_file, int frames); - ~MouseCursor(); - /// Get MouseCursor state. - /** (MC_NORMAL, MC_CLICK, MC_LINK or MC_HIDE) */ - int state(); - /// Set MouseCursor state. - /** (MC_NORMAL, MC_CLICK, MC_LINK or MC_HIDE) */ - void set_state(int nstate); - /// Define the middle of a MouseCursor. - /** Useful for cross mouse cursor images in example. */ - void set_mid(int x, int y); - - /// Draw MouseCursor on screen. - void draw(DrawingContext& context); - - /// Return the current cursor. - static MouseCursor* current() { return current_; }; - /// Set current cursor. - static void set_current(MouseCursor* pcursor) { current_ = pcursor; }; - -private: - int mid_x, mid_y; - static MouseCursor* current_; - int state_before_click; - int cur_state; - int cur_frame, tot_frames; - Surface* cursor; - Timer timer; -}; + #define MC_STATES_NB 3 + + enum { + MC_NORMAL, + MC_CLICK, + MC_LINK, + MC_HIDE + }; + + /// Mouse cursor. + /** Used to create mouse cursors. + The mouse cursors can be animated + and can be used in four different states. + (MC_NORMAL, MC_CLICK, MC_LINK or MC_HIDE) */ + class MouseCursor + { + public: + /// Constructor of MouseCursor. + /** Expects an imagefile for the cursor and the number of animation frames it contains. */ + MouseCursor(std::string cursor_file, int frames); + ~MouseCursor(); + /// Get MouseCursor state. + /** (MC_NORMAL, MC_CLICK, MC_LINK or MC_HIDE) */ + int state(); + /// Set MouseCursor state. + /** (MC_NORMAL, MC_CLICK, MC_LINK or MC_HIDE) */ + void set_state(int nstate); + /// Define the middle of a MouseCursor. + /** Useful for cross mouse cursor images in example. */ + void set_mid(int x, int y); + + /// Draw MouseCursor on screen. + void draw(DrawingContext& context); + + /// Return the current cursor. + static MouseCursor* current() + { return current_; }; + /// Set current cursor. + static void set_current(MouseCursor* pcursor) + { current_ = pcursor; }; + + private: + int mid_x, mid_y; + static MouseCursor* current_; + int state_before_click; + int cur_state; + int cur_frame, tot_frames; + Surface* cursor; + Timer timer; + }; + +} // namespace SuperTux #endif /*SUPERTUX_MOUSECURSOR_H*/