diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-08-30 02:00:56 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-08-30 02:00:56 -0400 |
commit | c90c777daa1d3bc4029380529033f3c51383bbb7 (patch) | |
tree | 48f3f3cdb88793ab20e4f7e7899b015edae4c1ce /components/chatmessage.hpp | |
parent | facb89012a4ed58397b5e7334a8cb5c3d751b85e (diff) | |
download | abaddon-portaudio-c90c777daa1d3bc4029380529033f3c51383bbb7.tar.gz abaddon-portaudio-c90c777daa1d3bc4029380529033f3c51383bbb7.zip |
add basic menu to chat messages
Diffstat (limited to 'components/chatmessage.hpp')
-rw-r--r-- | components/chatmessage.hpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/components/chatmessage.hpp b/components/chatmessage.hpp index 181ffcd..dc967af 100644 --- a/components/chatmessage.hpp +++ b/components/chatmessage.hpp @@ -7,6 +7,8 @@ enum class ChatDisplayType { Text, }; +class Abaddon; + // contains the username and timestamp, chat items get stuck into its box class ChatMessageContainer : public Gtk::ListBoxRow { public: @@ -25,10 +27,27 @@ protected: class ChatMessageItem { public: + ChatMessageItem(); + void SetAbaddon(Abaddon *ptr); + + Snowflake ChannelID; Snowflake ID; - ChatDisplayType MessageType; + ChatDisplayType MessageType = ChatDisplayType::Unknown; + virtual void ShowMenu(const GdkEvent *event); + void AddMenuItem(Gtk::MenuItem *item); virtual void MarkAsDeleted() = 0; + +protected: + void AttachMenuHandler(Gtk::Widget *widget); + void on_menu_copy_id(); + void on_menu_message_delete(); + + Gtk::Menu m_menu; + Gtk::MenuItem *m_menu_copy_id; + Gtk::MenuItem *m_menu_delete_message; + + Abaddon *m_abaddon = nullptr; }; class ChatMessageTextItem @@ -37,4 +56,9 @@ class ChatMessageTextItem public: ChatMessageTextItem(const MessageData *data); virtual void MarkAsDeleted(); + +protected: + void on_menu_copy_content(); + Gtk::MenuItem *m_menu_copy_content; + Gtk::MenuItem *m_menu_delete_message; }; |