summaryrefslogtreecommitdiff
path: root/windows
diff options
context:
space:
mode:
Diffstat (limited to 'windows')
-rw-r--r--windows/mainwindow.cpp31
-rw-r--r--windows/mainwindow.hpp22
2 files changed, 53 insertions, 0 deletions
diff --git a/windows/mainwindow.cpp b/windows/mainwindow.cpp
new file mode 100644
index 0000000..d085362
--- /dev/null
+++ b/windows/mainwindow.cpp
@@ -0,0 +1,31 @@
+#include "mainwindow.hpp"
+#include "../abaddon.hpp"
+
+MainWindow::MainWindow()
+ : m_main_box(Gtk::ORIENTATION_VERTICAL) {
+ set_default_size(800, 600);
+
+ 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_sub.append(m_menu_discord_connect);
+ m_menu_discord.set_submenu(m_menu_discord_sub);
+ m_menu_bar.append(m_menu_discord);
+
+ m_menu_discord_connect.signal_activate().connect([&] {
+ m_abaddon->ActionConnect(); // this feels maybe not too smart
+ });
+
+ m_main_box.add(m_menu_bar);
+
+ auto *channel_list = m_channel_list.GetRoot();
+ m_main_box.add(*channel_list);
+
+ add(m_main_box);
+
+ show_all_children();
+}
+
+void MainWindow::SetAbaddon(Abaddon* ptr) {
+ m_abaddon = ptr;
+}
diff --git a/windows/mainwindow.hpp b/windows/mainwindow.hpp
new file mode 100644
index 0000000..6e7ab16
--- /dev/null
+++ b/windows/mainwindow.hpp
@@ -0,0 +1,22 @@
+#pragma once
+#include "../components/channels.hpp"
+#include <gtkmm.h>
+
+class Abaddon;
+class MainWindow : public Gtk::Window {
+public:
+ MainWindow();
+ void SetAbaddon(Abaddon *ptr);
+
+protected:
+ Gtk::Box m_main_box;
+
+ ChannelList m_channel_list;
+
+ Gtk::MenuBar m_menu_bar;
+ Gtk::MenuItem m_menu_discord;
+ Gtk::Menu m_menu_discord_sub;
+ Gtk::MenuItem m_menu_discord_connect;
+
+ Abaddon *m_abaddon = nullptr;
+};