summaryrefslogtreecommitdiff
path: root/windows/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'windows/mainwindow.cpp')
-rw-r--r--windows/mainwindow.cpp31
1 files changed, 28 insertions, 3 deletions
diff --git a/windows/mainwindow.cpp b/windows/mainwindow.cpp
index d085362..8a8fa32 100644
--- a/windows/mainwindow.cpp
+++ b/windows/mainwindow.cpp
@@ -1,14 +1,21 @@
#include "mainwindow.hpp"
#include "../abaddon.hpp"
-MainWindow::MainWindow()
- : m_main_box(Gtk::ORIENTATION_VERTICAL) {
+MainWindow::MainWindow() {
set_default_size(800, 600);
+ m_main_box.set_orientation(Gtk::ORIENTATION_VERTICAL);
+
m_menu_discord.set_label("Discord");
m_menu_discord.set_submenu(m_menu_discord_sub);
m_menu_discord_connect.set_label("Connect");
+ m_menu_discord_connect.set_sensitive(false);
+ m_menu_discord_disconnect.set_label("Disconnect");
+ m_menu_discord_disconnect.set_sensitive(false);
+ m_menu_discord_set_token.set_label("Set Token");
m_menu_discord_sub.append(m_menu_discord_connect);
+ m_menu_discord_sub.append(m_menu_discord_disconnect);
+ m_menu_discord_sub.append(m_menu_discord_set_token);
m_menu_discord.set_submenu(m_menu_discord_sub);
m_menu_bar.append(m_menu_discord);
@@ -16,6 +23,14 @@ MainWindow::MainWindow()
m_abaddon->ActionConnect(); // this feels maybe not too smart
});
+ m_menu_discord_disconnect.signal_activate().connect([&] {
+ m_abaddon->ActionDisconnect();
+ });
+
+ m_menu_discord_set_token.signal_activate().connect([&] {
+ m_abaddon->ActionSetToken();
+ });
+
m_main_box.add(m_menu_bar);
auto *channel_list = m_channel_list.GetRoot();
@@ -26,6 +41,16 @@ MainWindow::MainWindow()
show_all_children();
}
-void MainWindow::SetAbaddon(Abaddon* ptr) {
+void MainWindow::UpdateMenuStatus() {
+ // Connect
+ std::string token = m_abaddon->GetDiscordToken();
+ bool discord_active = m_abaddon->IsDiscordActive();
+ m_menu_discord_connect.set_sensitive(token.size() > 0 && !discord_active);
+
+ // Disconnect
+ m_menu_discord_disconnect.set_sensitive(discord_active);
+}
+
+void MainWindow::SetAbaddon(Abaddon *ptr) {
m_abaddon = ptr;
}