musicus_mobile/desktop/linux/my_application.cc

49 lines
1.5 KiB
C++
Raw Permalink Normal View History

2020-07-18 11:58:03 +02:00
#include "my_application.h"
#include <flutter_linux/flutter_linux.h>
#include <glib-object.h>
2020-07-18 11:58:03 +02:00
#include "flutter/generated_plugin_registrant.h"
struct _MyApplication {
GtkApplication parent_instance;
};
G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
// Implements GApplication::activate.
static void my_application_activate(GApplication* application) {
GtkWindow* window =
GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
gtk_window_set_title(window, "Musicus");
gtk_window_set_default_size(window, 640, 453);
gtk_widget_show(GTK_WIDGET(window));
g_autoptr(FlDartProject) project = fl_dart_project_new();
FlView* view = fl_view_new(project);
gtk_widget_show(GTK_WIDGET(view));
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
fl_register_plugins(FL_PLUGIN_REGISTRY(view));
gtk_widget_grab_focus(GTK_WIDGET(view));
}
static void my_application_startup(GApplication* application) {
G_APPLICATION_CLASS(my_application_parent_class)->startup(application);
g_object_set(gtk_settings_get_default(),
"gtk-application-prefer-dark-theme", TRUE, NULL);
}
2020-07-18 11:58:03 +02:00
static void my_application_class_init(MyApplicationClass* klass) {
G_APPLICATION_CLASS(klass)->startup = my_application_startup;
2020-07-18 11:58:03 +02:00
G_APPLICATION_CLASS(klass)->activate = my_application_activate;
}
static void my_application_init(MyApplication* self) {}
MyApplication* my_application_new() {
return MY_APPLICATION(g_object_new(my_application_get_type(), nullptr));
}