#ifndef BUTTON_H
#define BUTTON_H

#include <stdint.h>
#include "SDL.h"

#include <string>
using namespace std;

//Button simply stores data.

class Button {
 public:
  Button();
  virtual ~Button();

  uint16_t getWidth ();
  uint16_t getHeight ();
  uint16_t getZDepth ();

  int16_t getX ();
  int16_t getY ();
  void setPosition (int16_t, int16_t);
  void setDimensions (uint16_t, uint16_t, uint16_t);

  void setGraphicFont (const string &);
  void setGraphicFontColor (uint8_t, uint8_t, uint8_t);
  void setGraphicMouseUp (const string &);
  void setGraphicMouseDown (const string &);

  const string & getGraphicFont();
  const string & getGraphicMouseUp ();
  const string & getGraphicMouseDown ();
  uint8_t getGraphicFontColorR();
  uint8_t getGraphicFontColorG();
  uint8_t getGraphicFontColorB();

  bool getIsHit();
  void setIsHit(bool);

 private:
  string graphicMouseUp, graphicMouseDown, graphicFont;
  int16_t xPos, yPos;
  uint16_t wid, hei, zd;
  bool isHit;
  uint8_t fontColR, fontColG, fontColB;
};
#endif
