add basic css support
This commit is contained in:
11
abaddon.cpp
11
abaddon.cpp
@@ -25,6 +25,11 @@ Abaddon::~Abaddon() {
|
|||||||
int Abaddon::StartGTK() {
|
int Abaddon::StartGTK() {
|
||||||
m_gtk_app = Gtk::Application::create("com.github.lorpus.abaddon");
|
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 = std::make_unique<MainWindow>();
|
||||||
m_main_window->SetAbaddon(this);
|
m_main_window->SetAbaddon(this);
|
||||||
m_main_window->set_title("Abaddon");
|
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) {
|
int main(int argc, char **argv) {
|
||||||
Gtk::Main::init_gtkmm_internals(); // why???
|
Gtk::Main::init_gtkmm_internals(); // why???
|
||||||
Abaddon abaddon;
|
Abaddon abaddon;
|
||||||
|
@@ -30,6 +30,8 @@ public:
|
|||||||
void ActionChatDeleteMessage(Snowflake channel_id, Snowflake id);
|
void ActionChatDeleteMessage(Snowflake channel_id, Snowflake id);
|
||||||
void ActionChatEditMessage(Snowflake channel_id, Snowflake id);
|
void ActionChatEditMessage(Snowflake channel_id, Snowflake id);
|
||||||
|
|
||||||
|
void ActionReloadCSS();
|
||||||
|
|
||||||
std::string GetDiscordToken() const;
|
std::string GetDiscordToken() const;
|
||||||
bool IsDiscordActive() const;
|
bool IsDiscordActive() const;
|
||||||
|
|
||||||
@@ -51,6 +53,7 @@ private:
|
|||||||
|
|
||||||
mutable std::mutex m_mutex;
|
mutable std::mutex m_mutex;
|
||||||
Glib::RefPtr<Gtk::Application> m_gtk_app;
|
Glib::RefPtr<Gtk::Application> m_gtk_app;
|
||||||
|
Glib::RefPtr<Gtk::CssProvider> m_css_provider;
|
||||||
SettingsManager m_settings;
|
SettingsManager m_settings;
|
||||||
std::unique_ptr<MainWindow> m_main_window; // wah wah cant create a gtkstylecontext fuck you
|
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_disconnect);
|
||||||
m_menu_discord_sub.append(m_menu_discord_set_token);
|
m_menu_discord_sub.append(m_menu_discord_set_token);
|
||||||
m_menu_discord.set_submenu(m_menu_discord_sub);
|
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_bar.append(m_menu_discord);
|
||||||
|
|
||||||
m_menu_discord_connect.signal_activate().connect([&] {
|
m_menu_discord_connect.signal_activate().connect([&] {
|
||||||
@@ -33,6 +40,10 @@ MainWindow::MainWindow()
|
|||||||
m_abaddon->ActionSetToken();
|
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_hexpand(true);
|
||||||
m_content_box.set_vexpand(true);
|
m_content_box.set_vexpand(true);
|
||||||
|
|
||||||
|
@@ -37,5 +37,9 @@ protected:
|
|||||||
Gtk::MenuItem m_menu_discord_disconnect;
|
Gtk::MenuItem m_menu_discord_disconnect;
|
||||||
Gtk::MenuItem m_menu_discord_set_token;
|
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;
|
Abaddon *m_abaddon = nullptr;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user