Initial import
[clutter-sprite:clutter-sprite.git] / clutter-sprite-test.c
1 /*
2  * Copyright (c) 2010, Intel Corporation.
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms and conditions of the GNU General Public License,
6  * version 2, as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  * You should have received a copy of the GNU General Public License along with
14  * this program; if not, write to the Free Software Foundation, Inc.,
15  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
16  *
17  * Author: Rob Staudinger <robsta@linux.intel.com>
18  */
19
20 #include <stdbool.h>
21 #include <stdlib.h>
22 #include <clutter/clutter.h>
23 #include "foo-clutter-sprite.h"
24
25 int
26 main (int     argc,
27       char  **argv)
28 {
29   ClutterActor      *stage;
30   FooClutterSprite  *sprite;
31   ClutterAnimation  *animation;
32   char const        *frames[] = { "battery-0.png",
33                                   "battery-1.png",
34                                   "battery-2.png",
35                                   "battery-3.png",
36                                   "battery-4.png",
37                                   NULL };
38   unsigned           n_frames;
39
40   clutter_init (&argc, &argv);
41   stage = clutter_stage_get_default ();
42
43   sprite = (FooClutterSprite *) foo_clutter_sprite_new_from_frames (frames);
44   clutter_container_add_actor (CLUTTER_CONTAINER (stage),
45                                CLUTTER_ACTOR (sprite));
46
47   n_frames = foo_clutter_sprite_get_n_frames (sprite);
48   foo_clutter_sprite_set_frame_index (sprite, 0);
49   animation = clutter_actor_animate (CLUTTER_ACTOR (sprite),
50                                      CLUTTER_LINEAR, 1000,
51                                      "frame-index", n_frames - 1,
52                                      NULL);
53   clutter_animation_set_loop (animation, true);
54
55   clutter_actor_show_all (stage);
56   clutter_main ();
57
58   return EXIT_SUCCESS;
59 }