1 #ifndef HEADER_IWIDGET_H 2 #define HEADER_IWIDGET_H 3 4 class MouseStroke; 5 6 #include "Drawable.h" 7 #include "V2.h" 8 9 #include "SDL.h" 10 11 /** 12 * Widget interface. 13 */ 14 class IWidget : public Drawable { 15 protected: 16 V2 m_shift; 17 std::string m_tip; 18 protected: own_mouseButton(const MouseStroke &)19 virtual void own_mouseButton(const MouseStroke &/*stroke*/) {} own_getTip(const V2 &)20 virtual std::string own_getTip(const V2 &/*loc*/) { return m_tip; } 21 public: IWidget()22 IWidget() : m_shift(0, 0) {} 23 virtual int getW() const = 0; 24 virtual int getH() const = 0; setShift(const V2 & shift)25 virtual void setShift(const V2 &shift) { m_shift = shift; } setTip(const std::string & tip)26 virtual void setTip(const std::string &tip) { m_tip = tip; } 27 28 void mouseButton(const MouseStroke &stroke); 29 std::string getTip(const V2 &loc); 30 bool isInside(const V2 &loc); 31 }; 32 33 #endif 34