From a51a54bc5979a2491f152abc47ad54e6b63f27c8 Mon Sep 17 00:00:00 2001 From: Dylam De La Torre Date: Tue, 23 Nov 2021 05:21:56 +0100 Subject: Restructure source and resource files (#46) importantly, res is now res/res and css is now res/css --- components/chatmessage.hpp | 125 --------------------------------------------- 1 file changed, 125 deletions(-) delete mode 100644 components/chatmessage.hpp (limited to 'components/chatmessage.hpp') diff --git a/components/chatmessage.hpp b/components/chatmessage.hpp deleted file mode 100644 index 8b69117..0000000 --- a/components/chatmessage.hpp +++ /dev/null @@ -1,125 +0,0 @@ -#pragma once -#include -#include "discord/discord.hpp" - -class ChatMessageItemContainer : public Gtk::Box { -public: - Snowflake ID; - Snowflake ChannelID; - - std::string Nonce; - - ChatMessageItemContainer(); - static ChatMessageItemContainer *FromMessage(const Message &data); - - // attributes = edited, deleted - void UpdateAttributes(); - void UpdateContent(); - void UpdateReactions(); - void SetFailed(); - -protected: - void AddClickHandler(Gtk::Widget *widget, std::string); - Gtk::TextView *CreateTextComponent(const Message &data); // Message.Content - void UpdateTextComponent(Gtk::TextView *tv); - Gtk::Widget *CreateEmbedComponent(const EmbedData &data); // Message.Embeds[0] - Gtk::Widget *CreateImageComponent(const std::string &proxy_url, const std::string &url, int inw, int inh); - Gtk::Widget *CreateAttachmentComponent(const AttachmentData &data); // non-image attachments - Gtk::Widget *CreateStickerComponentDeprecated(const StickerData &data); - Gtk::Widget *CreateStickersComponent(const std::vector &data); - Gtk::Widget *CreateReactionsComponent(const Message &data); - Gtk::Widget *CreateReplyComponent(const Message &data); - - static Glib::ustring GetText(const Glib::RefPtr &buf); - - static bool IsEmbedImageOnly(const EmbedData &data); - - void HandleUserMentions(Glib::RefPtr buf); - void HandleStockEmojis(Gtk::TextView &tv); - void HandleCustomEmojis(Gtk::TextView &tv); - void HandleEmojis(Gtk::TextView &tv); - void CleanupEmojis(Glib::RefPtr buf); - - void HandleChannelMentions(Glib::RefPtr buf); - void HandleChannelMentions(Gtk::TextView *tv); - bool OnClickChannel(GdkEventButton *ev); - - // reused for images and links - Gtk::Menu m_link_menu; - Gtk::MenuItem *m_link_menu_copy; - - void on_link_menu_copy(); - Glib::ustring m_selected_link; - - void HandleLinks(Gtk::TextView &tv); - bool OnLinkClick(GdkEventButton *ev); - std::map, std::string> m_link_tagmap; - std::map, Snowflake> m_channel_tagmap; - - void AttachEventHandlers(Gtk::Widget &widget); - - Gtk::EventBox *_ev; - Gtk::Box m_main; - Gtk::Label *m_attrib_label = nullptr; - - Gtk::TextView *m_text_component = nullptr; - Gtk::Widget *m_embed_component = nullptr; - Gtk::Widget *m_reactions_component = nullptr; - -public: - typedef sigc::signal type_signal_channel_click; - typedef sigc::signal type_signal_action_reaction_add; - typedef sigc::signal type_signal_action_reaction_remove; - - type_signal_channel_click signal_action_channel_click(); - type_signal_action_reaction_add signal_action_reaction_add(); - type_signal_action_reaction_remove signal_action_reaction_remove(); - -private: - type_signal_channel_click m_signal_action_channel_click; - type_signal_action_reaction_add m_signal_action_reaction_add; - type_signal_action_reaction_remove m_signal_action_reaction_remove; -}; - -class ChatMessageHeader : public Gtk::ListBoxRow { -public: - Snowflake UserID; - Snowflake ChannelID; - Snowflake NewestID = 0; - - ChatMessageHeader(const Message &data); - void AddContent(Gtk::Widget *widget, bool prepend); - void UpdateNameColor(); - std::vector GetChildContent(); - -protected: - void AttachUserMenuHandler(Gtk::Widget &widget); - - bool on_author_button_press(GdkEventButton *ev); - - std::vector m_content_widgets; - - Gtk::Box m_main_box; - Gtk::Box m_content_box; - Gtk::EventBox m_content_box_ev; - Gtk::Box m_meta_box; - Gtk::EventBox m_meta_ev; - Gtk::Label m_author; - Gtk::Label m_timestamp; - Gtk::Label *m_extra = nullptr; - Gtk::Image m_avatar; - Gtk::EventBox m_avatar_ev; - - Glib::RefPtr m_static_avatar; - Glib::RefPtr m_anim_avatar; - - typedef sigc::signal type_signal_action_insert_mention; - typedef sigc::signal type_signal_action_open_user_menu; - - type_signal_action_insert_mention m_signal_action_insert_mention; - type_signal_action_open_user_menu m_signal_action_open_user_menu; - -public: - type_signal_action_insert_mention signal_action_insert_mention(); - type_signal_action_open_user_menu signal_action_open_user_menu(); -}; -- cgit v1.2.3