2 #include "clipdrawer.h"
7 #define _EDJ(ly) elm_layout_edje_get(ly)
10 #define IM "/mnt/ums/Images/Wallpapers/"
11 static const char *images[] = {
12 IM"TFT_01_480x800.jpg",
13 IM"TFT_02_480x800.jpg",
14 IM"TFT_03_480x800.jpg",
15 IM"TFT_04_480x800.jpg",
16 IM"TFT_05_480x800.jpg",
17 IM"OCTA_01_480x800.jpg",
18 IM"OCTA_02_480x800.jpg",
19 IM"OCTA_03_480x800.jpg",
20 IM"OCTA_04_480x800.jpg",
21 IM"OCTA_05_480x800.jpg",
26 _image_click(void *data, Evas_Object *obj, void *event_info)
30 file = evas_object_data_get(data, "URI");
32 len = strlen(file) + strlen(dir);
34 snprintf(p,len+10,"file:///%s/%s",dir,file);
36 elm_selection_set(/*secondary*/1,data,/*image*/2,p);
39 static void _list_click( void *data, Evas_Object *obj, void *event_info )
41 struct appdata *ad = data;
42 Elm_List_Item *it = (Elm_List_Item *) elm_list_selected_item_get( obj );
46 elm_list_item_selected_set(it, 0);
49 // char *cpdata = NULL;
52 // cpdata = elm_list_item_label_get(it);
53 char *cpdata = "#en#";
56 clen = strlen(cpdata);
58 snprintf(p, clen+1, "%s", cpdata);
59 elm_selection_set(1, obj, /*mark up*/1, p);
61 // set_selection_secondary_data(p);
63 clipdrawer_lower_view(ad);
66 int clipdrawer_update_contents(void *data)
68 struct appdata *ad = data;
71 elm_list_clear(ad->txtlist);
72 for (i = 0; i < HISTORY_QUEUE_NUMBER; i++)
74 pos = get_current_history_position()+i;
75 if (pos > HISTORY_QUEUE_NUMBER-1)
76 pos = pos-HISTORY_QUEUE_NUMBER;
77 if (get_item_contents_by_pos(pos) != NULL)
78 elm_list_item_append(ad->txtlist, get_item_contents_by_pos(pos), NULL, NULL, NULL, ad);
80 elm_list_go(ad->txtlist);
82 /* FIXME : sometimes when list update, screen isn't updated */
87 static int clipdrawer_init(void *data)
89 struct appdata *ad = data;
91 evas_object_resize(ad->win_main, 480, 400);
92 evas_object_move(ad->win_main, 0, 400);
93 evas_object_resize(ad->ly_main, 480, 400);
94 evas_object_move(ad->ly_main, 0, 400);
96 ad->scrl = elm_scroller_add(ad->win_main);
97 edje_object_part_swallow(_EDJ(ad->ly_main), "cbhmdrawer/imglist", ad->scrl);
98 evas_object_size_hint_weight_set(ad->scrl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
99 elm_scroller_bounce_set(ad->scrl, EINA_TRUE, EINA_FALSE);
100 elm_scroller_policy_set(ad->scrl, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF);
101 elm_win_resize_object_add(ad->win_main, ad->scrl);
102 evas_object_show(ad->scrl);
104 evas_object_resize(ad->scrl,480,95);
106 ad->imgbox = elm_box_add(ad->win_main);
107 elm_box_horizontal_set(ad->imgbox, TRUE);
108 evas_object_size_hint_weight_set(ad->imgbox, EVAS_HINT_EXPAND, 0);
109 evas_object_size_hint_align_set(ad->imgbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
110 elm_scroller_content_set(ad->scrl, ad->imgbox);
111 evas_object_show(ad->imgbox);
115 for (i = 0 ; i < N_IMAGES ; i ++)
117 pt = elm_photo_add(ad->win_main);
118 elm_photo_file_set(pt, images[i]);
119 evas_object_size_hint_weight_set(pt, EVAS_HINT_EXPAND,
121 evas_object_size_hint_align_set(pt, EVAS_HINT_FILL,
123 elm_photo_size_set(pt, 145);
124 elm_box_pack_end(ad->imgbox, pt);
125 evas_object_show(pt);
126 evas_object_data_set(pt,"URI",images[i]);
128 evas_object_smart_callback_add(pt, "clicked", _image_click, pt);
131 ad->txtlist = elm_list_add(ad->win_main);
132 elm_layout_content_set(ad->ly_main, "cbhmdrawer/txtlist", ad->txtlist);
133 elm_list_horizontal_mode_set(ad->txtlist, ELM_LIST_COMPRESS);
134 evas_object_smart_callback_add(ad->txtlist, "selected", _list_click, ad);
135 elm_list_item_append(ad->txtlist, "default", NULL, NULL, NULL, ad);
137 elm_list_go(ad->txtlist);
139 if (get_item_counts() != 0)
140 clipdrawer_update_contents(ad);
145 int clipdrawer_create_view(void *data)
147 struct appdata *ad = data;
154 void clipdrawer_activate_view(void *data)
156 struct appdata *ad = data;
160 evas_object_show(ad->win_main);
161 elm_win_activate(ad->win_main);
165 void clipdrawer_lower_view(void *data)
167 struct appdata *ad = data;
171 evas_object_hide(ad->win_main);
172 elm_win_lower(ad->win_main);