UserListView.h 1023 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright 2021, Jaidyn Levesque <jadedctrl@teknik.io>
  3. * All rights reserved. Distributed under the terms of the MIT license.
  4. */
  5. #ifndef CONVERSATIONLIST_H
  6. #define CONVERSATIONLIST_H
  7. #include <ListView.h>
  8. #include "Role.h"
  9. class BPopUpMenu;
  10. class Conversation;
  11. class User;
  12. enum
  13. {
  14. kUserInfo = 'ULui',
  15. kDeafenUser = 'UMdu',
  16. kUndeafenUser = 'UMud',
  17. kMuteUser = 'UMmu',
  18. kUnmuteUser = 'UMum',
  19. kKickUser = 'UMku',
  20. kBanUser = 'UMbu'
  21. };
  22. class UserListView : public BListView {
  23. public:
  24. UserListView(const char* name);
  25. virtual void MouseDown(BPoint where);
  26. void Sort();
  27. bool HasUser(User* user);
  28. void AddUser(User* user);
  29. void RemoveUser(User* user);
  30. void SetConversation(Conversation* chat) { fChat = chat; }
  31. private:
  32. BPopUpMenu* _UserPopUp();
  33. BPopUpMenu* _BlankPopUp();
  34. void _ModerationAction(int32 im_what);
  35. void _ProcessItem(BMessage* itemMsg, BPopUpMenu* menu,
  36. Role* user, Role* target, BString target_id);
  37. Conversation* fChat;
  38. };
  39. #endif // CONVERSATIONLIST_H