diff options
author | Jared Adams <jaxad0127@gmail.com> | 2009-05-13 15:06:26 -0600 |
---|---|---|
committer | Jared Adams <jaxad0127@gmail.com> | 2009-05-13 15:07:33 -0600 |
commit | 1f5f9385fe7383dd5b71baac10b209349f3823ce (patch) | |
tree | dc591e2f3864904f66dc7bbf6ec77c41bde868ec /src/gui/partywindow.cpp | |
parent | b5ad7e490f0f429a5abac2acae48ecf25485256f (diff) | |
download | mana-1f5f9385fe7383dd5b71baac10b209349f3823ce.tar.gz mana-1f5f9385fe7383dd5b71baac10b209349f3823ce.tar.bz2 mana-1f5f9385fe7383dd5b71baac10b209349f3823ce.tar.xz mana-1f5f9385fe7383dd5b71baac10b209349f3823ce.zip |
Fix how the PartyWindow lays out Avatars
Also fix the height of Avatars
Diffstat (limited to 'src/gui/partywindow.cpp')
-rw-r--r-- | src/gui/partywindow.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/gui/partywindow.cpp b/src/gui/partywindow.cpp index 996073bd..1260a2c3 100644 --- a/src/gui/partywindow.cpp +++ b/src/gui/partywindow.cpp @@ -92,9 +92,10 @@ PartyMember *PartyWindow::findOrCreateMember(int id) { member = new PartyMember; mMembers[id] = member; - add(member->avatar, 0, (mMembers.size() - 1) * 14); } + buildLayout(); + return member; } @@ -148,6 +149,8 @@ void PartyWindow::removeMember(int id) void PartyWindow::removeMember(const std::string &name) { removeMember(findMember(name)); + + buildLayout(); } void PartyWindow::updateOnlne(int id, bool online) @@ -225,3 +228,19 @@ void PartyWindow::clearMembers() delete_all(mMembers); mMembers.clear(); } + +void PartyWindow::buildLayout() +{ + clearLayout(); + int lastPos = 0; + + PartyList::iterator it; + PartyMember *member; + + for (it = mMembers.begin(); it != mMembers.end(); it++) + { + member = (*it).second; + add(member->avatar, 0, lastPos); + lastPos += member->avatar->getHeight() + 2; + } +} |