summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-13 23:07:15 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-13 23:08:27 +0200
commit37e22df7fb942dbe6dbcc39ed161ee9336e8f0d9 (patch)
tree89bd791aeae49fbb91acdfeca0e3e057cbe9f889 /app/src
parent7fed739bece80b26e4f7bb75fab91f90ef3a44ea (diff)
downloadturns-37e22df7fb942dbe6dbcc39ed161ee9336e8f0d9.tar.xz
turns-37e22df7fb942dbe6dbcc39ed161ee9336e8f0d9.zip
app: switch to Adw.Application
Diffstat (limited to 'app/src')
-rw-r--r--app/src/application.cpp32
-rw-r--r--app/src/widgets/participant_list_row.cpp2
2 files changed, 21 insertions, 13 deletions
diff --git a/app/src/application.cpp b/app/src/application.cpp
index a998210..a120f40 100644
--- a/app/src/application.cpp
+++ b/app/src/application.cpp
@@ -4,6 +4,7 @@
#include <glibmm.h>
#include <gtkmm/builder.h>
+#include <gtkmm/init.h>
#include <gtkmm/window.h>
#include <sigc++/functors/functors.h>
@@ -11,18 +12,30 @@
namespace turns::app
{
- auto application::create() -> Glib::RefPtr<application>
+ auto application::create() -> std::shared_ptr<application>
{
- return Glib::make_refptr_for_instance(new application{});
+ Gtk::init_gtkmm_internals();
+ return std::shared_ptr<application>{new application{}};
+ }
+
+ auto application::run(int argc, char * argv[]) -> int
+ {
+ return g_application_run(G_APPLICATION(m_self), argc, argv);
}
application::application()
- : Gtk::Application{"ch.arknet.Turns"}
{
- auto builder = Gtk::Builder::create_from_resource("/turns/windows/main_window.ui");
+ m_self = adw_application_new("ch.arknet.Turns", G_APPLICATION_DEFAULT_FLAGS);
+ m_application = Glib::wrap(GTK_APPLICATION(m_self));
+
+ auto builder = Gtk::Builder::create_from_resource("/ch/arknet/Turns/windows/main_window.ui");
auto main_window = Gtk::Builder::get_widget_derived<windows::main>(builder, "main_window");
m_main_window = ADW_APPLICATION_WINDOW(main_window->gobj());
+
+ m_application->signal_activate().connect(sigc::mem_fun(*this, &application::on_activate));
+ m_application->signal_shutdown().connect(sigc::mem_fun(*this, &application::on_shutdown));
+ m_application->signal_startup().connect(sigc::mem_fun(*this, &application::on_startup));
}
auto application::handle_action_quit() -> void
@@ -32,28 +45,23 @@ namespace turns::app
auto application::on_activate() -> void
{
- Gtk::Application::on_activate();
- gtk_application_add_window(GTK_APPLICATION(gobj()), GTK_WINDOW(m_main_window));
+ gtk_application_add_window(m_application->gobj(), GTK_WINDOW(m_main_window));
gtk_window_present(GTK_WINDOW(m_main_window));
}
auto application::on_shutdown() -> void
{
- Gtk::Application::on_shutdown();
-
gtk_window_close(GTK_WINDOW(m_main_window));
delete Glib::wrap(GTK_WINDOW(m_main_window));
}
auto application::on_startup() -> void
{
- Gtk::Application::on_startup();
-
auto style_manager = adw_style_manager_get_default();
adw_style_manager_set_color_scheme(style_manager, ADW_COLOR_SCHEME_PREFER_LIGHT);
- add_action("quit", sigc::mem_fun(*this, &application::handle_action_quit));
- set_accel_for_action("app.quit", "<ctrl>q");
+ m_application->add_action("quit", sigc::mem_fun(*this, &application::handle_action_quit));
+ m_application->set_accel_for_action("app.quit", "<ctrl>q");
}
} // namespace turns::app \ No newline at end of file
diff --git a/app/src/widgets/participant_list_row.cpp b/app/src/widgets/participant_list_row.cpp
index 772495e..358a947 100644
--- a/app/src/widgets/participant_list_row.cpp
+++ b/app/src/widgets/participant_list_row.cpp
@@ -10,7 +10,7 @@ namespace turns::app::widgets
namespace
{
auto constexpr static TYPE_NAME = "participant_list_row";
- auto constexpr static TEMPLATE = "/turns/widgets/participant_list_row.ui";
+ auto constexpr static TEMPLATE = "/ch/arknet/Turns/widgets/participant_list_row.ui";
} // namespace
participant_list_row::participant_list_row()