Woopsi 1.0
GUI Framework for Nintendo DS Homebrew
|
00001 #ifndef _ANIM_BUTTON_H_ 00002 #define _ANIM_BUTTON_H_ 00003 00004 #include <nds.h> 00005 #include "gadget.h" 00006 #include "animation.h" 00007 #include "gadgeteventhandler.h" 00008 00009 namespace WoopsiUI { 00010 00011 class WoopsiTimer; 00012 00017 class AnimButton : public Gadget, public GadgetEventHandler { 00018 00019 public: 00020 00032 AnimButton(s16 x, s16 y, u16 width, u16 height, u16 animX, u16 animY); 00033 00039 virtual Animation* const getNormalAnimation(); 00040 00045 virtual Animation* const getClickedAnimation(); 00046 00053 virtual void getPreferredDimensions(Rect& rect) const; 00054 00055 protected: 00056 Animation* _animNormal; 00057 Animation* _animClicked; 00058 u16 _animX; 00059 u16 _animY; 00060 bool _initialised; 00061 WoopsiTimer* _timer; 00063 static const int ANIM_BUTTON_DEFAULT_WIDTH; 00064 static const int ANIM_BUTTON_DEFAULT_HEIGHT; 00072 virtual void drawContents(GraphicsPort* port); 00073 00080 virtual void drawBorder(GraphicsPort* port); 00081 00086 virtual void drawOutline(GraphicsPort* port); 00087 00093 virtual void onClick(s16 x, s16 y); 00094 00100 virtual void onRelease(s16 x, s16 y); 00101 00107 virtual void onReleaseOutside(s16 x, s16 y); 00108 00112 virtual void onDisable(); 00113 00117 virtual void onEnable(); 00118 00122 virtual ~AnimButton(); 00123 00127 inline AnimButton(const AnimButton& animButton) : Gadget(animButton) { }; 00128 00133 void handleActionEvent(const GadgetEventArgs& e); 00134 }; 00135 } 00136 00137 #endif