Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <clutter/clutter.h>
- #include <stdlib.h>
- static gboolean
- on_stage_keypress (ClutterStage *stage, ClutterEvent *event, gpointer data)
- {
- //g_print("Key pressed: %d\n", clutter_event_get_key_code(event));
- if(clutter_event_get_key_code(event) == 66) //Escape
- clutter_main_quit();
- return TRUE;
- }
- static gboolean
- start_stop_drag (ClutterActor *actor, ClutterEvent *event, gpointer data)
- {
- gboolean *dragging = data;
- *dragging = !*dragging;
- if(*dragging)
- g_print("Arrastrando\n");
- else
- g_print("No arrastrando\n");
- return TRUE;
- }
- static gboolean
- drag_actor (ClutterActor *actor, ClutterEvent *event, gpointer data)
- {
- gfloat x=0, y=0;
- gboolean *dragging = data;
- if(*dragging) {
- clutter_event_get_coords(event, &x, &y);
- clutter_actor_set_position(actor, x, y);
- }
- return TRUE;
- }
- int main (int argc, char *argv[])
- {
- ClutterColor stage_colour = { 0x00, 0x00, 0x00, 0xff};
- clutter_init(&argc, &argv);
- //Stage
- gfloat st_w = 640, st_h = 480;
- ClutterActor *stage = clutter_stage_get_default ();
- //clutter_stage_set_fullscreen(CLUTTER_STAGE(stage), TRUE);
- clutter_actor_set_size (stage, st_w, st_h);
- clutter_stage_set_color (CLUTTER_STAGE(stage), &stage_colour);
- clutter_actor_show (stage);
- //Salir
- gfloat icon_w = 64, icon_h = 64;
- ClutterActor *exit = clutter_texture_new_from_file ("system-log-out.svg", NULL);
- clutter_container_add_actor (CLUTTER_CONTAINER(stage), exit);
- clutter_actor_set_anchor_point (exit, icon_w, 0);
- clutter_actor_set_position (exit, CLUTTER_STAGE_WIDTH(), 0.0);
- clutter_actor_set_size (exit, icon_w, icon_h);
- clutter_actor_set_reactive (exit, TRUE);
- clutter_actor_show (exit);
- //Carita
- ClutterActor *omg = clutter_texture_new_from_file("face-surprise.svg", NULL);
- clutter_container_add_actor (CLUTTER_CONTAINER(stage), omg);
- clutter_actor_set_size (omg, icon_w, icon_h);
- clutter_actor_set_anchor_point (omg, icon_w/2, icon_h/2);
- clutter_actor_set_position (omg, CLUTTER_STAGE_WIDTH()/2, CLUTTER_STAGE_HEIGHT()/2);
- clutter_actor_set_reactive (omg, TRUE);
- clutter_actor_show(omg);
- gboolean omg_dragging = FALSE;
- //Señales!
- g_signal_connect (exit, "button-press-event",
- G_CALLBACK (clutter_main_quit), NULL);
- g_signal_connect (stage, "key-press-event",
- G_CALLBACK (on_stage_keypress), NULL);
- g_signal_connect (omg, "button-press-event",
- G_CALLBACK(start_stop_drag), &omg_dragging);
- g_signal_connect (omg, "button-release-event",
- G_CALLBACK(start_stop_drag), &omg_dragging);
- g_signal_connect (omg, "motion-event",
- G_CALLBACK(drag_actor), &omg_dragging);
- g_print("Default FPSs: %d\n", clutter_get_default_frame_rate());
- clutter_main();
- return EXIT_SUCCESS;
- }
Add Comment
Please, Sign In to add comment