diff options
author | Mateusz Kaduk <mateusz.kaduk@gmail.com> | 2005-05-15 09:17:40 +0000 |
---|---|---|
committer | Mateusz Kaduk <mateusz.kaduk@gmail.com> | 2005-05-15 09:17:40 +0000 |
commit | 13deabf8b93a2a6307978d9f49ad8fde5dbefdfd (patch) | |
tree | e21a23d1e6606ca86fb5629cd4048d62e560191c /src/resources | |
parent | 0632377e8b2e63f965b30ac89a9e2dca819735ef (diff) | |
download | mana-13deabf8b93a2a6307978d9f49ad8fde5dbefdfd.tar.gz mana-13deabf8b93a2a6307978d9f49ad8fde5dbefdfd.tar.bz2 mana-13deabf8b93a2a6307978d9f49ad8fde5dbefdfd.tar.xz mana-13deabf8b93a2a6307978d9f49ad8fde5dbefdfd.zip |
Using guichan ListModel
Diffstat (limited to 'src/resources')
-rw-r--r-- | src/resources/buddylist.cpp | 39 | ||||
-rw-r--r-- | src/resources/buddylist.h | 13 |
2 files changed, 26 insertions, 26 deletions
diff --git a/src/resources/buddylist.cpp b/src/resources/buddylist.cpp index 0f64492b..87e6438f 100644 --- a/src/resources/buddylist.cpp +++ b/src/resources/buddylist.cpp @@ -24,7 +24,7 @@ #include <iostream> BuddyList::BuddyList() -{ +{ } BuddyList::~BuddyList() @@ -39,19 +39,22 @@ bool BuddyList::addBuddy(const std::string buddy) if(*buddyit == buddy) return false; } - // Buddy doesnt exist + // Buddy doesnt exist, add it buddylist.push_back(buddy); + return true; } bool BuddyList::removeBuddy(const std::string buddy) { - for(buddyit = buddylist.begin(); buddyit != buddylist.end(); buddyit++) - { - // Buddy exist, remove it - if(*buddyit == buddy) { - buddylist.remove(buddy); - return true; + if(buddylist.size() > 0) { + for(buddyit = buddylist.begin(); buddyit != buddylist.end(); buddyit++) + { + // Buddy exist, remove it + if(*buddyit == buddy) { + buddylist.remove(buddy); + return true; + } } } @@ -59,24 +62,20 @@ bool BuddyList::removeBuddy(const std::string buddy) return false; } -int BuddyList::getBuddyNumber(void) +int BuddyList::getNumberOfElements(void) { - int ret = 0; - for(buddyit = buddylist.begin(); buddyit != buddylist.end(); buddyit++) - ret++; - return ret; + return buddylist.size(); } -std::string BuddyList::getBuddy(int number) +std::string BuddyList::getElementAt(int number) { - int i = 0; - for(buddyit = buddylist.begin(); buddyit != buddylist.end(); buddyit++) + if(number <= buddylist.size()) { - if(i == number) - return *buddyit; - i++; + buddyit = buddylist.begin(); + std::advance(buddyit, number); + return *buddyit; } - + return ""; } diff --git a/src/resources/buddylist.h b/src/resources/buddylist.h index cb798f1e..704ce450 100644 --- a/src/resources/buddylist.h +++ b/src/resources/buddylist.h @@ -23,10 +23,11 @@ #ifndef _TMW_BUDDYLIST_H #define _TMW_BUDDYLIST_H +#include <guichan.hpp> #include <list> #include <string> -class BuddyList { +class BuddyList : public gcn::ListModel { public: /** * Constructor @@ -36,27 +37,27 @@ class BuddyList { /** * Destructor */ - ~BuddyList(); + virtual ~BuddyList(); /** - * Adds 'buddy' to the list + * Adds buddy to the list */ bool addBuddy(const std::string buddy); /** - * Removes 'buddy' from the list + * Removes buddy from the list */ bool removeBuddy(const std::string buddy); /** * Returns the number of buddy on the list */ - int getBuddyNumber(void); + int getNumberOfElements(void); /** * Returns the buddy of the number or null */ - std::string getBuddy(int number); + std::string getElementAt(int number); private: std::list<std::string> buddylist; /**< Buddy list */ |