00001 #ifndef _WOOPSI_KEY_H_ 00002 #define _WOOPSI_KEY_H_ 00003 00004 #include <nds.h> 00005 #include "stickybutton.h" 00006 #include "gadgetstyle.h" 00007 00008 namespace WoopsiUI { 00009 00013 class WoopsiKey : public StickyButton { 00014 public: 00015 00019 enum KeyType { 00020 KEY_NONE = 0, 00021 KEY_ALPHA_NUMERIC_SYMBOL = 1, 00022 KEY_RETURN = 3, 00023 KEY_CONTROL = 4, 00024 KEY_SHIFT = 5, 00025 KEY_CAPS_LOCK = 6, 00026 KEY_BACKSPACE = 7, 00027 KEY_SPACE = 8 00028 }; 00029 00038 enum KeyMode { 00039 KEY_MODE_NORMAL = 0, 00040 KEY_MODE_SHIFT = 1, 00041 KEY_MODE_CONTROL = 2, 00042 KEY_MODE_SHIFT_CONTROL = 3, 00043 KEY_MODE_CAPS_LOCK = 4, 00044 KEY_MODE_CONTROL_CAPS_LOCK = 5 00045 }; 00046 00061 WoopsiKey(s16 x, s16 y, u16 width, u16 height, const WoopsiString& text, const KeyType keyType = KEY_ALPHA_NUMERIC_SYMBOL, GadgetStyle* style = NULL); 00062 00082 WoopsiKey(s16 x, s16 y, u16 width, u16 height, const WoopsiString& normalText, const WoopsiString& shiftText, const WoopsiString& controlText, const WoopsiString& shiftControlText, const WoopsiString& capsLockText, const WoopsiString& controlCapsLockText, const KeyType keyType = KEY_ALPHA_NUMERIC_SYMBOL, GadgetStyle* style = NULL); 00083 00088 inline const KeyType getKeyType() const { return _keyType; }; 00089 00094 inline void setKeyType(KeyType keyType) { _keyType = keyType; }; 00095 00101 void setKeyMode(KeyMode keyMode); 00102 00109 const char getValue() const; 00110 00111 protected: 00112 KeyType _keyType; 00113 WoopsiString _normalText; 00114 WoopsiString _shiftText; 00115 WoopsiString _controlText; 00116 WoopsiString _shiftControlText; 00117 WoopsiString _capsLockText; 00118 WoopsiString _controlCapsLockText; 00119 KeyMode _keyMode; 00124 virtual inline ~WoopsiKey() { }; 00125 00129 inline WoopsiKey(const WoopsiKey& key) : StickyButton(key) { }; 00130 }; 00131 } 00132 00133 #endif