diff options
-rw-r--r-- | abaddon.cpp | 11 | ||||
-rw-r--r-- | abaddon.hpp | 3 | ||||
-rw-r--r-- | css/main.css | 1 | ||||
-rw-r--r-- | windows/mainwindow.cpp | 11 | ||||
-rw-r--r-- | windows/mainwindow.hpp | 4 |
5 files changed, 30 insertions, 0 deletions
diff --git a/abaddon.cpp b/abaddon.cpp index 0f2d0bd..51d8157 100644 --- a/abaddon.cpp +++ b/abaddon.cpp @@ -25,6 +25,11 @@ Abaddon::~Abaddon() { int Abaddon::StartGTK() { m_gtk_app = Gtk::Application::create("com.github.lorpus.abaddon"); + // tmp css stuff + m_css_provider = Gtk::CssProvider::create(); + m_css_provider->load_from_path("./css/main.css"); + Gtk::StyleContext::add_provider_for_screen(Gdk::Screen::get_default(), m_css_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + m_main_window = std::make_unique<MainWindow>(); m_main_window->SetAbaddon(this); m_main_window->set_title("Abaddon"); @@ -215,6 +220,12 @@ void Abaddon::ActionChatEditMessage(Snowflake channel_id, Snowflake id) { } } +void Abaddon::ActionReloadCSS() { + Gtk::StyleContext::remove_provider_for_screen(Gdk::Screen::get_default(), m_css_provider); + m_css_provider->load_from_path("./css/main.css"); + Gtk::StyleContext::add_provider_for_screen(Gdk::Screen::get_default(), m_css_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); +} + int main(int argc, char **argv) { Gtk::Main::init_gtkmm_internals(); // why??? Abaddon abaddon; diff --git a/abaddon.hpp b/abaddon.hpp index 5a533b3..8711dea 100644 --- a/abaddon.hpp +++ b/abaddon.hpp @@ -30,6 +30,8 @@ public: void ActionChatDeleteMessage(Snowflake channel_id, Snowflake id); void ActionChatEditMessage(Snowflake channel_id, Snowflake id); + void ActionReloadCSS(); + std::string GetDiscordToken() const; bool IsDiscordActive() const; @@ -51,6 +53,7 @@ private: mutable std::mutex m_mutex; Glib::RefPtr<Gtk::Application> m_gtk_app; + Glib::RefPtr<Gtk::CssProvider> m_css_provider; SettingsManager m_settings; std::unique_ptr<MainWindow> m_main_window; // wah wah cant create a gtkstylecontext fuck you }; diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/css/main.css @@ -0,0 +1 @@ + diff --git a/windows/mainwindow.cpp b/windows/mainwindow.cpp index 6f0bfaa..67e33fb 100644 --- a/windows/mainwindow.cpp +++ b/windows/mainwindow.cpp @@ -19,6 +19,13 @@ MainWindow::MainWindow() 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_file.set_label("File"); + m_menu_file.set_submenu(m_menu_file_sub); + m_menu_file_reload_css.set_label("Reload CSS"); + m_menu_file_sub.append(m_menu_file_reload_css); + + m_menu_bar.append(m_menu_file); m_menu_bar.append(m_menu_discord); m_menu_discord_connect.signal_activate().connect([&] { @@ -33,6 +40,10 @@ MainWindow::MainWindow() m_abaddon->ActionSetToken(); }); + m_menu_file_reload_css.signal_activate().connect([this] { + m_abaddon->ActionReloadCSS(); + }); + m_content_box.set_hexpand(true); m_content_box.set_vexpand(true); diff --git a/windows/mainwindow.hpp b/windows/mainwindow.hpp index 43dd540..b4db516 100644 --- a/windows/mainwindow.hpp +++ b/windows/mainwindow.hpp @@ -37,5 +37,9 @@ protected: Gtk::MenuItem m_menu_discord_disconnect; Gtk::MenuItem m_menu_discord_set_token; + Gtk::MenuItem m_menu_file; + Gtk::Menu m_menu_file_sub; + Gtk::MenuItem m_menu_file_reload_css; + Abaddon *m_abaddon = nullptr; }; |