diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2024-07-11 13:17:03 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2024-07-11 16:03:04 +0200 |
| commit | f597be870eec6d04de6bed0effa7dd23bcb72bf8 (patch) | |
| tree | 569ceeeef1bbf143b0d3a32ccf9a2fc716ff13e1 /app/src | |
| download | turns-f597be870eec6d04de6bed0effa7dd23bcb72bf8.tar.xz turns-f597be870eec6d04de6bed0effa7dd23bcb72bf8.zip | |
initial commit
Diffstat (limited to 'app/src')
| -rw-r--r-- | app/src/application.cpp | 49 | ||||
| -rw-r--r-- | app/src/main.cpp | 23 |
2 files changed, 72 insertions, 0 deletions
diff --git a/app/src/application.cpp b/app/src/application.cpp new file mode 100644 index 0000000..014171e --- /dev/null +++ b/app/src/application.cpp @@ -0,0 +1,49 @@ +#include "turns/app/application.hpp" + +#include <glibmm.h> +#include <gtkmm/builder.h> +#include <gtkmm/window.h> + +#include <sigc++/functors/functors.h> + +namespace turns::app +{ + + auto application::create() -> Glib::RefPtr<application> + { + return Glib::make_refptr_for_instance(new application{}); + } + + application::application() + : Gtk::Application{"ch.arknet.Turns"} + { + auto builder = Gtk::Builder::create_from_resource("/turns/windows/main_window.ui"); + auto main_window = builder->get_widget<Gtk::ApplicationWindow>("main_window"); + + m_main_window = ADW_APPLICATION_WINDOW(main_window->gobj()); + + add_action("quit", sigc::mem_fun(*this, &application::handle_action_quit)); + set_accel_for_action("app.quit", "<ctrl>q"); + } + + auto application::handle_action_quit() -> void + { + gtk_window_close(GTK_WINDOW(m_main_window)); + } + + auto application::on_activate() -> void + { + Gtk::Application::on_activate(); + gtk_application_add_window(GTK_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)); + } + +} // namespace turns::app
\ No newline at end of file diff --git a/app/src/main.cpp b/app/src/main.cpp new file mode 100644 index 0000000..b9bf468 --- /dev/null +++ b/app/src/main.cpp @@ -0,0 +1,23 @@ +#include "turns/app/application.hpp" + +#include <adwaita.h> + +class MyWindow : public Gtk::Window +{ +public: + MyWindow(); +}; + +MyWindow::MyWindow() +{ + set_title("Basic application"); + set_default_size(200, 200); +} + +auto main(int argc, char * argv[]) -> int +{ + adw_init(); + + auto app = turns::app::application::create(); + return app->run(argc, argv); +}
\ No newline at end of file |
