diff options
Diffstat (limited to 'abaddon.cpp')
-rw-r--r-- | abaddon.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/abaddon.cpp b/abaddon.cpp new file mode 100644 index 0000000..6c170e0 --- /dev/null +++ b/abaddon.cpp @@ -0,0 +1,44 @@ +#include <gtkmm.h> +#include "discord/discord.hpp" +#include "windows/mainwindow.hpp" +#include <memory> +#include "abaddon.hpp" + +#ifdef _WIN32 + #pragma comment(lib, "crypt32.lib") +#endif + +int Abaddon::DoMainLoop() { + m_gtk_app = Gtk::Application::create("com.github.lorpus.abaddon"); + + MainWindow main; + main.SetAbaddon(this); + main.set_title("Abaddon"); + main.show(); + + m_gtk_app->signal_shutdown().connect([&]() { + m_discord.Stop(); + }); + + /*sigc::connection draw_signal_handler = main.signal_draw().connect([&](const Cairo::RefPtr<Cairo::Context> &ctx) -> bool { + draw_signal_handler.disconnect(); + + return false; + });*/ + + return m_gtk_app->run(main); +} + +void Abaddon::StartDiscordThread() { + m_discord.Start(); +} + +void Abaddon::ActionConnect() { + if (!m_discord.IsStarted()) + StartDiscordThread(); +} + +int main(int argc, char **argv) { + Abaddon abaddon; + return abaddon.DoMainLoop(); +} |