fixed plugin image size problem
[framework/uifw/elementary.git] / src / bin / test_scroller.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5 #ifndef ELM_LIB_QUICKLAUNCH
6 void
7 my_bt_go_300_300(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
8 {
9    elm_scroller_region_bring_in((Evas_Object *)data, 300, 300, 318, 318);
10 }
11
12 void
13 my_bt_go_900_300(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
14 {
15    elm_scroller_region_bring_in((Evas_Object *)data, 900, 300, 318, 318);
16 }
17
18 void
19 my_bt_go_300_900(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
20 {
21    elm_scroller_region_bring_in((Evas_Object *)data, 300, 900, 318, 318);
22 }
23
24 void
25 my_bt_go_900_900(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
26 {
27    elm_scroller_region_bring_in((Evas_Object *)data, 900, 900, 318, 318);
28 }
29
30 void
31 test_scroller(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
32 {
33    Evas_Object *win, *bg2, *tb, *tb2, *sc, *bt;
34    int i, j, n;
35    char buf[PATH_MAX];
36    const char *img[9] =
37      {
38         "panel_01.jpg",
39           "plant_01.jpg",
40           "rock_01.jpg",
41           "rock_02.jpg",
42           "sky_01.jpg",
43           "sky_02.jpg",
44           "sky_03.jpg",
45           "sky_04.jpg",
46           "wood_01.jpg"
47      };
48
49    win = elm_win_util_standard_add("scroller", "Scroller");
50    elm_win_autodel_set(win, EINA_TRUE);
51
52    tb = elm_table_add(win);
53    evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
54
55    n = 0;
56    for (j = 0; j < 12; j++)
57      {
58         for (i = 0; i < 12; i++)
59           {
60              bg2 = elm_bg_add(win);
61              snprintf(buf, sizeof(buf), "%s/images/%s",
62                       elm_app_data_dir_get(), img[n]);
63              n++;
64              if (n >= 9) n = 0;
65              elm_bg_file_set(bg2, buf, NULL);
66              evas_object_size_hint_weight_set(bg2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
67              evas_object_size_hint_align_set(bg2, EVAS_HINT_FILL, EVAS_HINT_FILL);
68              evas_object_size_hint_min_set(bg2, 318, 318);
69              elm_table_pack(tb, bg2, i, j, 1, 1);
70              evas_object_show(bg2);
71           }
72      }
73
74    sc = elm_scroller_add(win);
75    evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
76    elm_win_resize_object_add(win, sc);
77
78    elm_object_content_set(sc, tb);
79    evas_object_show(tb);
80
81    elm_scroller_page_relative_set(sc, 1.0, 1.0);
82    evas_object_show(sc);
83
84    tb2 = elm_table_add(win);
85    evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
86    elm_win_resize_object_add(win, tb2);
87
88    bt = elm_button_add(win);
89    elm_object_text_set(bt, "to 300 300");
90    evas_object_smart_callback_add(bt, "clicked", my_bt_go_300_300, sc);
91    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
92    evas_object_size_hint_align_set(bt, 0.1, 0.1);
93    elm_table_pack(tb2, bt, 0, 0, 1, 1);
94    evas_object_show(bt);
95
96    bt = elm_button_add(win);
97    elm_object_text_set(bt, "to 900 300");
98    evas_object_smart_callback_add(bt, "clicked", my_bt_go_900_300, sc);
99    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
100    evas_object_size_hint_align_set(bt, 0.9, 0.1);
101    elm_table_pack(tb2, bt, 1, 0, 1, 1);
102    evas_object_show(bt);
103
104    bt = elm_button_add(win);
105    elm_object_text_set(bt, "to 300 900");
106    evas_object_smart_callback_add(bt, "clicked", my_bt_go_300_900, sc);
107    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
108    evas_object_size_hint_align_set(bt, 0.1, 0.9);
109    elm_table_pack(tb2, bt, 0, 1, 1, 1);
110    evas_object_show(bt);
111
112    bt = elm_button_add(win);
113    elm_object_text_set(bt, "to 900 900");
114    evas_object_smart_callback_add(bt, "clicked", my_bt_go_900_900, sc);
115    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
116    evas_object_size_hint_align_set(bt, 0.9, 0.9);
117    elm_table_pack(tb2, bt, 1, 1, 1, 1);
118    evas_object_show(bt);
119
120    evas_object_show(tb2);
121
122    evas_object_resize(win, 320, 320);
123    evas_object_show(win);
124 }
125
126 void
127 click_through(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
128 {
129    printf("click went through on %p\n", obj);
130 }
131
132 void
133 test_scroller2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
134 {
135    Evas_Object *win, *bt, *bx, *bx2, *sc, *tb, *tb2, *rc;
136    int i, j;
137
138    win = elm_win_util_standard_add("scroller2", "Scroller 2");
139    elm_win_autodel_set(win, EINA_TRUE);
140
141    bx = elm_box_add(win);
142    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
143    evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0);
144
145    /* { */
146    for (i = 0; i < 3; i++)
147      {
148         bt = elm_button_add(win);
149         elm_object_text_set(bt, "Vertical");
150         evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
151         evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
152         evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
153         elm_box_pack_end(bx, bt);
154         evas_object_show(bt);
155      }
156    /* } */
157
158    /* { */
159    sc = elm_scroller_add(win);
160    evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, 0.0);
161    evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, 0.5);
162    elm_scroller_bounce_set(sc, EINA_TRUE, EINA_FALSE);
163    elm_scroller_content_min_limit(sc, 0, 1);
164    elm_box_pack_end(bx, sc);
165    evas_object_show(sc);
166
167    bx2 = elm_box_add(win);
168    elm_box_horizontal_set(bx2, EINA_TRUE);
169
170    for (i = 0; i < 10; i++)
171      {
172         bt = elm_button_add(win);
173         elm_object_text_set(bt, "... Horizontal scrolling ...");
174         evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
175         elm_box_pack_end(bx2, bt);
176         evas_object_show(bt);
177      }
178
179    elm_object_content_set(sc, bx2);
180    evas_object_show(bx2);
181    /* } */
182
183    /* { */
184    for (i = 0; i < 3; i++)
185      {
186         bt = elm_button_add(win);
187         elm_object_text_set(bt, "Vertical");
188         evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
189         evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
190         evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
191         elm_box_pack_end(bx, bt);
192         evas_object_show(bt);
193      }
194    /* } */
195
196    /* { */
197    tb = elm_table_add(win);
198    evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
199    evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
200    elm_box_pack_end(bx, tb);
201    evas_object_show(tb);
202
203    rc = evas_object_rectangle_add(evas_object_evas_get(win));
204    evas_object_size_hint_min_set(rc, 200, 120);
205    elm_table_pack(tb, rc, 0, 0, 1, 1);
206
207    sc = elm_scroller_add(win);
208    evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
209    evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
210    elm_table_pack(tb, sc, 0, 0, 1, 1);
211    evas_object_show(sc);
212
213    tb2 = elm_table_add(win);
214
215    for (j = 0; j < 16; j++)
216      {
217         for (i = 0; i < 16; i++)
218           {
219              bt = elm_button_add(win);
220              elm_object_text_set(bt, "Both");
221              evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
222              elm_table_pack(tb2, bt, i, j, 1, 1);
223              evas_object_show(bt);
224           }
225      }
226
227    elm_object_content_set(sc, tb2);
228    evas_object_show(tb2);
229    /* } */
230
231    for (i = 0; i < 24; i++)
232      {
233         bt = elm_button_add(win);
234         elm_object_text_set(bt, "Vertical");
235         evas_object_smart_callback_add(bt, "clicked", click_through, NULL);
236         evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
237         evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
238         elm_box_pack_end(bx, bt);
239         evas_object_show(bt);
240      }
241
242    sc = elm_scroller_add(win);
243    evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
244    elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE);
245    elm_win_resize_object_add(win, sc);
246    elm_object_content_set(sc, bx);
247    evas_object_show(bx);
248    evas_object_show(sc);
249
250    evas_object_resize(win, 320, 480);
251    evas_object_show(win);
252 }
253 #endif