Woopsi 1.0 GUI Framework for Nintendo DS Homebrew

- Main Page
- Classes
- Files

- File List

# listdata.h

    00001 #ifndef _LIST_BASE_H_
    00002 #define _LIST_BASE_H_
    00003
    00004 #include "woopsiarray.h"
    00005 #include "listdataeventhandler.h"
    00006 #include "listdataitem.h"
    00007 #include "woopsistring.h"
    00008
    00009 namespace WoopsiUI {
    00010
    00016         class ListData {
    00017         public:
    00018
    00022                 ListData();
    00023
    00027                 virtual ~ListData();
    00028
    00034                 virtual void addItem(const WoopsiString& text, const u32 value);
    00035
    00041                 virtual void addItem(ListDataItem* item);
    00042
    00043
    00048                 virtual void removeItem(const s32 index);
    00049
    00054                 virtual void selectItem(const s32 index);
    00055
    00060                 virtual void deselectItem(const s32 index);
    00061
    00065                 virtual void removeAllItems();
    00066
    00073                 virtual const s32 getSelectedIndex() const;
    00074
    00080                 virtual void setSelectedIndex(const s32 index);
    00081
    00086                 virtual const ListDataItem* getSelectedItem() const;
    00087
    00092                 virtual inline void setAllowMultipleSelections(const bool allowMultipleSelections) { _allowMultipleSelections = allowMultipleSelections; };
    00093
    00098                 virtual inline const ListDataItem* getItem(const s32 index) const { return _items[index]; };
    00099
    00103                 virtual void sort();
    00104
    00109                 virtual inline const s32 getItemCount() const { return _items.size(); };
    00110
    00115                 virtual void selectAllItems();
    00116
    00120                 virtual void deselectAllItems();
    00121
    00128                 virtual void setItemSelected(const s32 index, const bool selected);
    00129
    00134                 virtual inline const bool allowsMultipleSelections() const { return _allowMultipleSelections; };
    00135
    00141                 virtual inline void setSortInsertedItems(const bool sortInsertedItems) { _sortInsertedItems = sortInsertedItems; };
    00142
    00147                 inline void addListDataEventHandler(ListDataEventHandler* eventHandler) {
    00148                         _listDataEventhandlers.push_back(eventHandler);
    00149                 }
    00150
    00155                 void removeListDataEventHandler(ListDataEventHandler* eventHandler);
    00156
    00157         protected:
    00158                 WoopsiArray<ListDataItem*> _items;
    00159                 WoopsiArray<ListDataEventHandler*> _listDataEventhandlers;
    00160                 bool _allowMultipleSelections;
    00161                 bool _sortInsertedItems;
    00168                 virtual void quickSort(const s32 start, const s32 end);
    00169
    00175                 virtual void swapItems(const s32 index1, const s32 index2);
    00176
    00183                 const s32 getSortedInsertionIndex(const ListDataItem* item) const;
    00184
    00188                 void raiseDataChangedEvent();
    00189
    00193                 void raiseSelectionChangedEvent();
    00194         };
    00195 }
    00196
    00197 #endif