ConversationListView.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright 2021, Jaidyn Levesque <jadedctrl@teknik.io>
  3. * All rights reserved. Distributed under the terms of the MIT license.
  4. */
  5. #ifndef _CONVERSATION_LIST_H
  6. #define _CONVERSATION_LIST_H
  7. #include <OutlineListView.h>
  8. class BPopUpMenu;
  9. class Conversation;
  10. class ConversationAccountItem;
  11. class ConversationListView : public BOutlineListView {
  12. public:
  13. ConversationListView(const char* name);
  14. virtual void MessageReceived(BMessage* msg);
  15. virtual void SelectionChanged();
  16. virtual void MouseDown(BPoint where);
  17. // After removing item, select another
  18. void RemoveItemSelecting(BListItem* item);
  19. void AddConversation(Conversation* chat);
  20. void RemoveConversation(Conversation* chat);
  21. void AddAccount(int64 instance);
  22. void RemoveAccount(int64 instance);
  23. void SortConversation(Conversation* chat);
  24. private:
  25. BPopUpMenu* _ConversationPopUp();
  26. void _AddDefaultItems(BPopUpMenu* menu, Conversation* chat);
  27. BPopUpMenu* _BlankPopUp();
  28. ConversationAccountItem*
  29. _EnsureAccountItem(Conversation* chat);
  30. };
  31. #endif // _CONVERSATION_LIST_H