Skip to content

Commit 5d22779

Browse files
Split FlApplication into its own module. (#758)
This fixes a compile warning about an unused FL_IS_APPLICATION. Fixes #759
1 parent 4e3f948 commit 5d22779

File tree

4 files changed

+62
-44
lines changed

4 files changed

+62
-44
lines changed

testbed/gtk/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
3333
# Application build
3434
add_executable(${BINARY_NAME}
3535
"main.cc"
36+
"fl_application.cc"
3637
"window_configuration.cc"
3738
"${FLUTTER_MANAGED_DIR}/gtk_plugin_registrant.cc"
3839
)

testbed/gtk/fl_application.cc

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#include "fl_application.h"
2+
3+
#include <flutter_linux/flutter_linux.h>
4+
5+
#include "flutter/gtk_plugin_registrant.h"
6+
#include "window_configuration.h"
7+
8+
struct _FlApplication {
9+
GtkApplication parent_instance;
10+
};
11+
12+
G_DEFINE_TYPE(FlApplication, fl_application, GTK_TYPE_APPLICATION)
13+
14+
// Implements GApplication::activate.
15+
static void fl_application_activate(GApplication* application) {
16+
GtkWindow* window =
17+
GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
18+
gtk_widget_show(GTK_WIDGET(window));
19+
gtk_widget_set_size_request(GTK_WIDGET(window), kFlutterWindowWidth,
20+
kFlutterWindowHeight);
21+
gtk_window_set_title(window, kFlutterWindowTitle);
22+
23+
g_autoptr(FlDartProject) project = fl_dart_project_new();
24+
25+
FlView* view = fl_view_new(project);
26+
gtk_widget_show(GTK_WIDGET(view));
27+
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
28+
29+
fl_register_plugins(FL_PLUGIN_REGISTRY(view));
30+
31+
gtk_widget_grab_focus(GTK_WIDGET(view));
32+
}
33+
34+
static void fl_application_class_init(FlApplicationClass* klass) {
35+
G_APPLICATION_CLASS(klass)->activate = fl_application_activate;
36+
}
37+
38+
static void fl_application_init(FlApplication* self) {}
39+
40+
FlApplication* fl_application_new() {
41+
return FL_APPLICATION(g_object_new(fl_application_get_type(), nullptr));
42+
}

testbed/gtk/fl_application.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#ifndef FLUTTER_FL_APPLICATION_H_
2+
#define FLUTTER_FL_APPLICATION_H_
3+
4+
#include <gtk/gtk.h>
5+
6+
G_DECLARE_FINAL_TYPE(FlApplication, fl_application, FL, APPLICATION,
7+
GtkApplication)
8+
9+
/**
10+
* fl_application_new:
11+
*
12+
* Creates a new Flutter application.
13+
*
14+
* Returns: a new #FlApplication.
15+
*/
16+
FlApplication* fl_application_new();
17+
18+
#endif // FLUTTER_FL_APPLICATION_H_

testbed/gtk/main.cc

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,4 @@
1-
#include <flutter_linux/flutter_linux.h>
2-
#include <gtk/gtk.h>
3-
4-
#include "flutter/gtk_plugin_registrant.h"
5-
#include "window_configuration.h"
6-
7-
G_DECLARE_FINAL_TYPE(FlApplication, fl_application, FL, APPLICATION,
8-
GtkApplication)
9-
10-
struct _FlApplication {
11-
GtkApplication parent_instance;
12-
};
13-
14-
G_DEFINE_TYPE(FlApplication, fl_application, GTK_TYPE_APPLICATION)
15-
16-
// Implements GApplication::activate.
17-
static void fl_application_activate(GApplication* application) {
18-
GtkWindow* window =
19-
GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
20-
gtk_widget_show(GTK_WIDGET(window));
21-
gtk_widget_set_size_request(GTK_WIDGET(window), kFlutterWindowWidth,
22-
kFlutterWindowHeight);
23-
gtk_window_set_title(window, kFlutterWindowTitle);
24-
25-
g_autoptr(FlDartProject) project = fl_dart_project_new();
26-
27-
FlView* view = fl_view_new(project);
28-
gtk_widget_show(GTK_WIDGET(view));
29-
gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
30-
31-
fl_register_plugins(FL_PLUGIN_REGISTRY(view));
32-
33-
gtk_widget_grab_focus(GTK_WIDGET(view));
34-
}
35-
36-
static void fl_application_class_init(FlApplicationClass* klass) {
37-
G_APPLICATION_CLASS(klass)->activate = fl_application_activate;
38-
}
39-
40-
static void fl_application_init(FlApplication* self) {}
41-
42-
static FlApplication* fl_application_new() {
43-
return FL_APPLICATION(g_object_new(fl_application_get_type(), nullptr));
44-
}
1+
#include "fl_application.h"
452

463
int main(int argc, char** argv) {
474
g_autoptr(FlApplication) app = fl_application_new();

0 commit comments

Comments
 (0)