/* * SPDX-FileCopyrightText: 2025 Felix Morgner * SPDX-License-Identifier: LGPL-2.1-only */ #include "init.hpp" #include "settings.hpp" #include #include #include #include #include #include #include #include #include #include #include #include namespace { auto show_about(Glib::RefPtr app) { auto active_window = app->get_active_window(); auto dialog = Gtk::make_managed("/ch/arknet/Turns/metainfo.xml", ""); dialog->present(active_window); } } // namespace auto main(int argc, char ** argv) -> int { setlocale(LC_ALL, ""); bindtextdomain("turns", LOCALEDIR); bind_textdomain_codeset("turns", "UTF-8"); textdomain("turns"); auto app = Adwaita::Application::create("ch.arknet.Turns", Gio::Application::Flags::HANDLES_OPEN); Turns::init(); Turns::gui::init(); app->signal_startup().connect([app] { auto style_manager = Adwaita::StyleManager::get_default(); style_manager->set_color_scheme(Adwaita::ColorScheme::PreferLight); app->add_action("quit", sigc::mem_fun(*app, &Adwaita::Application::quit)); app->add_action("about", sigc::bind(&show_about, app)); app->set_accel_for_action("app.quit", "q"); app->set_accel_for_action("win.clear", "x"); app->set_accel_for_action("win.next", "space"); app->set_accel_for_action("win.previous", "BackSpace"); app->set_accel_for_action("win.add_participant", "a"); app->set_accel_for_action("win.open", "o"); app->set_accel_for_action("win.preferences", "comma"); app->set_accel_for_action("win.save", "s"); app->set_accel_for_action("win.save-as", "s"); }); auto settings = Turns::gui::get_settings(); // app->signal_activate().connect([app, settings] { // auto window = new turns::ui::Tracker{app, settings}; // window->present(); // }); return app->run(argc, argv); } // auto main(int argc, char * argv[]) -> int // { // app->signal_open().connect([app, settings](auto files, auto) { // auto windows = app->get_windows(); // auto window = static_cast(nullptr); // if (windows.empty()) // { // window = new turns::ui::Tracker{app, settings}; // } // else // { // window = dynamic_cast(windows[0]); // } // window->present(); // window->load(files[0]); // }); // app->signal_window_removed().connect([](auto window) { // auto tracker = dynamic_cast(window); // if (tracker) // { // delete tracker; // } // }); // return app->run(argc, argv); // }