00001 #ifndef _WOOPSI_STRING_H_
00002 #define _WOOPSI_STRING_H_
00003
00004 #include <nds.h>
00005
00006 namespace WoopsiUI {
00007
00019 class WoopsiString {
00020 public:
00021
00025 WoopsiString();
00026
00031 WoopsiString(const char* text);
00032
00037 WoopsiString(const char letter);
00038
00043 virtual inline const char* getCharArray() const { return _text; };
00044
00049 virtual void setText(const char* text);
00050
00055 virtual void setText(const char text);
00056
00061 virtual void append(const char* text);
00062
00067 virtual void append(const char text);
00068
00074 virtual void insert(const char* text, const u32 index);
00075
00081 virtual void insert(const char text, const u32 index);
00082
00087 virtual void remove(const u32 startIndex);
00088
00095 virtual void remove(const u32 startIndex, const u32 count);
00096
00101 virtual inline const u32 getLength() const { return _length; };
00102
00107 inline WoopsiString(const WoopsiString& string) {
00108 setText(string.getCharArray());
00109 };
00110
00114 virtual inline ~WoopsiString() {
00115 delete[] _text;
00116 _text = NULL;
00117 };
00118
00124 char& operator[](const u32 index) const {
00125 return _text[index];
00126 };
00127
00133 virtual inline const char getCharAt(u32 index) { return _text[index]; };
00134
00135 protected:
00136 char* _text;
00144 virtual void allocateMemory(u32 chars, bool preserve);
00145
00150 virtual inline bool hasData() const { return (_text != NULL); };
00151
00156 virtual inline u32 getAllocatedSize() { return _allocatedSize; };
00157
00158 private:
00159 u32 _length;
00160 u32 _allocatedSize;
00161 u32 _growAmount;
00163 };
00164 }
00165
00166 #endif