larra/src/application.cpp

41 lines
1.3 KiB
C++
Raw Normal View History

2024-08-29 16:42:58 +00:00
#include <larra/application.hpp>
#include <larra/main_window.hpp>
2024-08-26 11:22:03 +00:00
namespace larra {
2024-08-29 16:42:58 +00:00
auto Application::on_activate() -> void {
auto win = new MainWindow{*this}; // NOLINT
this->add_window(*win);
win->signal_hide().connect([win] {
delete win; // NOLINT
});
win->set_show_menubar();
win->set_visible(true);
}
auto Application::on_startup() -> void {
this->Gtk::Application::on_startup();
this->add_action("preferences", sigc::mem_fun(*this, &Application::OnClickPreferences));
this->add_action("accounts", sigc::mem_fun(*this, &Application::OnClickManageAccounts));
this->add_action("about", sigc::mem_fun(*this, &Application::OnClickAbout));
auto gmenu = Gio::Menu::create();
auto larraMenu = Gio::Menu::create();
larraMenu->append("Preferences", "app.preferences");
auto accountsMenu = Gio::Menu::create();
accountsMenu->append("Manage accounts", "app.accounts");
auto helpMenu = Gio::Menu::create();
helpMenu->append("About", "app.about");
gmenu->append_submenu("Larra", larraMenu);
gmenu->append_submenu("Accounts", accountsMenu);
gmenu->append_submenu("Help", helpMenu);
this->set_menubar(gmenu);
};
2024-08-26 11:22:03 +00:00
2024-08-29 16:42:58 +00:00
auto Application::create() -> Glib::RefPtr<Application> {
return Glib::make_refptr_for_instance<Application>(new Application{}); // NOLINT
2024-08-26 11:22:03 +00:00
};
} // namespace larra