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