summaryrefslogtreecommitdiff
path: root/src/interface/AvatarButton.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2013-03-12 21:17:19 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2013-03-12 21:17:19 (GMT)
commit86b7a118004c9f9797d4d898dd587000e5178cea (patch)
treed2484bc8120fd6f3ee108cd51e026f1d5ebe860f /src/interface/AvatarButton.cpp
parente6bca489c9aae88f1c7bbb44c4e2df71f481cbd3 (diff)
downloadpowder-86b7a118004c9f9797d4d898dd587000e5178cea.zip
powder-86b7a118004c9f9797d4d898dd587000e5178cea.tar.gz
Make thumbnailbroker more general purpose, image requests for requestbroker, avatars in previewview
Diffstat (limited to 'src/interface/AvatarButton.cpp')
-rw-r--r--src/interface/AvatarButton.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/interface/AvatarButton.cpp b/src/interface/AvatarButton.cpp
index 0343aed..0a55ffa 100644
--- a/src/interface/AvatarButton.cpp
+++ b/src/interface/AvatarButton.cpp
@@ -5,6 +5,7 @@
#include "Format.h"
#include "Engine.h"
#include "client/Client.h"
+#include "client/RequestBroker.h"
#include "graphics/Graphics.h"
#include "ContextMenu.h"
#include "Keys.h"
@@ -23,6 +24,7 @@ AvatarButton::AvatarButton(Point position, Point size, std::string username):
AvatarButton::~AvatarButton()
{
+ RequestBroker::Ref().DetachRequestListener(this);
if(avatar)
delete avatar;
if(actionCallback)
@@ -34,13 +36,18 @@ void AvatarButton::Tick(float dt)
if(!avatar && !tried && name.size() > 0)
{
tried = true;
- avatar = Client::Ref().GetAvatar(name);
- if(avatar) {
- if(avatar->Width != Size.X && avatar->Height != Size.Y)
- {
- avatar->Resize(Size.X, Size.Y, true);
- }
- }
+ RequestBroker::Ref().RetrieveAvatar(name, Size.X, Size.Y, this);
+ }
+}
+
+void AvatarButton::OnResponseReady(void * imagePtr)
+{
+ VideoBuffer * image = (VideoBuffer*)imagePtr;
+ if(image)
+ {
+ if(avatar)
+ delete avatar;
+ avatar = image;
}
}