9061cade5d39af8125a9c895419e6e04ba34885a
[framework/uifw/elementary.git] / src / examples / thumb_example_01.c
1 //Compile with:
2 //gcc -g `pkg-config --cflags --libs elementary` thumb_example_01.c -o thumb_example_01
3
4 #include <Elementary.h>
5 #define PACKAGE_DATA_DIR "."
6
7 static void
8 _generation_started_cb(void *data, Evas_Object *o, void *event_info)
9 {
10    printf("thumbnail generation started.\n");
11 }
12
13 static void
14 _generation_finished_cb(void *data, Evas_Object *o, void *event_info)
15 {
16    printf("thumbnail generation finished.\n");
17 }
18
19 static void
20 _generation_error_cb(void *data, Evas_Object *o, void *event_info)
21 {
22    printf("thumbnail generation error.\n");
23 }
24
25 EAPI_MAIN int
26 elm_main(int argc, char **argv)
27 {
28    Evas_Object *win, *bg;
29    Evas_Object *thumb;
30    Ethumb_Client *client;
31    char buf[PATH_MAX];
32
33    elm_need_ethumb();
34
35    win = elm_win_add(NULL, "thumb", ELM_WIN_BASIC);
36    elm_win_title_set(win, "Thumbnailer");
37    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
38    elm_win_autodel_set(win, EINA_TRUE);
39
40    bg = elm_bg_add(win);
41    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
42    elm_win_resize_object_add(win, bg);
43    evas_object_show(bg);
44
45    client = elm_thumb_ethumb_client_get();
46    if (!client)
47      {
48         printf("error: could not get Ethumb client.\n");
49         return 1;
50      }
51    ethumb_client_size_set(client, 160, 160);
52
53    thumb = elm_thumb_add(win);
54
55    evas_object_smart_callback_add(thumb, "generate,start", _generation_started_cb, NULL);
56    evas_object_smart_callback_add(thumb, "generate,stop", _generation_finished_cb, NULL);
57    evas_object_smart_callback_add(thumb, "generate,error", _generation_error_cb, NULL);
58
59    elm_thumb_editable_set(thumb, EINA_FALSE);
60    snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", PACKAGE_DATA_DIR);
61    elm_thumb_file_set(thumb, buf, NULL);
62    elm_thumb_reload(thumb);
63
64    evas_object_size_hint_weight_set(thumb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
65    elm_win_resize_object_add(win, thumb);
66    evas_object_show(thumb);
67
68    evas_object_size_hint_min_set(bg, 160, 160);
69    evas_object_size_hint_max_set(bg, 640, 640);
70    evas_object_resize(win, 320, 320);
71    evas_object_show(win);
72
73    elm_run(); /* and run the program now, starting to handle all
74                * events, etc. */
75    elm_shutdown(); /* clean up and shut down */
76    /* exit code */
77    return 0;
78 }
79 ELM_MAIN()