add basic css support
This commit is contained in:
11
abaddon.cpp
11
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;
|
||||
|
@@ -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
1
css/main.css
Normal file
@@ -0,0 +1 @@
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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;
|
||||
};
|
||||
|
Reference in New Issue
Block a user