1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2024-10-02 17:16:23 +03:00
gmenu2x/src/iconbutton.h
2011-05-09 05:17:25 +02:00

53 lines
993 B
C++

#ifndef ICONBUTTON_H
#define ICONBUTTON_H
#include "button.h"
#include "asfont.h"
#include <string>
using std::string;
class GMenu2X;
class Surface;
class IconButton : public Button {
protected:
GMenu2X *gmenu2x;
string icon, label;
int labelPosition, labelMargin;
ASFont::HAlign labelHAlign;
ASFont::VAlign labelVAlign;
void recalcSize();
SDL_Rect iconRect, labelRect;
Surface *iconSurface;
void updateSurfaces();
public:
static const int DISP_RIGHT = 0;
static const int DISP_LEFT = 1;
static const int DISP_TOP = 2;
static const int DISP_BOTTOM = 3;
IconButton(GMenu2X *gmenu2x, const string &icon, const string &label="");
virtual ~IconButton() {};
virtual void paint();
virtual bool paintHover();
virtual void setPosition(int x, int y);
const string &getLabel();
void setLabel(const string &label);
void setLabelPosition(int pos, int margin);
const string &getIcon();
void setIcon(const string &icon);
void setAction(ButtonAction action);
};
#endif