tizen 2.3 release
[framework/uifw/elementary.git] / src / examples / panes_example.c
1 /**
2  * Simple Elementary's <b>panes widget</b> example, illustrating its
3  * usage and API.
4  *
5  * See stdout/stderr for output. Compile with:
6  *
7  * @verbatim
8  * gcc -g panes_example.c -o panes_example `pkg-config --cflags --libs elementary`
9  * @endverbatim
10  */
11
12 #include <Elementary.h>
13
14 static void
15 _on_done(void *data,
16         Evas_Object *obj,
17         void *event_info)
18 {
19    elm_exit();
20 }
21
22 static double size = 0.0;
23
24 static void
25 _press(void *data, Evas_Object *obj, void *event_info)
26 {
27     printf("Pressed\n");
28 }
29
30 static void
31 _unpress(void *data, Evas_Object *obj, void *event_info)
32 {
33     printf("Unpressed, size : %f\n", elm_panes_content_left_size_get(obj));
34 }
35
36 static void
37 _clicked(void *data, Evas_Object *obj, void *event_info)
38 {
39     printf("Clicked\n");
40 }
41
42 static void
43 _clicked_double(void *data, Evas_Object *obj, void *event_info)
44 {
45    if (elm_panes_content_left_size_get(obj) > 0)
46      {
47         size = elm_panes_content_left_size_get(obj);
48         elm_panes_content_left_size_set(obj, 0.0);
49         printf("Double clicked, hidding.\n");
50      }
51    else
52      {
53         elm_panes_content_left_size_set(obj, size);
54         printf("Double clicked, restoring size.\n");
55      }
56 }
57
58 EAPI_MAIN int
59 elm_main(int argc, char **argv)
60 {
61    Evas_Object *win, *bg, *panes, *panes_h, *bt;
62
63    win = elm_win_add(NULL, "panes", ELM_WIN_BASIC);
64    elm_win_title_set(win, "Panes Example");
65    evas_object_smart_callback_add(win, "delete,request", _on_done, NULL);
66
67    bg = elm_bg_add(win);
68    elm_win_resize_object_add(win, bg);
69    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
70    elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
71    evas_object_show(bg);
72
73    panes = elm_panes_add(win);
74    elm_win_resize_object_add(win, panes);
75    evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
76    evas_object_size_hint_align_set(panes, EVAS_HINT_FILL, EVAS_HINT_FILL);
77    evas_object_show(panes);
78
79    bt = elm_button_add(win);
80    elm_object_text_set(bt, "Left");
81    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
82    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
83    evas_object_show(bt);
84    elm_object_part_content_set(panes, "left", bt);
85
86    panes_h = elm_panes_add(win);
87    elm_panes_horizontal_set(panes_h, EINA_TRUE);
88    evas_object_size_hint_weight_set(panes_h, EVAS_HINT_EXPAND,
89                                     EVAS_HINT_EXPAND);
90    evas_object_size_hint_align_set(panes_h, EVAS_HINT_FILL, EVAS_HINT_FILL);
91    evas_object_show(panes_h);
92    elm_object_part_content_set(panes, "right", panes_h);
93
94    bt = elm_button_add(win);
95    elm_object_text_set(bt, "Up");
96    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
97    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
98    evas_object_show(bt);
99    elm_object_part_content_set(panes_h, "left", bt);
100
101    bt = elm_button_add(win);
102    elm_object_text_set(bt, "Down");
103    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
104    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
105    evas_object_show(bt);
106    elm_object_part_content_set(panes_h, "right", bt);
107
108    evas_object_smart_callback_add(panes, "clicked", _clicked, panes);
109    evas_object_smart_callback_add(panes, "clicked,double", _clicked_double,
110                                   panes);
111    evas_object_smart_callback_add(panes, "press", _press, panes);
112    evas_object_smart_callback_add(panes, "unpress", _unpress, panes);
113
114    evas_object_resize(win, 320, 400);
115    evas_object_show(win);
116
117    elm_run();
118    elm_shutdown();
119
120    return 0;
121 }
122 ELM_MAIN()