gridimgitem_t *ti = (gridimgitem_t *)data;
if (!strcmp(part, "elm.swallow.icon"))
{
+/*
Evas_Object *icon = elm_icon_add(obj);
elm_icon_file_set(icon, ti->path, NULL);
evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
evas_object_show(icon);
+*/
+ Ecore_Evas *my_ee;
+ Evas *my_e;
+ Evas_Object *fgimg;
+ Evas_Object *bgrect;
+ Evas_Object *delbtn;
+ Evas_Object *icon;
+ my_ee = ecore_evas_buffer_new(GRID_ITEM_SIZE, GRID_ITEM_SIZE);
+ my_e = ecore_evas_get(my_ee);
+
+ bgrect = evas_object_rectangle_add(my_e);
+ evas_object_color_set(bgrect, 119, 116, 100, 255);
+ evas_object_resize(bgrect, GRID_ITEM_SIZE, GRID_ITEM_SIZE);
+ evas_object_move(bgrect, 0, 0);
+ evas_object_show(bgrect);
+
+ #define BORDER_SIZE 10
+ fgimg = evas_object_image_add(my_e);
+ evas_object_image_load_size_set(fgimg, GRID_ITEM_SIZE-BORDER_SIZE*2, GRID_ITEM_SIZE-BORDER_SIZE*2);
+ evas_object_image_file_set(fgimg, ti->path, NULL);
+ evas_object_image_fill_set(fgimg, 0, 0, GRID_ITEM_SIZE-BORDER_SIZE*2, GRID_ITEM_SIZE-BORDER_SIZE*2);
+ evas_object_image_filled_set(fgimg, 1);
+ evas_object_resize(fgimg, GRID_ITEM_SIZE-BORDER_SIZE*2, GRID_ITEM_SIZE-BORDER_SIZE*2);
+ evas_object_move(fgimg, BORDER_SIZE, BORDER_SIZE);
+ evas_object_show(fgimg);
+
+/*
+ if (delete_mode)
+ {
+ delbtn = evas_object_image_add(my_e);
+ evas_object_image_load_size_set(delbtn, 33, 33);
+ evas_object_image_file_set(delbtn, DELETE_ICON_PATH, NULL);
+ evas_object_image_fill_set(delbtn, 0, 0, 33, 33);
+ evas_object_image_filled_set(delbtn, 1);
+ evas_object_resize(delbtn, 33, 33);
+ evas_object_move(delbtn, 55, 38);
+ evas_object_show(delbtn);
+ }
+*/
+
+ icon = evas_object_image_add(evas_object_evas_get(obj));
+
+ evas_object_image_data_set(icon, NULL);
+ evas_object_image_size_set(icon, GRID_ITEM_SIZE, GRID_ITEM_SIZE);
+ evas_object_image_fill_set(icon, 0, 0, GRID_ITEM_SIZE, GRID_ITEM_SIZE);
+ evas_object_image_filled_set(icon, EINA_TRUE);
+ evas_object_image_data_copy_set(icon, (int *)ecore_evas_buffer_pixels_get(my_ee));
+ evas_object_image_data_update_add(icon, 0, 0, GRID_ITEM_SIZE, GRID_ITEM_SIZE);
+
+ evas_object_del(bgrect);
+ evas_object_del(fgimg);
+ if (delete_mode)
+ evas_object_del(delbtn);
+ ecore_evas_free(my_ee);
+
return icon;
}
else if (!strcmp(part, "elm.swallow.end") && delete_mode)
igl = elm_gengrid_items_get(ad->imggrid);
igl_counter = eina_list_count(igl);
+
+ Eina_List *l;
+ Elm_Gengrid_Item *item;
+ gridimgitem_t *ti = NULL;
+
+ EINA_LIST_FOREACH(igl, l, item)
+ {
+ ti = elm_gengrid_item_data_get(item);
+ if (!strcmp(ti->path, imagepath))
+ {
+ DTRACE("Error : duplicated file path = %s\n", imagepath);
+ return -1;
+ }
+ }
+
if (igl_counter >= HISTORY_QUEUE_MAX_IMG_ITEMS)
{
elm_gengrid_item_del(eina_list_data_get(eina_list_last(igl)));
// for debug
// at starting, showing app view
- //clipdrawer_activate_view(ad);
+ // clipdrawer_activate_view(ad);
return 0;
}
AnyPropertyType, &cbtype, &cbformat, &cbitems, &cbsize, &cbbuf);
XDeleteProperty(g_disp, g_evtwin, atomCBOut);
+/*
unesc = clipdrawer_get_plain_string_from_escaped(cbbuf);
if (unesc != NULL)
{
}
else
unesc_len = 0;
+*/
// add_to_storage_buffer(ad, cbbuf, cbitems);
// DTRACE("len = %ld, data = %s\n", cbitems, cbbuf);
+ if (cbbuf != NULL)
+ {
+ unesc_len = strlen(cbbuf);
+ // FIXME: invent more clever way to right trim the string
+ for (i = unesc_len-1; i > 0; i--)
+ {
+ // avoid control characters
+ if (cbbuf[i] >= 0x01 && cbbuf[i] <= 0x1F)
+ continue;
+ else
+ {
+ DTRACE("before right trim len = %d\n", unesc_len);
+ unesc_len = i+1;
+ DTRACE("after right trim len = %d\n", unesc_len);
+ break;
+ }
+ }
+ }
+ else
+ unesc_len = 0;
+
+ if (!strncmp(cbbuf, "file://", 7) &&
+ (strcasestr(cbbuf,".png") || strcasestr(cbbuf,".jpg") || strcasestr(cbbuf,".bmp")) &&
+ check_regular_file(cbbuf+7))
+ {
+ DTRACE("clipdrawer add path = %s\n", cbbuf+7);
+ clipdrawer_add_image_item(cbbuf+7);
+ }
+ else
+ add_to_storage_buffer(ad, cbbuf, unesc_len);
+ DTRACE("len = %ld, data = %s\n", unesc_len, cbbuf);
+
+
/* FIXME : it needs two verification.
1. does the file exist?
2. dose the file wanted type? */
+/*
if (!strncmp(unesc, "file://", 7) &&
(strcasestr(unesc,".png") || strcasestr(unesc,".jpg") || strcasestr(unesc,".bmp")) &&
check_regular_file(unesc+7))
add_to_storage_buffer(ad, unesc, unesc_len);
DTRACE("len = %ld, data = %s\n", unesc_len, unesc);
free(unesc);
+*/
DTRACE("\n");
print_storage_buffer();
ecore_x_netwm_name_set(g_evtwin, CLIPBOARD_MANAGER_WINDOW_TITLE_STRING);
XSelectInput(g_disp, g_evtwin, PropertyChangeMask);
+ XSelectInput(g_disp, g_rootwin, StructureNotifyMask);
// ecore_x_window_show(g_evtwin);
ecore_x_flush();
Atom atomCBHM_MSG = XInternAtom(g_disp, "CBHM_MSG", False);
Atom atomCBHM_cRAW = XInternAtom(g_disp, "CBHM_cRAW", False);
+ Atom atomXKey_MSG = XInternAtom(g_disp, "_XKEY_COMPOSITION", False);
char atomname[10];
Atom cbhm_atoms[HISTORY_QUEUE_MAX_TXT_ITEMS];
Ecore_X_Window reqwin = ev->win;
int i, pos;
+ if (ev->message_type == atomXKey_MSG)
+ {
+ DTRACE("XE:ClientMessage for Screen capture\n");
+
+ capture_current_screen(ad);
+
+ return TRUE;
+ }
+
if (ev->message_type != atomCBHM_MSG)
return -1;