int main (int argc, char *argv[]) { ClutterScript *script; ClutterActor *stage; clutter_init (&argc, &argv); script = clutter_script_new (); load_script_from_file (script, UI_FILE); clutter_script_connect_signals (script, script); clutter_script_get_objects (script, "stage", &stage, NULL); clutter_actor_show (stage); clutter_main (); g_object_unref (script); return EXIT_SUCCESS; }
gboolean foo_button_pressed_cb (ClutterActor *actor, ClutterEvent *event, gpointer user_data) { ClutterScript *ui = CLUTTER_SCRIPT (user_data); ClutterStage *stage = CLUTTER_STAGE (clutter_script_get_object (ui, "stage")); ClutterScript *script; ClutterActor *rig; ClutterAnimator *animator; /* load the rig and its animator from a JSON file */ script = clutter_script_new (); /* use a function defined statically in this source file to load the JSON */ load_script_from_file (script, ANIMATION_FILE); clutter_script_get_objects (script, "rig", &rig, "animator", &animator, NULL); /* remove the button press handler from the rectangle */ g_signal_handlers_disconnect_matched (actor, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, foo_button_pressed_cb, NULL); /* add a callback to clean up the script when the rig is destroyed */ g_object_set_data_full (G_OBJECT (rig), "script", script, g_object_unref); /* add the rig to the stage */ clutter_container_add_actor (CLUTTER_CONTAINER (stage), rig); /* place the rig at the same coordinates on the stage as the rectangle */ clutter_actor_set_position (rig, clutter_actor_get_x (actor), clutter_actor_get_y (actor)); /* put the rectangle into the top-left corner of the rig */ clutter_actor_reparent (actor, rig); clutter_actor_set_position (actor, 0, 0); /* animate the rig */ clutter_animator_start (animator); return TRUE; }
int main (int argc, char *argv[]) { ClutterActor *stage; g_type_init (); g_thread_init (NULL); if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; clutter_threads_init (); GMainLoop *loop; loop = g_main_loop_new (NULL, FALSE); stage = clutter_stage_new (); clutter_stage_set_title (CLUTTER_STAGE (stage), "message test"); clutter_actor_set_size (stage, 400, 600); clutter_actor_show_all (stage); #if 1 ClutterActor *message; GnomeAppStore *store; store = gnome_app_store_get_default (); gnome_app_store_set_lock_function (store, clutter_threads_enter); gnome_app_store_set_unlock_function (store, clutter_threads_leave); message = CLUTTER_ACTOR (gnome_app_message_new ()); clutter_container_add (CLUTTER_CONTAINER (stage), message, NULL); #else ClutterActor *page, *actor; ClutterScript *script; GError *error; script = clutter_script_new (); error = NULL; clutter_script_load_from_file (script, "/home/dliang/gnome-app-store/ui/message-info-page.json", &error); // clutter_script_load_from_file (script, "/home/dliang/gnome-app-store/ui/test.json", &error); if (error) printf ("error in load %s\n", error->message); clutter_script_get_objects (script, "message-info-page", &page, "sender_label", &actor, NULL); ClutterLayoutManager *layout; layout = clutter_box_get_layout_manager (page); gint col, row; clutter_layout_manager_child_get (layout, page, actor, "column", &col, "row", &row, NULL); printf ("col %d %d\n", col, row); clutter_layout_manager_child_set (layout, page, actor, "column", 2, "row", 1, NULL); clutter_container_add (CLUTTER_CONTAINER (stage), page, NULL); #endif g_main_loop_run (loop); g_main_loop_unref (loop); return EXIT_SUCCESS; }
/* * start the animation when a key is pressed; * see the signals recipe in the Script chapter for more details */ gboolean foo_key_pressed_cb (ClutterActor *actor, ClutterEvent *event, gpointer user_data) { ClutterScript *script = CLUTTER_SCRIPT (user_data); ClutterAnimator *animator; clutter_script_get_objects (script, "animator", &animator, NULL); if (clutter_timeline_is_playing (clutter_animator_get_timeline (animator))) return FALSE; clutter_animator_start (animator); return TRUE; }
int main (int argc, char *argv[]) { gchar *filename = UI_FILE; ClutterScript *script; ClutterActor *stage; GError *error = NULL; if (argc > 1) filename = argv[1]; if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; script = clutter_script_new (); clutter_script_load_from_file (script, filename, &error); if (error != NULL) { g_critical ("Error loading ClutterScript file %s\n%s", filename, error->message); g_error_free (error); exit (EXIT_FAILURE); } /* connect signal handlers as defined in the script */ clutter_script_connect_signals (script, script); clutter_script_get_objects (script, "stage", &stage, NULL); clutter_actor_show (stage); clutter_main (); g_object_unref (script); return EXIT_SUCCESS; }
int main (int argc, char *argv[]) { ClutterActor *stage; ClutterScript *ui; gchar *filename = "script-states.json"; GError *error = NULL; if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; ui = clutter_script_new (); clutter_script_load_from_file (ui, filename, &error); if (error != NULL) { g_critical ("Error loading ClutterScript file %s\n%s", filename, error->message); g_error_free (error); exit (EXIT_FAILURE); } clutter_script_get_objects (ui, "stage", &stage, NULL); /* make the objects in the script available to all signals * by passing the script as the second argument * to clutter_script_connect_signals() */ clutter_script_connect_signals (ui, ui); clutter_actor_show (stage); clutter_main (); g_object_unref (ui); return EXIT_SUCCESS; }
int main(int argc, char *argv[]) { ClutterScript *ui; ClutterActor *stage; GError *err; int return_value; err = NULL; return_value = EXIT_SUCCESS; if (clutter_init(&argc, &argv) != CLUTTER_INIT_SUCCESS) { fprintf(stderr, "Clutter initialization failed\n"); return_value = EXIT_FAILURE; goto done; } ui = clutter_script_new(); clutter_script_load_from_resource(ui, "/org/dutch/Gnit/ui.json", &err); if (err) { g_critical("%s", err->message); g_error_free(err); return_value = EXIT_FAILURE; goto done; } clutter_script_connect_signals(ui, ui); clutter_script_get_objects(ui, "stage", &stage, NULL); clutter_actor_show(stage); clutter_main(); done: g_object_unref(ui); return EXIT_SUCCESS; }
int main (int argc, char *argv[]) { GObject *stage, *blue_button, *red_button; GError *error = NULL; gint res; clutter_init (&argc, &argv); script = clutter_script_new (); g_assert (CLUTTER_IS_SCRIPT (script)); clutter_script_load_from_data (script, test_behaviour, -1, &error); if (error) { g_print ("*** Error:\n" "*** %s\n", error->message); g_error_free (error); g_object_unref (script); return EXIT_FAILURE; } clutter_script_load_from_file (script, "test-script.json", &error); if (error) { g_print ("*** Error:\n" "*** %s\n", error->message); g_error_free (error); g_object_unref (script); return EXIT_FAILURE; } merge_id = clutter_script_load_from_data (script, test_unmerge, -1, &error); if (error) { g_print ("*** Error:\n" "*** %s\n", error->message); g_error_free (error); g_object_unref (script); return EXIT_FAILURE; } clutter_script_connect_signals (script, NULL); res = clutter_script_get_objects (script, "main-stage", &stage, "red-button", &red_button, "blue-button", &blue_button, NULL); g_assert (res == 3); clutter_actor_show (CLUTTER_ACTOR (stage)); g_signal_connect (red_button, "button-press-event", G_CALLBACK (red_button_press), NULL); g_signal_connect (blue_button, "button-press-event", G_CALLBACK (blue_button_press), NULL); clutter_main (); g_object_unref (script); return EXIT_SUCCESS; }
GnibblesBoard * gnibbles_board_new (gint t_w, gint t_h) { ClutterColor stage_color = {0x00,0x00,0x00,0xff}; GnibblesBoard *board = g_new (GnibblesBoard, 1); board->width = t_w; board->height = t_h; board->level = NULL; board->surface =NULL; board->clutter_widget = gtk_clutter_embed_new (); ClutterActor *stage; load_pixmap (); stage = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (board->clutter_widget)); clutter_stage_set_color (CLUTTER_STAGE(stage), &stage_color); clutter_stage_set_user_resizable (CLUTTER_STAGE(stage), FALSE); clutter_actor_set_size (CLUTTER_ACTOR (stage), properties->tilesize * BOARDWIDTH, properties->tilesize * BOARDHEIGHT); clutter_stage_set_user_resizable (CLUTTER_STAGE (stage), FALSE); clutter_actor_show (stage); gchar *filename; const char *dirname; dirname = games_runtime_get_directory (GAMES_RUNTIME_GAME_PIXMAP_DIRECTORY); filename = g_build_filename (dirname, "wall-small-empty.svg", NULL); /* Using ClutterScript to set special texture property such as "repeat-x", * "repeat-y" and "keep-aspect-ratio" */ gchar texture_script[200]; g_sprintf (texture_script, "[" " {" " \"id\" : \"surface\"," " \"type\" : \"ClutterTexture\"," " \"filename\" : \"%s\"," " \"x\" : 0," " \"y\" : 0," " \"width\" : %d," " \"height\" : %d," " \"keep-aspect-ratio\" : true" " \"visible\" : true," " \"repeat-x\" : true," " \"repeat-y\" : true" " }" "]", filename, properties->tilesize, properties->tilesize); ClutterScript *script = clutter_script_new (); clutter_script_load_from_data (script, texture_script, -1, NULL); clutter_script_get_objects (script, "surface", &(board->surface), NULL); clutter_actor_set_size (CLUTTER_ACTOR (board->surface), properties->tilesize * BOARDWIDTH, properties->tilesize * BOARDHEIGHT); clutter_container_add_actor (CLUTTER_CONTAINER (stage), board->surface); clutter_actor_show (board->surface); g_object_unref (script); return board; }