Split 'Contact' class into two

This dichotomy is useful and necessary in multi-user chats, so I split
Contact into a parent class, User. User should be used for generic
members of rooms, Contact used mainly with the roster.
This commit is contained in:
Jaidyn Ann 2021-05-23 15:10:14 -05:00
parent fc16b9b090
commit 7822ec0449
10 changed files with 316 additions and 254 deletions

View File

@ -9,35 +9,18 @@
*/ */
#include "Contact.h" #include "Contact.h"
#include <libinterface/BitmapUtils.h>
#include "CayaUtils.h"
#include "CayaPreferences.h" #include "CayaPreferences.h"
#include "CayaProtocolAddOn.h"
#include "CayaResources.h"
#include "ChatWindow.h" #include "ChatWindow.h"
#include "ContactPopUp.h"
#include "NotifyMessage.h"
#include "ProtocolLooper.h"
#include "ProtocolManager.h"
#include "RosterItem.h" #include "RosterItem.h"
#include "WindowsManager.h" #include "WindowsManager.h"
#include <stdio.h>
Contact::Contact(BString id, BMessenger msgn) Contact::Contact(BString id, BMessenger msgn)
: :
User::User(id, msgn),
fChatWindow(NULL), fChatWindow(NULL),
fID(id),
fName(id),
fMessenger(msgn),
fLooper(NULL),
fStatus(CAYA_OFFLINE),
fPopUp(NULL),
fNewWindow(true) fNewWindow(true)
{ {
// Create the roster item and register it as observer
fRosterItem = new RosterItem(id.String(), this); fRosterItem = new RosterItem(id.String(), this);
RegisterObserver(fRosterItem); RegisterObserver(fRosterItem);
} }
@ -47,7 +30,7 @@ ChatWindow*
Contact::GetChatWindow() Contact::GetChatWindow()
{ {
if (fChatWindow == NULL) if (fChatWindow == NULL)
CreateChatWindow(); _CreateChatWindow();
return fChatWindow; return fChatWindow;
} }
@ -70,7 +53,7 @@ void
Contact::ShowWindow(bool typing, bool userAction) Contact::ShowWindow(bool typing, bool userAction)
{ {
if (fChatWindow == NULL) if (fChatWindow == NULL)
CreateChatWindow(); _CreateChatWindow();
fChatWindow->AvoidFocus(true); fChatWindow->AvoidFocus(true);
@ -103,41 +86,6 @@ Contact::HideWindow()
} }
void
Contact::ShowPopUp(BPoint where)
{
if (fPopUp == NULL) {
fPopUp = new ContactPopUp(this);
RegisterObserver(fPopUp);
}
fPopUp->Show();
fPopUp->MoveTo(where);
}
void
Contact::HidePopUp()
{
if ((fPopUp != NULL) && !fPopUp->IsHidden())
fPopUp->Hide();
}
void
Contact::DeletePopUp()
{
if (fPopUp == NULL)
return;
if (fPopUp->Lock()) {
UnregisterObserver(fPopUp);
fPopUp->Quit();
fPopUp = NULL;
}
}
RosterItem* RosterItem*
Contact::GetRosterItem() const Contact::GetRosterItem() const
{ {
@ -145,133 +93,17 @@ Contact::GetRosterItem() const
} }
BString
Contact::GetId() const
{
return fID;
}
BMessenger
Contact::Messenger() const
{
return fMessenger;
}
void
Contact::SetMessenger(BMessenger messenger)
{
fMessenger = messenger;
}
ProtocolLooper*
Contact::GetProtocolLooper() const
{
return fLooper;
}
BString
Contact::GetName() const
{
return fName;
}
BBitmap*
Contact::AvatarBitmap() const
{
return fAvatarBitmap;
}
BBitmap*
Contact::ProtocolBitmap() const
{
CayaProtocol* protocol = fLooper->Protocol();
CayaProtocolAddOn* addOn
= ProtocolManager::Get()->ProtocolAddOn(protocol->Signature());
return addOn->ProtoIcon();
}
CayaStatus
Contact::GetNotifyStatus() const
{
return fStatus;
}
BString
Contact::GetNotifyPersonalStatus() const
{
return fPersonalStatus;
}
void
Contact::SetProtocolLooper(ProtocolLooper* looper)
{
if (looper) {
fLooper = looper;
// By default we use the Person icon as avatar icon
BResources* res = CayaResources();
BBitmap* bitmap = IconFromResources(res,
kPersonIcon, B_LARGE_ICON);
SetNotifyAvatarBitmap(bitmap);
}
}
void
Contact::SetNotifyName(BString name)
{
if (fName.Compare(name) != 0) {
fName = name;
NotifyString(STR_CONTACT_NAME, name);
}
}
void void
Contact::SetNotifyAvatarBitmap(BBitmap* bitmap) Contact::SetNotifyAvatarBitmap(BBitmap* bitmap)
{ {
if ((fAvatarBitmap != bitmap) && (bitmap != NULL)) { User::SetNotifyAvatarBitmap(bitmap);
fAvatarBitmap = bitmap; if (fAvatarBitmap != NULL && fChatWindow != NULL)
NotifyPointer(PTR_AVATAR_BITMAP, (void*)bitmap); fChatWindow->UpdateAvatar();
if (fChatWindow != NULL)
fChatWindow->UpdateAvatar();
}
} }
void void
Contact::SetNotifyStatus(CayaStatus status) Contact::_CreateChatWindow()
{
if (fStatus != status) {
fStatus = status;
NotifyInteger(INT_CONTACT_STATUS, (int32)fStatus);
}
}
void
Contact::SetNotifyPersonalStatus(BString personalStatus)
{
if (fPersonalStatus.Compare(personalStatus) != 0) {
fPersonalStatus = personalStatus;
NotifyString(STR_PERSONAL_STATUS, personalStatus);
}
}
void
Contact::CreateChatWindow()
{ {
fChatWindow = new ChatWindow(this); fChatWindow = new ChatWindow(this);
WindowsManager::Get()->RelocateWindow(fChatWindow); WindowsManager::Get()->RelocateWindow(fChatWindow);

View File

@ -10,17 +10,17 @@
#include <Message.h> #include <Message.h>
#include <Messenger.h> #include <Messenger.h>
#include "Notifier.h"
#include "CayaConstants.h" #include "CayaConstants.h"
#include "User.h"
class BBitmap; class BBitmap;
class ChatWindow; class ChatWindow;
class ContactPopUp;
class ProtocolLooper; class ProtocolLooper;
class RosterItem; class RosterItem;
class Contact : public Notifier {
class Contact : public User {
public: public:
Contact(BString id, BMessenger msgn); Contact(BString id, BMessenger msgn);
@ -30,46 +30,15 @@ public:
void ShowWindow(bool typing = false, bool userAction = false); void ShowWindow(bool typing = false, bool userAction = false);
void HideWindow(); void HideWindow();
void ShowPopUp(BPoint where);
void DeletePopUp();
void HidePopUp();
RosterItem* GetRosterItem() const; RosterItem* GetRosterItem() const;
BString GetId() const;
BMessenger Messenger() const;
void SetMessenger(BMessenger messenger);
ProtocolLooper* GetProtocolLooper() const;
void SetProtocolLooper(ProtocolLooper* looper);
BBitmap* ProtocolBitmap() const;
BString GetName() const;
BBitmap* AvatarBitmap() const;
CayaStatus GetNotifyStatus() const;
BString GetNotifyPersonalStatus() const;
void SetNotifyName(BString name);
void SetNotifyAvatarBitmap(BBitmap* bitmap); void SetNotifyAvatarBitmap(BBitmap* bitmap);
void SetNotifyStatus(CayaStatus status);
void SetNotifyPersonalStatus(BString personalStatus);
private: private:
void CreateChatWindow(); void _CreateChatWindow();
RosterItem* fRosterItem; RosterItem* fRosterItem;
ChatWindow* fChatWindow; ChatWindow* fChatWindow;
BMessenger fMessenger;
ProtocolLooper* fLooper;
BString fID;
bigtime_t fInstance;
BString fName;
BString fPersonalStatus;
BBitmap* fAvatarBitmap;
CayaStatus fStatus;
ContactPopUp* fPopUp;
bool fNewWindow; bool fNewWindow;
}; };

View File

@ -49,6 +49,7 @@ SRCS = \
application/ProtocolSettings.cpp \ application/ProtocolSettings.cpp \
application/Server.cpp \ application/Server.cpp \
application/TheApp.cpp \ application/TheApp.cpp \
application/User.cpp \
application/WindowsManager.cpp \ application/WindowsManager.cpp \
application/preferences/AccountDialog.cpp \ application/preferences/AccountDialog.cpp \
application/preferences/AccountListItem.cpp \ application/preferences/AccountListItem.cpp \
@ -59,17 +60,17 @@ SRCS = \
application/preferences/PreferencesBehavior.cpp \ application/preferences/PreferencesBehavior.cpp \
application/preferences/PreferencesReplicant.cpp \ application/preferences/PreferencesReplicant.cpp \
application/preferences/PreferencesChatWindow.cpp \ application/preferences/PreferencesChatWindow.cpp \
application/views/ContactPopUp.cpp \
application/views/SearchBarTextControl.cpp \ application/views/SearchBarTextControl.cpp \
application/views/NicknameTextControl.cpp \ application/views/NicknameTextControl.cpp \
application/views/RosterItem.cpp \ application/views/RosterItem.cpp \
application/views/RosterListView.cpp \ application/views/RosterListView.cpp \
application/views/ContactInfoWindow.cpp \
application/views/StatusMenuItem.cpp \ application/views/StatusMenuItem.cpp \
application/views/StatusView.cpp \ application/views/StatusView.cpp \
application/views/CayaRenderView.cpp \ application/views/CayaRenderView.cpp \
application/views/ReplicantStatusView.cpp \ application/views/ReplicantStatusView.cpp \
application/views/ReplicantMenuItem.cpp application/views/ReplicantMenuItem.cpp \
application/views/UserInfoWindow.cpp \
application/views/UserPopUp.cpp
# Specify the resource definition files to use. Full or relative paths can be # Specify the resource definition files to use. Full or relative paths can be

192
application/User.cpp Normal file
View File

@ -0,0 +1,192 @@
/*
* Copyright 2009-2011, Andrea Anzani. All rights reserved.
* Copyright 2012, Dario Casalinuovo. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Andrea Anzani, andrea.anzani@gmail.com
* Dario Casalinuovo
*/
#include "User.h"
#include <libinterface/BitmapUtils.h>
#include "CayaProtocolAddOn.h"
#include "CayaResources.h"
#include "CayaUtils.h"
#include "NotifyMessage.h"
#include "ProtocolLooper.h"
#include "ProtocolManager.h"
#include "UserPopUp.h"
User::User(BString id, BMessenger msgn)
:
fID(id),
fName(id),
fMessenger(msgn),
fLooper(NULL),
fStatus(CAYA_OFFLINE),
fPopUp(NULL)
{
}
void
User::ShowPopUp(BPoint where)
{
if (fPopUp == NULL) {
fPopUp = new UserPopUp(this);
RegisterObserver(fPopUp);
}
fPopUp->Show();
fPopUp->MoveTo(where);
}
void
User::HidePopUp()
{
if ((fPopUp != NULL) && !fPopUp->IsHidden())
fPopUp->Hide();
}
void
User::DeletePopUp()
{
if (fPopUp == NULL)
return;
if (fPopUp->Lock()) {
UnregisterObserver(fPopUp);
fPopUp->Quit();
fPopUp = NULL;
}
}
BString
User::GetId() const
{
return fID;
}
BMessenger
User::Messenger() const
{
return fMessenger;
}
void
User::SetMessenger(BMessenger messenger)
{
fMessenger = messenger;
}
ProtocolLooper*
User::GetProtocolLooper() const
{
return fLooper;
}
BString
User::GetName() const
{
return fName;
}
BBitmap*
User::AvatarBitmap() const
{
return fAvatarBitmap;
}
BBitmap*
User::ProtocolBitmap() const
{
CayaProtocol* protocol = fLooper->Protocol();
CayaProtocolAddOn* addOn
= ProtocolManager::Get()->ProtocolAddOn(protocol->Signature());
return addOn->ProtoIcon();
}
CayaStatus
User::GetNotifyStatus() const
{
return fStatus;
}
BString
User::GetNotifyPersonalStatus() const
{
return fPersonalStatus;
}
void
User::SetProtocolLooper(ProtocolLooper* looper)
{
if (looper) {
fLooper = looper;
// By default we use the Person icon as avatar icon
BResources* res = CayaResources();
BBitmap* bitmap = IconFromResources(res,
kPersonIcon, B_LARGE_ICON);
SetNotifyAvatarBitmap(bitmap);
}
}
void
User::SetNotifyName(BString name)
{
if (fName.Compare(name) != 0) {
fName = name;
NotifyString(STR_CONTACT_NAME, name);
}
}
void
User::SetNotifyAvatarBitmap(BBitmap* bitmap)
{
if ((fAvatarBitmap != bitmap) && (bitmap != NULL)) {
fAvatarBitmap = bitmap;
NotifyPointer(PTR_AVATAR_BITMAP, (void*)bitmap);
}
}
void
User::SetNotifyStatus(CayaStatus status)
{
if (fStatus != status) {
fStatus = status;
NotifyInteger(INT_CONTACT_STATUS, (int32)fStatus);
}
}
void
User::SetNotifyPersonalStatus(BString personalStatus)
{
if (fPersonalStatus.Compare(personalStatus) != 0) {
fPersonalStatus = personalStatus;
NotifyString(STR_PERSONAL_STATUS, personalStatus);
}
}

63
application/User.h Normal file
View File

@ -0,0 +1,63 @@
/*
* Copyright 2009-2011, Andrea Anzani. All rights reserved.
* Copyright 2012, Dario Casalinuovo. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _USER_H_
#define _USER_H_
#include <String.h>
#include <Message.h>
#include <Messenger.h>
#include "Notifier.h"
#include "CayaConstants.h"
class BBitmap;
class ChatWindow;
class UserPopUp;
class ProtocolLooper;
class RosterItem;
class User : public Notifier {
public:
User(BString id, BMessenger msgn);
void ShowPopUp(BPoint where);
void DeletePopUp();
void HidePopUp();
BString GetId() const;
BMessenger Messenger() const;
void SetMessenger(BMessenger messenger);
ProtocolLooper* GetProtocolLooper() const;
void SetProtocolLooper(ProtocolLooper* looper);
BBitmap* ProtocolBitmap() const;
BString GetName() const;
BBitmap* AvatarBitmap() const;
CayaStatus GetNotifyStatus() const;
BString GetNotifyPersonalStatus() const;
void SetNotifyName(BString name);
void SetNotifyAvatarBitmap(BBitmap* bitmap);
void SetNotifyStatus(CayaStatus status);
void SetNotifyPersonalStatus(BString personalStatus);
protected:
BMessenger fMessenger;
ProtocolLooper* fLooper;
BString fID;
bigtime_t fInstance;
BString fName;
BString fPersonalStatus;
BBitmap* fAvatarBitmap;
CayaStatus fStatus;
UserPopUp* fPopUp;
};
#endif // _USER_H_

View File

@ -16,7 +16,7 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include "ContactInfoWindow.h" #include "UserInfoWindow.h"
#include "Contact.h" #include "Contact.h"
#include "RosterItem.h" #include "RosterItem.h"
@ -223,6 +223,6 @@ RosterListView::Sort()
void void
RosterListView::_InfoWindow(Contact* linker) RosterListView::_InfoWindow(Contact* linker)
{ {
ContactInfoWindow* win = new ContactInfoWindow(linker); UserInfoWindow* win = new UserInfoWindow(linker);
win->Show(); win->Show();
} }

View File

@ -6,7 +6,7 @@
* Casalinuovo Dario * Casalinuovo Dario
*/ */
#include "ContactInfoWindow.h" #include "UserInfoWindow.h"
#include <Alert.h> #include <Alert.h>
#include <Application.h> #include <Application.h>
@ -24,34 +24,34 @@
#include "CayaMessages.h" #include "CayaMessages.h"
#include "CayaProtocolMessages.h" #include "CayaProtocolMessages.h"
#include "Contact.h"
#include "CayaConstants.h" #include "CayaConstants.h"
#include "CayaRenderView.h" #include "CayaRenderView.h"
#include "CayaUtils.h" #include "CayaUtils.h"
#include "NotifyMessage.h" #include "NotifyMessage.h"
#include "User.h"
ContactInfoWindow::ContactInfoWindow(Contact* linker) UserInfoWindow::UserInfoWindow(User* user)
: :
BWindow(BRect(200, 200, 500, 400), BWindow(BRect(200, 200, 500, 400),
"Contact Informations", B_FLOATING_WINDOW, "User information", B_FLOATING_WINDOW,
B_NOT_ZOOMABLE | B_NOT_RESIZABLE), B_NOT_ZOOMABLE | B_NOT_RESIZABLE),
fContact(linker) fUser(user)
{ {
fPersonalMessage = new BTextView("personalMessage", B_WILL_DRAW); fPersonalMessage = new BTextView("personalMessage", B_WILL_DRAW);
fPersonalMessage->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, fPersonalMessage->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT,
B_ALIGN_MIDDLE)); B_ALIGN_MIDDLE));
fPersonalMessage->SetText(fContact->GetNotifyPersonalStatus()); fPersonalMessage->SetText(fUser->GetNotifyPersonalStatus());
fPersonalMessage->SetExplicitMaxSize(BSize(200, 200)); fPersonalMessage->SetExplicitMaxSize(BSize(200, 200));
fPersonalMessage->MakeEditable(false); fPersonalMessage->MakeEditable(false);
fPersonalMessage->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fPersonalMessage->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
BString status(fContact->GetName()); BString status(fUser->GetName());
status << CayaStatusToString(fContact->GetNotifyStatus()); status << CayaStatusToString(fUser->GetNotifyStatus());
status << "\n\n ID : "; status << "\n\n ID : ";
status << fContact->GetId(); status << fUser->GetId();
fStatus = new BTextView("status", B_WILL_DRAW); fStatus = new BTextView("status", B_WILL_DRAW);
fStatus->SetText(status); fStatus->SetText(status);
@ -60,12 +60,12 @@ ContactInfoWindow::ContactInfoWindow(Contact* linker)
SetLayout(new BGroupLayout(B_HORIZONTAL)); SetLayout(new BGroupLayout(B_HORIZONTAL));
fAvatar = new BitmapView("ContactIcon"); fAvatar = new BitmapView("UserIcon");
fAvatar->SetExplicitMaxSize(BSize(70, 70)); fAvatar->SetExplicitMaxSize(BSize(70, 70));
fAvatar->SetExplicitMinSize(BSize(50, 50)); fAvatar->SetExplicitMinSize(BSize(50, 50));
fAvatar->SetExplicitPreferredSize(BSize(50, 50)); fAvatar->SetExplicitPreferredSize(BSize(50, 50));
fAvatar->SetExplicitAlignment(BAlignment(B_ALIGN_RIGHT, B_ALIGN_MIDDLE)); fAvatar->SetExplicitAlignment(BAlignment(B_ALIGN_RIGHT, B_ALIGN_MIDDLE));
fAvatar->SetBitmap(fContact->AvatarBitmap()); fAvatar->SetBitmap(fUser->AvatarBitmap());
AddChild(BGroupLayoutBuilder(B_VERTICAL, 10) AddChild(BGroupLayoutBuilder(B_VERTICAL, 10)
.AddGroup(B_HORIZONTAL) .AddGroup(B_HORIZONTAL)
@ -83,7 +83,7 @@ ContactInfoWindow::ContactInfoWindow(Contact* linker)
void void
ContactInfoWindow::MessageReceived(BMessage* message) UserInfoWindow::MessageReceived(BMessage* message)
{ {
switch (message->what) { switch (message->what) {
default: default:

View File

@ -5,8 +5,8 @@
* Authors: * Authors:
* Casalinuovo Dario * Casalinuovo Dario
*/ */
#ifndef _CONTACT_INFO_WINDOW_H #ifndef _USER_INFO_WINDOW_H
#define _CONTACT_INFO_WINDOW_H #define _USER_INFO_WINDOW_H
#include <Window.h> #include <Window.h>
#include <TextView.h> #include <TextView.h>
@ -16,19 +16,22 @@
#include "CayaConstants.h" #include "CayaConstants.h"
class BitmapView; class BitmapView;
class Contact; class User;
class ContactInfoWindow: public BWindow, public Observer {
class UserInfoWindow: public BWindow, public Observer {
public: public:
ContactInfoWindow(Contact* linker); UserInfoWindow(User* user);
virtual void MessageReceived(BMessage* message); virtual void MessageReceived(BMessage* message);
private: private:
BTextView* fStatus; BTextView* fStatus;
Contact* fContact; User* fUser;
BTextView* fPersonalMessage; BTextView* fPersonalMessage;
BitmapView* fAvatar; BitmapView* fAvatar;
}; };
#endif
#endif // _USER_INFO_WINDOW_H

View File

@ -6,7 +6,7 @@
* Pier Luigi Fiorini, pierluigi.fiorini@gmail.com * Pier Luigi Fiorini, pierluigi.fiorini@gmail.com
*/ */
#include "ContactPopUp.h" #include "UserPopUp.h"
#include <GroupLayout.h> #include <GroupLayout.h>
#include <GroupLayoutBuilder.h> #include <GroupLayoutBuilder.h>
@ -15,7 +15,7 @@
#include <libinterface/BitmapView.h> #include <libinterface/BitmapView.h>
#include "Contact.h" #include "User.h"
#include "NotifyMessage.h" #include "NotifyMessage.h"
@ -24,23 +24,23 @@ const window_feel kMenuWindowFeel = window_feel(B_NORMAL_WINDOW_FEEL);
const int32 kNickChanged = 'NICH'; const int32 kNickChanged = 'NICH';
ContactPopUp::ContactPopUp(Contact* contact) UserPopUp::UserPopUp(User* user)
: BWindow(BRect(0, 0, 1, 1), "ContactPopUp", B_BORDERED_WINDOW_LOOK, : BWindow(BRect(0, 0, 1, 1), "UserPopUp", B_BORDERED_WINDOW_LOOK,
kMenuWindowFeel, B_NOT_MOVABLE | B_NOT_CLOSABLE | B_NOT_MINIMIZABLE | kMenuWindowFeel, B_NOT_MOVABLE | B_NOT_CLOSABLE | B_NOT_MINIMIZABLE |
B_NOT_ZOOMABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS |
B_AVOID_FOCUS | B_AUTO_UPDATE_SIZE_LIMITS), B_AVOID_FOCUS | B_AUTO_UPDATE_SIZE_LIMITS),
fCoords(B_ORIGIN) fCoords(B_ORIGIN)
{ {
// Box to change nick name // Box to change nick name
fNickBox = new BTextControl("nickBox", NULL, contact->GetName(), fNickBox = new BTextControl("nickBox", NULL, user->GetName(),
new BMessage(kNickChanged)); new BMessage(kNickChanged));
// Real nick name // Real nick name
fLabel = new BStringView("label", contact->GetId()); fLabel = new BStringView("label", user->GetId());
// Avatar bitmap // Avatar bitmap
fAvatarView = new BitmapView("avatarView"); fAvatarView = new BitmapView("avatarView");
fAvatarView->SetBitmap(contact->AvatarBitmap()); fAvatarView->SetBitmap(user->AvatarBitmap());
// Layout // Layout
SetLayout(new BGroupLayout(B_VERTICAL)); SetLayout(new BGroupLayout(B_VERTICAL));
@ -58,7 +58,7 @@ ContactPopUp::ContactPopUp(Contact* contact)
void void
ContactPopUp::MessageReceived(BMessage* msg) UserPopUp::MessageReceived(BMessage* msg)
{ {
switch (msg->what) { switch (msg->what) {
case kNickChanged: case kNickChanged:
@ -70,7 +70,7 @@ ContactPopUp::MessageReceived(BMessage* msg)
void void
ContactPopUp::MoveTo(BPoint where) UserPopUp::MoveTo(BPoint where)
{ {
if (fCoords != where) { if (fCoords != where) {
if (Lock()) { if (Lock()) {
@ -83,7 +83,7 @@ ContactPopUp::MoveTo(BPoint where)
void void
ContactPopUp::ObserveString(int32 what, BString str) UserPopUp::ObserveString(int32 what, BString str)
{ {
switch (what) { switch (what) {
case STR_CONTACT_NAME: case STR_CONTACT_NAME:
@ -97,7 +97,7 @@ ContactPopUp::ObserveString(int32 what, BString str)
void void
ContactPopUp::ObservePointer(int32 what, void* ptr) UserPopUp::ObservePointer(int32 what, void* ptr)
{ {
switch (what) { switch (what) {
case PTR_AVATAR_BITMAP: case PTR_AVATAR_BITMAP:
@ -111,7 +111,7 @@ ContactPopUp::ObservePointer(int32 what, void* ptr)
void void
ContactPopUp::ObserveInteger(int32 what, int32 val) UserPopUp::ObserveInteger(int32 what, int32 val)
{ {
switch (what) { switch (what) {
case INT_CONTACT_STATUS: case INT_CONTACT_STATUS:

View File

@ -2,8 +2,8 @@
* Copyright 2009, Pier Luigi Fiorini. All rights reserved. * Copyright 2009, Pier Luigi Fiorini. All rights reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
*/ */
#ifndef _CONTACT_POPUP_H #ifndef _USER_POPUP_H
#define _CONTACT_POPUP_H #define _USER_POPUP_H
#include <Window.h> #include <Window.h>
@ -13,11 +13,11 @@ class BTextControl;
class BStringView; class BStringView;
class BitmapView; class BitmapView;
class Contact; class User;
class ContactPopUp : public BWindow, public Observer { class UserPopUp : public BWindow, public Observer {
public: public:
ContactPopUp(Contact* contact); UserPopUp(User* user);
virtual void MessageReceived(BMessage* msg); virtual void MessageReceived(BMessage* msg);
@ -35,4 +35,6 @@ private:
BitmapView* fAvatarView; BitmapView* fAvatarView;
}; };
#endif // _CONTACT_POPUP_H
#endif // _USER_POPUP_H