#include #include #include #include #include #include "discord/discord.hpp" #include "windows/mainwindow.hpp" #include "settings.hpp" class Abaddon { public: Abaddon(); ~Abaddon(); int StartGTK(); void StartDiscord(); void StopDiscord(); void LoadFromSettings(); void ActionConnect(); void ActionDisconnect(); void ActionSetToken(); void ActionMoveGuildUp(Snowflake id); void ActionMoveGuildDown(Snowflake id); void ActionCopyGuildID(Snowflake id); void ActionListChannelItemClick(Snowflake id); void ActionChatInputSubmit(std::string msg, Snowflake channel); std::string GetDiscordToken() const; bool IsDiscordActive() const; const DiscordClient &GetDiscordClient() const; void DiscordNotifyReady(); void DiscordNotifyChannelListFullRefresh(); void DiscordNotifyMessageCreate(Snowflake id); private: DiscordClient m_discord; std::string m_discord_token; std::unordered_set m_channels_requested; mutable std::mutex m_mutex; Glib::RefPtr m_gtk_app; SettingsManager m_settings; std::unique_ptr m_main_window; // wah wah cant create a gtkstylecontext fuck you };