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