diff options
Diffstat (limited to 'abaddon.hpp')
-rw-r--r-- | abaddon.hpp | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/abaddon.hpp b/abaddon.hpp deleted file mode 100644 index 0fb4f1f..0000000 --- a/abaddon.hpp +++ /dev/null @@ -1,138 +0,0 @@ -#include <gtkmm.h> -#include <memory> -#include <mutex> -#include <string> -#include <unordered_set> -#include "discord/discord.hpp" -#include "windows/mainwindow.hpp" -#include "settings.hpp" -#include "imgmanager.hpp" -#include "emojis.hpp" - -#define APP_TITLE "Abaddon" - -class Abaddon { -private: - Abaddon(); - ~Abaddon(); - Abaddon(const Abaddon &) = delete; - Abaddon &operator=(const Abaddon &) = delete; - Abaddon(Abaddon &&) = delete; - Abaddon &operator=(Abaddon &&) = delete; - -public: - static Abaddon &Get(); - - int StartGTK(); - void StartDiscord(); - void StopDiscord(); - - void LoadFromSettings(); - - void ActionConnect(); - void ActionDisconnect(); - void ActionSetToken(); - void ActionJoinGuildDialog(); - void ActionChannelOpened(Snowflake id); - void ActionChatInputSubmit(std::string msg, Snowflake channel, Snowflake referenced_message); - void ActionChatLoadHistory(Snowflake id); - void ActionChatEditMessage(Snowflake channel_id, Snowflake id); - void ActionInsertMention(Snowflake id); - void ActionLeaveGuild(Snowflake id); - void ActionKickMember(Snowflake user_id, Snowflake guild_id); - void ActionBanMember(Snowflake user_id, Snowflake guild_id); - void ActionSetStatus(); - void ActionReactionAdd(Snowflake id, const Glib::ustring ¶m); - void ActionReactionRemove(Snowflake id, const Glib::ustring ¶m); - void ActionGuildSettings(Snowflake id); - void ActionAddRecipient(Snowflake channel_id); - void ActionViewPins(Snowflake channel_id); - void ActionViewThreads(Snowflake channel_id); - - bool ShowConfirm(const Glib::ustring &prompt, Gtk::Window *window = nullptr); - - void ActionReloadCSS(); - - ImageManager &GetImageManager(); - EmojiResource &GetEmojis(); - - std::string GetDiscordToken() const; - bool IsDiscordActive() const; - - DiscordClient &GetDiscordClient(); - const DiscordClient &GetDiscordClient() const; - void DiscordOnReady(); - void DiscordOnMessageCreate(const Message &message); - void DiscordOnMessageDelete(Snowflake id, Snowflake channel_id); - void DiscordOnMessageUpdate(Snowflake id, Snowflake channel_id); - void DiscordOnGuildMemberListUpdate(Snowflake guild_id); - void DiscordOnThreadMemberListUpdate(const ThreadMemberListUpdateData &data); - void DiscordOnReactionAdd(Snowflake message_id, const Glib::ustring ¶m); - void DiscordOnReactionRemove(Snowflake message_id, const Glib::ustring ¶m); - void DiscordOnGuildJoinRequestCreate(const GuildJoinRequestCreateData &data); - void DiscordOnMessageSent(const Message &data); - void DiscordOnDisconnect(bool is_reconnecting, GatewayCloseCode close_code); - void DiscordOnThreadUpdate(const ThreadUpdateData &data); - - const SettingsManager &GetSettings() const; - - Glib::RefPtr<Gtk::CssProvider> GetStyleProvider(); - - void ShowUserMenu(const GdkEvent *event, Snowflake id, Snowflake guild_id); - - void ManageHeapWindow(Gtk::Window *window); - - static std::string GetCSSPath(); - static std::string GetResPath(); - static std::string GetStateCachePath(); - static std::string GetCSSPath(const std::string &path); - static std::string GetResPath(const std::string &path); - static std::string GetStateCachePath(const std::string &path); - -protected: - void ShowGuildVerificationGateDialog(Snowflake guild_id); - - void SetupUserMenu(); - void SaveState(); - void LoadState(); - - Snowflake m_shown_user_menu_id; - Snowflake m_shown_user_menu_guild_id; - - Gtk::Menu *m_user_menu; - Gtk::MenuItem *m_user_menu_info; - Gtk::MenuItem *m_user_menu_insert_mention; - Gtk::MenuItem *m_user_menu_ban; - Gtk::MenuItem *m_user_menu_kick; - Gtk::MenuItem *m_user_menu_copy_id; - Gtk::MenuItem *m_user_menu_open_dm; - Gtk::MenuItem *m_user_menu_roles; - Gtk::MenuItem *m_user_menu_remove_recipient; - Gtk::Menu *m_user_menu_roles_submenu; - - void on_user_menu_insert_mention(); - void on_user_menu_ban(); - void on_user_menu_kick(); - void on_user_menu_copy_id(); - void on_user_menu_open_dm(); - void on_user_menu_remove_recipient(); - -private: - SettingsManager m_settings; - - DiscordClient m_discord; - std::string m_discord_token; - - std::unordered_set<Snowflake> m_channels_requested; - std::unordered_set<Snowflake> m_channels_history_loaded; - std::unordered_set<Snowflake> m_channels_history_loading; - - ImageManager m_img_mgr; - EmojiResource m_emojis; - - mutable std::mutex m_mutex; - Glib::RefPtr<Gtk::Application> m_gtk_app; - Glib::RefPtr<Gtk::CssProvider> m_css_provider; - Glib::RefPtr<Gtk::CssProvider> m_css_low_provider; // registered with a lower priority to allow better customization - std::unique_ptr<MainWindow> m_main_window; // wah wah cant create a gtkstylecontext fuck you -}; |