Skip to content

Commit

Permalink
Introduce a gtk4 dependency for libgthree-gtk4
Browse files Browse the repository at this point in the history
Deactivated by default, activate using '-Dgtk4=true'.
  • Loading branch information
t-chaik committed Oct 7, 2019
1 parent 230d385 commit 6dd72db
Show file tree
Hide file tree
Showing 26 changed files with 298 additions and 40 deletions.
6 changes: 6 additions & 0 deletions examples/cairo.c
Expand Up @@ -113,12 +113,18 @@ main (int argc, char *argv[])
GthreePerspectiveCamera *camera;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Cairo textures");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/cubes.c
Expand Up @@ -271,12 +271,18 @@ main (int argc, char *argv[])
GthreePerspectiveCamera *camera;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Cubes");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/effects.c
Expand Up @@ -290,12 +290,18 @@ main (int argc, char *argv[])
{
GtkWidget *window, *box, *hbox, *button, *area, *check;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Effects");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/envmap.c
Expand Up @@ -141,12 +141,18 @@ main (int argc, char *argv[])
GthreeScene *scene;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Environment map");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/gtklogo.c
Expand Up @@ -238,12 +238,18 @@ main (int argc, char *argv[])
GthreePerspectiveCamera *camera;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
gtk_window_set_title (GTK_WINDOW (window), "GTK+ logo");
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/interactive.c
Expand Up @@ -218,12 +218,18 @@ main (int argc, char *argv[])
GthreeScene *scene;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Interactive");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/materials.c
Expand Up @@ -348,12 +348,18 @@ main (int argc, char *argv[])
{
GtkWidget *window, *box, *hbox, *button, *area;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Materials");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
113 changes: 80 additions & 33 deletions examples/meson.build
@@ -1,26 +1,31 @@
examples = [
'cairo'
'cubes'
'effects'
'envmap'
'gtklogo'
'interactive'
'materials'
'model'
'morphtargets'
'multi'
'normals'
'performance'
'points'
'properties'
'rendertarget'
'shader'
'shadow'
'skinning'
'sprites'
'testanimation'
'cairo',
'cubes',
'effects',
'gtklogo',
'materials',
'morphtargets',
'normals',
'points',
'properties',
'rendertarget',
'shader',
'shadow',
'skinning',
'sprites',
'testanimation',
]

examples_gtk3 = examples + [
'envmap',
'interactive',
'model',
'multi',
'performance',
]

examples_gtk4 = examples

example_resources = gnome.compile_resources('gthree-example-resources',
'examples.gresource.xml',
source_dir: [
Expand All @@ -30,19 +35,61 @@ example_resources = gnome.compile_resources('gthree-example-resources',
],
c_name: 'gthree_example')

libexample_sources = ['utils.c', 'prop-editor.c'] + example_resources
libexample_sources = [
'prop-editor.c',
'utils.c',
] + example_resources

if get_option('gtk3')
libexample_gtk3 = static_library(
'libexample-gtk3',
libexample_sources,
c_args: [ '-DUSE_GTK3' ],
dependencies: [
libgthree_gtk3_dep, libm ],
install: false,
)

libexample_gk3_dep = declare_dependency(
link_whole: libexample_gtk3,
dependencies: [
libgthree_gtk3_dep, libm ],
)

foreach example : examples_gtk3
executable(
'@0@-gtk3'.format(example),
'@0@.c'.format(example),
c_args: [ '-DUSE_GTK3' ],
dependencies: [
libexample_gk3_dep ],
install: false)
endforeach
endif

libexample = static_library(
'libexample',
libexample_sources,
dependencies: [libgthree_gtk3_dep, libm],
)
if get_option('gtk4')
libexample_gtk4 = static_library(
'libexample-gtk4',
libexample_sources,
c_args: [ '-DUSE_GTK4' ],
dependencies: [
libgthree_gtk4_dep, libm ],
install: false,
)

example_dep = declare_dependency(
link_whole: libexample,
dependencies: [libgthree_gtk3_dep, libm]
)
libexample_gk4_dep = declare_dependency(
link_whole: libexample_gtk4,
dependencies: [
libgthree_gtk4_dep, libm ],
)

foreach example_name : examples
executable(example_name, ['@0@.c'.format(example_name)], dependencies: example_dep)
endforeach
foreach example : examples_gtk4
executable(
'@0@-gtk4'.format(example),
'@0@.c'.format(example),
c_args: [ '-DUSE_GTK4' ],
dependencies: [
libexample_gk4_dep],
install: false)
endforeach
endif
6 changes: 6 additions & 0 deletions examples/model.c
Expand Up @@ -494,7 +494,11 @@ main (int argc, char *argv[])
{ "resource:///org/gnome/gthree-examples/models/RobotExpressive.glb", "Robot" },
};

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

env_maps = g_ptr_array_new_with_free_func (g_object_unref);
for (i = 0; i < G_N_ELEMENTS (cubes); i++)
Expand All @@ -513,7 +517,9 @@ main (int argc, char *argv[])
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Models");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/morphtargets.c
Expand Up @@ -100,12 +100,18 @@ main (int argc, char *argv[])
GthreePerspectiveCamera *camera;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Morph targets");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/multi.c
Expand Up @@ -179,12 +179,18 @@ main (int argc, char *argv[])
graphene_point3d_t pos;
graphene_euler_t euler;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Multi views");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/normals.c
Expand Up @@ -158,12 +158,18 @@ main (int argc, char *argv[])
GthreePerspectiveCamera *camera;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
gtk_window_set_title (GTK_WINDOW (window), "Normals");
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/performance.c
Expand Up @@ -117,12 +117,18 @@ main (int argc, char *argv[])
GthreeScene *scene;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Performance");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
6 changes: 6 additions & 0 deletions examples/points.c
Expand Up @@ -162,12 +162,18 @@ main (int argc, char *argv[])
GthreePerspectiveCamera *camera;
graphene_point3d_t pos;

#ifdef USE_GTK4
gtk_init ();
#else
gtk_init (&argc, &argv);
#endif

window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Points");
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
#ifdef USE_GTK3
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
#endif
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
Expand Down
5 changes: 4 additions & 1 deletion examples/prop-editor.c
Expand Up @@ -459,12 +459,15 @@ property_editor_widget_new (GObject *object, const char *name)
gtk_container_add (GTK_CONTAINER (hbox), label);

editor = property_editor (object, prop);
gtk_box_pack_end (GTK_BOX (hbox), editor, FALSE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (hbox), editor);

gtk_container_add (GTK_CONTAINER (vbox), hbox);

}

#ifdef USE_GTK3
gtk_widget_show_all (vbox);
#endif

return vbox;
}

0 comments on commit 6dd72db

Please sign in to comment.