summary refs log tree commit diff
path: root/src/mm-application.vala
blob: 193f16b0af41592fc1f0eda6e7f58a4b48e62aae (plain) (blame)
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
namespace MunchMate {
	public class Application : Adw.Application {
		private Window win;

		private static bool print_version = false;

		private const GLib.OptionEntry[] options = {
			{ "version", 'V', OptionFlags.NONE, OptionArg.NONE, ref print_version, "Display version number", null },
			{ null } // terminator
		};

		private const GLib.ActionEntry[] action_entries = {
			{ "quit", on_quit_activate },
		};

		public override int handle_local_options(VariantDict _) {
			if (print_version) {
				print("%s version %s\n", Config.APP_ID, Config.VERSION);
				return 0;
			}
			return -1;
		}

		public override void activate() {
			win = new Window(this);
			win.present();
		}

		public override void startup() {
			base.startup();

			set_accels_for_action("app.quit", { "q" });
		}

		public Application() {
			// why doesnt service binding work in flatpak
			Object(application_id: Config.APP_ID, flags: ApplicationFlags.NON_UNIQUE);

			set_resource_base_path("/im/gzr/munchmate/");

			add_main_option_entries(options);

			add_action_entries(action_entries, this);
		}

		void on_quit_activate() {
			quit();
		}
	}
}