Woopsi 1.0
GUI Framework for Nintendo DS Homebrew
|
00001 #ifndef _SLIDER_HORIZONTAL_H_ 00002 #define _SLIDER_HORIZONTAL_H_ 00003 00004 #include <nds.h> 00005 #include "gadget.h" 00006 #include "gadgeteventhandler.h" 00007 #include "sliderbase.h" 00008 00009 namespace WoopsiUI { 00010 00011 class SliderHorizontalGrip; 00012 00018 class SliderHorizontal : public SliderBase, public Gadget, public GadgetEventHandler { 00019 00020 public: 00021 00029 SliderHorizontal(s16 x, s16 y, u16 width, u16 height); 00030 00035 inline const s16 getMinimumValue() const { return _minimumValue; }; 00036 00041 inline const s16 getMaximumValue() const { return _maximumValue; }; 00042 00047 const s32 getValue() const; 00048 00056 inline const s16 getPageSize() const { return _pageSize; }; 00057 00062 inline void setMinimumValue(const s16 value) { 00063 _minimumValue = value; 00064 resizeGrip(); 00065 }; 00066 00071 inline void setMaximumValue(const s16 value) { 00072 _maximumValue = value; 00073 resizeGrip(); 00074 }; 00075 00081 void setValue(const s32 value); 00082 00088 inline void setPageSize(const s16 pageSize) { 00089 _pageSize = pageSize; 00090 resizeGrip(); 00091 }; 00092 00097 virtual void handleDragEvent(const GadgetEventArgs& e); 00098 00105 s16 getMinimumStep() const; 00106 00107 protected: 00108 SliderHorizontalGrip* _grip; 00109 s16 _minimumValue; 00110 s16 _maximumValue; 00111 s32 _value; 00112 s16 _minimumGripWidth; 00113 s16 _pageSize; 00121 virtual void drawContents(GraphicsPort* port); 00122 00129 virtual void drawBorder(GraphicsPort* port); 00130 00136 virtual void onResize(u16 width, u16 height); 00137 00143 virtual void onClick(s16 x, s16 y); 00144 00148 virtual inline ~SliderHorizontal() { }; 00149 00153 inline SliderHorizontal(const SliderHorizontal& sliderHorizontal) : Gadget(sliderHorizontal) { }; 00154 00158 void resizeGrip(); 00159 }; 00160 } 00161 00162 #endif