// $Id$
-//
+//
// SuperTux
-// Copyright (C) 2004 Tobias Glaesser <tobi.web@gmx.de>
+// Copyright (C) 2006 Matthias Braun <matze@braunis.de>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// 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 <vector>
+#include <memory>
#include <set>
#include <string>
#include <utility>
static std::vector<Menu*> 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()
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);
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<Surface> checkbox;
+ std::auto_ptr<Surface> checkbox_checked;
+ std::auto_ptr<Surface> back;
+ std::auto_ptr<Surface> arrow_left;
+ std::auto_ptr<Surface> arrow_right;
+};
#endif