my_application.cc 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "my_application.h"
  2. #include <flutter_linux/flutter_linux.h>
  3. #include "flutter/generated_plugin_registrant.h"
  4. struct _MyApplication {
  5. GtkApplication parent_instance;
  6. };
  7. G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
  8. // Implements GApplication::activate.
  9. static void my_application_activate(GApplication* application) {
  10. GtkWindow* window =
  11. GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
  12. GtkHeaderBar *header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
  13. gtk_widget_show(GTK_WIDGET(header_bar));
  14. gtk_header_bar_set_title(header_bar, "example");
  15. gtk_header_bar_set_show_close_button(header_bar, TRUE);
  16. gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
  17. gtk_window_set_default_size(window, 1280, 720);
  18. gtk_widget_show(GTK_WIDGET(window));
  19. g_autoptr(FlDartProject) project = fl_dart_project_new();
  20. FlView* view = fl_view_new(project);
  21. gtk_widget_show(GTK_WIDGET(view));
  22. gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
  23. fl_register_plugins(FL_PLUGIN_REGISTRY(view));
  24. gtk_widget_grab_focus(GTK_WIDGET(view));
  25. }
  26. static void my_application_class_init(MyApplicationClass* klass) {
  27. G_APPLICATION_CLASS(klass)->activate = my_application_activate;
  28. }
  29. static void my_application_init(MyApplication* self) {}
  30. MyApplication* my_application_new() {
  31. return MY_APPLICATION(g_object_new(my_application_get_type(), nullptr));
  32. }