User.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * Copyright 2009-2011, Andrea Anzani. All rights reserved.
  3. * Copyright 2012, Dario Casalinuovo. All rights reserved.
  4. * Copyright 2021, Jaidyn Levesque. All rights reserved.
  5. * Distributed under the terms of the MIT License.
  6. */
  7. #ifndef USER_H
  8. #define USER_H
  9. #include <String.h>
  10. #include <Message.h>
  11. #include <Messenger.h>
  12. #include <ObjectList.h>
  13. #include <Path.h>
  14. #include <libsupport/KeyMap.h>
  15. #include "AppConstants.h"
  16. #include "Notifier.h"
  17. class BBitmap;
  18. class Conversation;
  19. class ProtocolLooper;
  20. class UserPopUp;
  21. typedef KeyMap<BString, Conversation*> ChatMap;
  22. class User : public Notifier {
  23. public:
  24. User(BString id, BMessenger msgn);
  25. void RegisterObserver(Conversation* chat);
  26. void RegisterObserver(Observer* obs) { Notifier::RegisterObserver(obs); }
  27. void UnregisterObserver(Conversation* chat);
  28. void UnregisterObserver(Observer* obs) { Notifier::UnregisterObserver(obs); }
  29. void ShowPopUp(BPoint where);
  30. void DeletePopUp();
  31. void HidePopUp();
  32. BString GetId() const;
  33. BMessenger Messenger() const;
  34. void SetMessenger(BMessenger messenger);
  35. ProtocolLooper* GetProtocolLooper() const;
  36. void SetProtocolLooper(ProtocolLooper* looper);
  37. BBitmap* ProtocolBitmap() const;
  38. BString GetName() const;
  39. BBitmap* AvatarBitmap() const;
  40. UserStatus GetNotifyStatus() const;
  41. BString GetNotifyPersonalStatus() const;
  42. void SetNotifyName(BString name);
  43. void SetNotifyAvatarBitmap(BBitmap* bitmap);
  44. void SetNotifyStatus(UserStatus status);
  45. void SetNotifyPersonalStatus(BString personalStatus);
  46. ChatMap Conversations();
  47. rgb_color fItemColor;
  48. protected:
  49. virtual void _EnsureCachePath();
  50. BBitmap* _GetCachedAvatar();
  51. void _SetCachedAvatar(BBitmap* avatar);
  52. BMessenger fMessenger;
  53. ProtocolLooper* fLooper;
  54. BString fID;
  55. BString fName;
  56. BString fPersonalStatus;
  57. BBitmap* fAvatarBitmap;
  58. BPath fCachePath;
  59. UserStatus fStatus;
  60. UserPopUp* fPopUp;
  61. ChatMap fConversations;
  62. };
  63. #endif // USER_H