summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-11 13:17:03 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-11 16:03:04 +0200
commitf597be870eec6d04de6bed0effa7dd23bcb72bf8 (patch)
tree569ceeeef1bbf143b0d3a32ccf9a2fc716ff13e1 /app/src
downloadturns-f597be870eec6d04de6bed0effa7dd23bcb72bf8.tar.xz
turns-f597be870eec6d04de6bed0effa7dd23bcb72bf8.zip
initial commit
Diffstat (limited to 'app/src')
-rw-r--r--app/src/application.cpp49
-rw-r--r--app/src/main.cpp23
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