#define SUPERTUX_BUTTON_H
#include <vector>
-#include "texture.h"
+
+#include "screen/surface.h"
+#include "timer.h"
enum ButtonState {
BUTTON_NONE = -1,
friend class ButtonPanel;
public:
- Button(std::string icon_file, std::string info, SDLKey shortcut, int x, int y, int mw = -1, int h = -1);
+ Button(Surface* icon_file, const std::string& info, SDLKey shortcut,
+ int x, int y, int mw = -1, int h = -1);
+ Button(const std::string& icon_name, const std::string& info, SDLKey shortcut,
+ int x, int y, int mw = -1, int h = -1);
+
~Button();
void event(SDL_Event& event);
- void draw();
+ void draw(DrawingContext& context);
int get_state();
void set_active(bool active) { active ? state = BUTTON_NONE : state = BUTTON_DEACTIVE; };
- void add_icon(std::string icon_file, int mw, int mh);
+ void add_icon(const std::string& imagefile, int mw, int mh);
SDL_Rect get_pos() { return rect; }
int get_tag(){return tag; }
- void set_game_object(GameObject* game_object_) { game_object = game_object_; }
- GameObject* get_game_object() { return game_object; };
+// void set_drawable(Drawable* newdrawable)
+// { drawable = newdrawable; }
private:
static Timer popup_timer;
- GameObject* game_object;
+// Drawable* drawable;
std::vector<Surface*> icon;
std::string info;
SDLKey shortcut;
public:
ButtonPanel(int x, int y, int w, int h);
~ButtonPanel();
- void draw();
+ void draw(DrawingContext& context);
Button* event(SDL_Event &event);
void additem(Button* pbutton, int tag);
Button* button_panel_event(SDL_Event& event);