add basic css support

This commit is contained in:
ouwou
2020-09-03 00:47:49 -04:00
parent 9b1bc8f145
commit 76cabbd37f
5 changed files with 30 additions and 0 deletions

View File

@@ -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;

View File

@@ -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
};

1
css/main.css Normal file
View File

@@ -0,0 +1 @@

View File

@@ -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);

View File

@@ -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;
};