00001 #ifndef _GADGET_EVENT_HANDLER_LIST_H_
00002 #define _GADGET_EVENT_HANDLER_LIST_H_
00003
00004 #include <nds.h>
00005 #include "gadgeteventhandler.h"
00006 #include "woopsiarray.h"
00007
00008 namespace WoopsiUI {
00009
00010 class Gadget;
00011
00015 class GadgetEventHandlerList {
00016 public:
00017
00022 GadgetEventHandlerList(Gadget* gadget);
00023
00027 ~GadgetEventHandlerList() { };
00028
00033 const bool isEnabled() const;
00034
00040 inline GadgetEventHandler* at(const s32 index) const { return _gadgetEventHandlers.at(index); };
00041
00046 inline const s32 size() const { return _gadgetEventHandlers.size(); };
00047
00053 void addGadgetEventHandler(GadgetEventHandler* eventHandler);
00054
00059 void removeGadgetEventHandler(GadgetEventHandler* eventHandler);
00060
00064 inline void enable() { _isEnabled = true; };
00065
00069 inline void disable() { _isEnabled = false; };
00070
00076 void raiseClickEvent(s16 x, s16 y);
00077
00083 void raiseDoubleClickEvent(s16 x, s16 y);
00084
00090 void raiseShiftClickEvent(s16 x, s16 y);
00091
00097 void raiseReleaseEvent(s16 x, s16 y);
00098
00104 void raiseReleaseOutsideEvent(s16 x, s16 y);
00105
00113 void raiseDragEvent(s16 x, s16 y, s16 vX, s16 vY);
00114
00120 void raiseDropEvent(s16 x, s16 y);
00121
00125 void raiseMoveForwardEvent();
00126
00130 void raiseMoveBackwardEvent();
00131
00136 void raiseKeyPressEvent(KeyCode keyCode);
00137
00142 void raiseKeyRepeatEvent(KeyCode keyCode);
00143
00148 void raiseKeyReleaseEvent(KeyCode keyCode);
00149
00153 void raiseLidCloseEvent();
00154
00158 void raiseLidOpenEvent();
00159
00163 void raiseFocusEvent();
00164
00168 void raiseBlurEvent();
00169
00173 void raiseCloseEvent();
00174
00178 void raiseHideEvent();
00179
00183 void raiseShowEvent();
00184
00188 void raiseShelveEvent();
00189
00193 void raiseUnshelveEvent();
00194
00198 void raiseEnableEvent();
00199
00203 void raiseDisableEvent();
00204
00208 void raiseValueChangeEvent();
00209
00215 void raiseResizeEvent(u16 width, u16 height);
00216
00224 void raiseMoveEvent(s16 x, s16 y, s16 vX, s16 vY);
00225
00230 void raiseContextMenuSelectionEvent(const ListDataItem* contextMenuItem);
00231
00239 void raiseActionEvent();
00240
00246 void raiseScrollEvent(s16 vX, s16 vY);
00247
00248 protected:
00249 WoopsiArray<GadgetEventHandler*> _gadgetEventHandlers;
00250 Gadget* _gadget;
00251 bool _isEnabled;
00252 };
00253 }
00254
00255 #endif