4 #include "xcnphandler.h"
5 #include "clipdrawer.h"
7 #define IM "/mnt/ums/Images/Photo/"
8 static const char *images[] = {
19 _image_click(void *data, Evas_Object *obj, void *event_info)
21 struct appdata *ad = data;
24 file = evas_object_data_get(obj, "URI");
27 snprintf(p,len+10,"file:///%s",file);
29 elm_selection_set(/*secondary*/1,obj,/*ELM_SEL_FORMAT_IMAGE*/4,p);
31 clipdrawer_lower_view(ad);
34 static void _list_click( void *data, Evas_Object *obj, void *event_info )
36 struct appdata *ad = data;
37 Elm_List_Item *it = (Elm_List_Item *) elm_list_selected_item_get(obj);
41 elm_list_item_selected_set(it, 0);
47 cpdata = elm_list_item_label_get(it);
50 cplen = strlen(cpdata);
51 p = malloc(cplen + 1);
52 snprintf(p, cplen+1, "%s", cpdata);
53 elm_selection_set(1, obj, /*ELM_SEL_FORMAT_TEXT*/1, p);
54 // elm_selection_set(1, obj, /*ELM_SEL_FORMAT_MARKUP*/2, p);
56 clipdrawer_lower_view(ad);
59 int clipdrawer_update_contents(void *data)
61 struct appdata *ad = data;
64 elm_list_clear(ad->txtlist);
65 for (i = 0; i < HISTORY_QUEUE_NUMBER; i++)
67 pos = get_current_history_position()+i;
68 if (pos > HISTORY_QUEUE_NUMBER-1)
69 pos = pos-HISTORY_QUEUE_NUMBER;
70 if (get_item_contents_by_pos(pos) != NULL && strlen(get_item_contents_by_pos(pos)) > 0)
72 elm_list_item_append(ad->txtlist, get_item_contents_by_pos(pos), NULL, NULL, NULL, ad);
75 elm_list_go(ad->txtlist);
77 /* FIXME : sometimes when list update, screen isn't updated */
82 const char* clipdrawer_get_plain_string_from_escaped(char *escstr)
84 /* TODO : is it should be here? besides, remove dependency for entry */
85 /* NOTE : return string should be freed */
86 return elm_entry_markup_to_utf8(escstr);
89 int clipdrawer_init(void *data)
91 struct appdata *ad = data;
93 evas_object_resize(ad->win_main, 480, 360);
94 evas_object_move(ad->win_main, 0, 440);
95 evas_object_resize(ad->ly_main, 480, 360);
96 evas_object_move(ad->ly_main, 0, 440);
98 ad->scrl = elm_scroller_add(ad->win_main);
99 edje_object_part_swallow(_EDJ(ad->ly_main), "cbhmdrawer/imglist", ad->scrl);
100 evas_object_size_hint_weight_set(ad->scrl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
101 elm_scroller_bounce_set(ad->scrl, EINA_TRUE, EINA_FALSE);
102 elm_scroller_policy_set(ad->scrl, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF);
103 elm_win_resize_object_add(ad->win_main, ad->scrl);
104 evas_object_show(ad->scrl);
106 evas_object_resize(ad->scrl,480,95);
108 ad->imgbox = elm_box_add(ad->win_main);
109 elm_box_horizontal_set(ad->imgbox, TRUE);
110 evas_object_size_hint_weight_set(ad->imgbox, EVAS_HINT_EXPAND, 0);
111 evas_object_size_hint_align_set(ad->imgbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
112 elm_scroller_content_set(ad->scrl, ad->imgbox);
113 evas_object_show(ad->imgbox);
117 for (i = 0 ; i < N_IMAGES ; i ++)
119 pt = elm_photo_add(ad->win_main);
120 elm_photo_file_set(pt, images[i]);
121 evas_object_size_hint_weight_set(pt, EVAS_HINT_EXPAND,
123 evas_object_size_hint_align_set(pt, EVAS_HINT_FILL,
125 elm_photo_size_set(pt, 125);
126 elm_box_pack_end(ad->imgbox, pt);
127 evas_object_show(pt);
128 evas_object_data_set(pt,"URI",images[i]);
130 evas_object_smart_callback_add(pt, "clicked", _image_click, ad);
133 ad->txtlist = elm_list_add(ad->win_main);
134 elm_layout_content_set(ad->ly_main, "cbhmdrawer/txtlist", ad->txtlist);
135 elm_list_horizontal_mode_set(ad->txtlist, ELM_LIST_COMPRESS);
136 evas_object_smart_callback_add(ad->txtlist, "selected", _list_click, ad);
137 elm_list_item_append(ad->txtlist, "default", NULL, NULL, NULL, ad);
139 elm_list_go(ad->txtlist);
141 if (get_item_counts() != 0)
142 clipdrawer_update_contents(ad);
147 int clipdrawer_create_view(void *data)
149 struct appdata *ad = data;
156 void clipdrawer_activate_view(void *data)
158 struct appdata *ad = data;
162 evas_object_show(ad->win_main);
163 elm_win_activate(ad->win_main);
167 void clipdrawer_lower_view(void *data)
169 struct appdata *ad = data;
173 evas_object_hide(ad->win_main);
174 elm_win_lower(ad->win_main);