Blame examples/gtk-clutter-multistage.c

Packit Service 6a0f92
#include <gtk/gtk.h>
Packit Service 6a0f92
#include <clutter/clutter.h>
Packit Service 6a0f92
Packit Service 6a0f92
#include <clutter-gtk/clutter-gtk.h>
Packit Service 6a0f92
Packit Service 6a0f92
int
Packit Service 6a0f92
main (int argc, char *argv[])
Packit Service 6a0f92
{
Packit Service 6a0f92
  ClutterActor *stage0, *stage1, *stage2, *tex1, *tex2;
Packit Service 6a0f92
  GtkWidget *window, *clutter0, *clutter1, *clutter2;
Packit Service 6a0f92
  GtkWidget *notebook, *vbox;
Packit Service 6a0f92
  ClutterColor col0 = { 0xdd, 0xff, 0xdd, 0xff };
Packit Service 6a0f92
  ClutterColor col1 = { 0xff, 0xff, 0xff, 0xff };
Packit Service 6a0f92
  ClutterColor col2 = {    0,    0,    0, 0xff };
Packit Service 6a0f92
Packit Service 6a0f92
  if (gtk_clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
Packit Service 6a0f92
    g_error ("Unable to initialize GtkClutter");
Packit Service 6a0f92
Packit Service 6a0f92
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
Packit Service 6a0f92
  gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
Packit Service 6a0f92
  gtk_window_set_title (GTK_WINDOW (window), "Multiple GtkClutterEmbed");
Packit Service 6a0f92
  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
Packit Service 6a0f92
Packit Service 6a0f92
  notebook = gtk_notebook_new ();
Packit Service 6a0f92
  gtk_container_add (GTK_CONTAINER (window), notebook);
Packit Service 6a0f92
Packit Service 6a0f92
  clutter0 = gtk_clutter_embed_new ();
Packit Service 6a0f92
  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), clutter0,
Packit Service 6a0f92
                            gtk_label_new ("One stage"));
Packit Service 6a0f92
  stage0 = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (clutter0));
Packit Service 6a0f92
  clutter_actor_set_background_color (stage0, &col0;;
Packit Service 6a0f92
Packit Service 6a0f92
  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
Packit Service 6a0f92
  gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox,
Packit Service 6a0f92
                            gtk_label_new ("Two stages"));
Packit Service 6a0f92
Packit Service 6a0f92
  clutter1 = gtk_clutter_embed_new ();
Packit Service 6a0f92
  gtk_widget_set_size_request (clutter1, 320, 240);
Packit Service 6a0f92
  stage1 = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (clutter1));
Packit Service 6a0f92
  clutter_actor_set_background_color (stage1, &col1;;
Packit Service 6a0f92
  tex1 = gtk_clutter_texture_new ();
Packit Service 6a0f92
  gtk_clutter_texture_set_from_icon_name (GTK_CLUTTER_TEXTURE (tex1),
Packit Service 6a0f92
                                          clutter1,
Packit Service 6a0f92
                                          "dialog-information",
Packit Service 6a0f92
                                          GTK_ICON_SIZE_DIALOG,
Packit Service 6a0f92
                                          NULL);
Packit Service 6a0f92
  clutter_actor_set_position (tex1,
Packit Service 6a0f92
                              160 - clutter_actor_get_width (tex1) / 2.0,
Packit Service 6a0f92
                              120 - clutter_actor_get_height (tex1) / 2.0);
Packit Service 6a0f92
  clutter_actor_add_child (stage1, tex1); 
Packit Service 6a0f92
  clutter_actor_show (tex1);
Packit Service 6a0f92
Packit Service 6a0f92
  gtk_container_add (GTK_CONTAINER (vbox), clutter1);
Packit Service 6a0f92
Packit Service 6a0f92
  clutter2 = gtk_clutter_embed_new ();
Packit Service 6a0f92
  gtk_widget_set_size_request (clutter2, 320, 120);
Packit Service 6a0f92
  stage2 = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (clutter2));
Packit Service 6a0f92
  clutter_actor_set_background_color (stage2, &col2;;
Packit Service 6a0f92
  tex2 = gtk_clutter_texture_new ();
Packit Service 6a0f92
  gtk_clutter_texture_set_from_icon_name (GTK_CLUTTER_TEXTURE (tex2),
Packit Service 6a0f92
                                          clutter1,
Packit Service 6a0f92
                                          "user-info",
Packit Service 6a0f92
                                          GTK_ICON_SIZE_BUTTON,
Packit Service 6a0f92
                                          NULL);
Packit Service 6a0f92
  clutter_actor_add_constraint (tex2, clutter_align_constraint_new (stage2, CLUTTER_ALIGN_BOTH, .5));
Packit Service 6a0f92
  clutter_actor_add_child (stage2, tex2);
Packit Service 6a0f92
Packit Service 6a0f92
  gtk_container_add (GTK_CONTAINER (vbox), clutter2);
Packit Service 6a0f92
Packit Service 6a0f92
  gtk_widget_show_all (window);
Packit Service 6a0f92
Packit Service 6a0f92
  gtk_main();
Packit Service 6a0f92
Packit Service 6a0f92
  return 0;
Packit Service 6a0f92
}