blob: 9ab281cf015be237989d3285fda6ba6e3b0477eb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#include "turns/app/application.hpp"
#include "turns/app/windows/main.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 = Gtk::Builder::get_widget_derived<windows::main>(builder, "main_window");
m_main_window = ADW_APPLICATION_WINDOW(main_window->gobj());
}
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));
}
auto application::on_startup() -> void
{
Gtk::Application::on_startup();
add_action("quit", sigc::mem_fun(*this, &application::handle_action_quit));
set_accel_for_action("app.quit", "<ctrl>q");
}
} // namespace turns::app
|