X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgui%2Fmenu.hpp;h=0357c032a2c5259826c9de3dbeaf64d8fe14d587;hb=07ddaed2a657e4d2a3d038fed223fc5827159caf;hp=88da108126c5dcef513c15ad617ac6657726977d;hpb=5b7f9214cb929399f1a855ef5807018a9447d510;p=supertux.git diff --git a/src/gui/menu.hpp b/src/gui/menu.hpp index 88da10812..0357c032a 100644 --- a/src/gui/menu.hpp +++ b/src/gui/menu.hpp @@ -1,7 +1,7 @@ // $Id$ -// +// // SuperTux -// Copyright (C) 2004 Tobias Glaesser +// 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 @@ -12,14 +12,16 @@ // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // 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. + #ifndef SUPERTUX_MENU_H #define SUPERTUX_MENU_H #include +#include #include #include #include @@ -89,12 +91,13 @@ private: static std::vector last_menus; static Menu* current_; - static void push_current(Menu* pmenu); static void pop_current(); public: /** Set the current menu, if pmenu is NULL, hide the current menu */ static void set_current(Menu* pmenu); + + static void push_current(Menu* pmenu); /** Return the current active menu or NULL if none is active */ static Menu* current() @@ -121,8 +124,8 @@ private: int hit_item; // position of the menu (ie. center of the menu, not top/left) - int pos_x; - int pos_y; + float pos_x; + float pos_y; /** input event for the menu (up, down, left, right, etc.) */ MenuAction menuaction; @@ -176,7 +179,7 @@ public: void set_active_item(int id); void draw(DrawingContext& context); - void set_pos(int x, int y, float rw = 0, float rh = 0); + void set_pos(float x, float y, float rw = 0, float rh = 0); void event(const SDL_Event& event); @@ -184,8 +187,8 @@ public: protected: void additem(MenuItem* pmenu_item); - int get_width() const; - int get_height() const; + float get_width() const; + float get_height() const; private: void check_controlfield_change_event(const SDL_Event& event); @@ -193,12 +196,12 @@ private: Uint32 effect_ticks; int arrange_left; int active_item; -}; -extern Surface* checkbox; -extern Surface* checkbox_checked; -extern Surface* back; -extern Surface* arrow_left; -extern Surface* arrow_right; + std::auto_ptr checkbox; + std::auto_ptr checkbox_checked; + std::auto_ptr back; + std::auto_ptr arrow_left; + std::auto_ptr arrow_right; +}; #endif