summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
authorMateusz Kaduk <mateusz.kaduk@gmail.com>2005-05-15 09:17:40 +0000
committerMateusz Kaduk <mateusz.kaduk@gmail.com>2005-05-15 09:17:40 +0000
commit13deabf8b93a2a6307978d9f49ad8fde5dbefdfd (patch)
treee21a23d1e6606ca86fb5629cd4048d62e560191c /src/resources
parent0632377e8b2e63f965b30ac89a9e2dca819735ef (diff)
downloadmana-client-13deabf8b93a2a6307978d9f49ad8fde5dbefdfd.tar.gz
mana-client-13deabf8b93a2a6307978d9f49ad8fde5dbefdfd.tar.bz2
mana-client-13deabf8b93a2a6307978d9f49ad8fde5dbefdfd.tar.xz
mana-client-13deabf8b93a2a6307978d9f49ad8fde5dbefdfd.zip
Using guichan ListModel
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/buddylist.cpp39
-rw-r--r--src/resources/buddylist.h13
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 */