X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fgui%2Fmousecursor.hpp;h=4aaa11df8a3cd2d25d5ac29ff63f45ccabbb8124;hb=590d47c3c3cf4641d97ee1579af69edbc355e5a8;hp=49b9e8f2d5b19db63ffaa5448bddb45a56bb2243;hpb=07ddaed2a657e4d2a3d038fed223fc5827159caf;p=supertux.git diff --git a/src/gui/mousecursor.hpp b/src/gui/mousecursor.hpp index 49b9e8f2d..4aaa11df8 100644 --- a/src/gui/mousecursor.hpp +++ b/src/gui/mousecursor.hpp @@ -1,12 +1,10 @@ -// $Id$ -// // SuperTux // Copyright (C) 2006 Matthias Braun // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,19 +12,20 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// along with this program. If not, see . -#ifndef SUPERTUX_MOUSECURSOR_H -#define SUPERTUX_MOUSECURSOR_H +#ifndef HEADER_SUPERTUX_GUI_MOUSECURSOR_HPP +#define HEADER_SUPERTUX_GUI_MOUSECURSOR_HPP #include +#include -#include "video/surface.hpp" +#include "video/surface_ptr.hpp" #define MC_STATES_NB 3 - -enum { + +enum MouseCursorState +{ MC_NORMAL = 0, MC_CLICK, MC_LINK, @@ -43,16 +42,15 @@ class DrawingContext; 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); + MouseCursor(const std::string& cursor_file, + const std::string& cursor_click_file, + const std::string& cursor_link_file); ~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); + void set_state(MouseCursorState nstate); + /// Define the middle of a MouseCursor. /** Useful for cross mouse cursor images in example. */ void set_mid(int x, int y); @@ -68,11 +66,19 @@ public: { current_ = pcursor; }; private: - int mid_x, mid_y; + int m_mid_x; + int m_mid_y; + MouseCursorState m_state; + std::vector m_cursor; + +private: static MouseCursor* current_; - int state_before_click; - int cur_state; - Surface* cursor; + +private: + MouseCursor(const MouseCursor&); + MouseCursor& operator=(const MouseCursor&); }; #endif /*SUPERTUX_MOUSECURSOR_H*/ + +/* EOF */