Dear all.
As discomfitor suggested, I cleanup some codes.
elm_cnp_selection_set : add buffer length argument and check for image type.
(i think it's urgent issue before elm_cnp_selection_set api is widely used.)
enum defines : add 'type' prefix.
Thanks
Index: elementary/src/lib/elm_entry.c
===================================================================
--- elementary/src/lib/elm_entry.c (리비전 66563)
+++ elementary/src/lib/elm_entry.c (작업 사본)
@@ -1121,12 +1121,12 @@
if (wd->sel_notify_handler)
{
#ifdef HAVE_ELEMENTARY_X
- Elm_Sel_Format formats;
+ Elm_Sel_Format_Type formats;
wd->selection_asked = EINA_TRUE;
- formats = ELM_SEL_FORMAT_MARKUP;
+ formats = ELM_SEL_FORMAT_TYPE_MARKUP;
if (!wd->textonly)
- formats |= ELM_SEL_FORMAT_IMAGE;
- elm_cnp_selection_get(ELM_SEL_CLIPBOARD, formats, data, NULL, NULL);
+ formats |= ELM_SEL_FORMAT_TYPE_IMAGE;
+ elm_cnp_selection_get(ELM_SEL_TYPE_CLIPBOARD, formats, data, NULL,
NULL);
#endif
}
}
@@ -1140,8 +1140,8 @@
if (!wd) return;
sel = edje_object_part_text_selection_get(wd->ent, "elm.text");
if ((!sel) || (!sel[0])) return; /* avoid deleting our own selection */
- elm_cnp_selection_set(seltype, obj, ELM_SEL_FORMAT_MARKUP, sel);
- if (seltype == ELM_SEL_CLIPBOARD)
+ elm_cnp_selection_set(seltype, obj, ELM_SEL_FORMAT_TYPE_MARKUP, sel,
strlen(sel));
+ if (seltype == ELM_SEL_TYPE_CLIPBOARD)
eina_stringshare_replace(&wd->cut_sel, sel);
}
@@ -1157,7 +1157,7 @@
edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
if (!_elm_config->desktop_entry)
elm_widget_scroll_hold_pop(data);
- _store_selection(ELM_SEL_CLIPBOARD, data);
+ _store_selection(ELM_SEL_TYPE_CLIPBOARD, data);
edje_object_part_text_insert(wd->ent, "elm.text", "");
edje_object_part_text_select_none(wd->ent, "elm.text");
_sizing_eval(data);
@@ -1175,7 +1175,7 @@
edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
elm_widget_scroll_hold_pop(data);
}
- _store_selection(ELM_SEL_CLIPBOARD, data);
+ _store_selection(ELM_SEL_TYPE_CLIPBOARD, data);
// edje_object_part_text_select_none(wd->ent, "elm.text");
}
@@ -1531,7 +1531,8 @@
top = elm_widget_top_get(data);
if ((top) && (elm_win_xwindow_get(top)))
- elm_cnp_selection_set(ELM_SEL_PRIMARY, data, ELM_SEL_FORMAT_MARKUP,
txt);
+ elm_cnp_selection_set(ELM_SEL_TYPE_PRIMARY, data,
+ ELM_SEL_FORMAT_TYPE_MARKUP, txt, strlen(txt));
}
#endif
}
@@ -1559,7 +1560,7 @@
if (!wd) return;
wd->have_selection = EINA_TRUE;
evas_object_smart_callback_call(data, SIG_SELECTION_CHANGED, NULL);
- _store_selection(ELM_SEL_PRIMARY, data);
+ _store_selection(ELM_SEL_TYPE_PRIMARY, data);
}
static void
@@ -1579,8 +1580,9 @@
top = elm_widget_top_get(data);
if ((top) && (elm_win_xwindow_get(top)))
- elm_cnp_selection_set(ELM_SEL_PRIMARY, data,
ELM_SEL_FORMAT_MARKUP,
- wd->cut_sel);
+ elm_cnp_selection_set(ELM_SEL_TYPE_PRIMARY, data,
+ ELM_SEL_FORMAT_TYPE_MARKUP, wd->cut_sel,
+ strlen(wd->cut_sel));
#endif
eina_stringshare_del(wd->cut_sel);
wd->cut_sel = NULL;
@@ -1592,7 +1594,7 @@
top = elm_widget_top_get(data);
if ((top) && (elm_win_xwindow_get(top)))
- elm_cnp_selection_clear(ELM_SEL_PRIMARY, data);
+ elm_cnp_selection_clear(ELM_SEL_TYPE_PRIMARY, data);
#endif
}
}
@@ -1602,7 +1604,8 @@
_signal_entry_paste_request(void *data, Evas_Object *obj __UNUSED__, const
char *emission, const char *source __UNUSED__)
{
Widget_Data *wd = elm_widget_data_get(data);
- Elm_Sel_Type type = (emission[sizeof("ntry,paste,request,")] == '1') ?
ELM_SEL_PRIMARY : ELM_SEL_CLIPBOARD;
+ Elm_Sel_Type type = (emission[sizeof("ntry,paste,request,")] == '1') ?
+ ELM_SEL_TYPE_PRIMARY : ELM_SEL_TYPE_CLIPBOARD;
if (!wd) return;
evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, NULL);
if (wd->sel_notify_handler)
@@ -1614,7 +1617,7 @@
if ((top) && (elm_win_xwindow_get(top)))
{
wd->selection_asked = EINA_TRUE;
- elm_cnp_selection_get(type, ELM_SEL_FORMAT_MARKUP, data,
+ elm_cnp_selection_get(type, ELM_SEL_FORMAT_TYPE_MARKUP, data,
NULL, NULL);
}
#endif
@@ -2346,7 +2349,7 @@
_event_selection_clear, obj);
}
- elm_drop_target_add(obj, ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_IMAGE,
+ elm_drop_target_add(obj, ELM_SEL_FORMAT_TYPE_MARKUP |
ELM_SEL_FORMAT_TYPE_IMAGE,
_drag_drop_cb, NULL);
#endif
@@ -2441,7 +2444,7 @@
else
{
#ifdef HAVE_ELEMENTARY_X
- elm_drop_target_add(obj, ELM_SEL_FORMAT_MARKUP, _drag_drop_cb, NULL);
+ elm_drop_target_add(obj, ELM_SEL_FORMAT_TYPE_MARKUP, _drag_drop_cb,
NULL);
#endif
edje_object_signal_callback_add(wd->ent, "selection,start", "elm.text",
_signal_selection_start, obj);
@@ -2615,7 +2618,7 @@
#ifdef HAVE_ELEMENTARY_X
if (editable)
- elm_drop_target_add(obj, ELM_SEL_FORMAT_MARKUP, _drag_drop_cb, NULL);
+ elm_drop_target_add(obj, ELM_SEL_FORMAT_TYPE_MARKUP, _drag_drop_cb, NULL);
else
elm_drop_target_del(obj);
#endif
@@ -3198,14 +3201,14 @@
EAPI void
elm_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly)
{
- Elm_Sel_Format format = ELM_SEL_FORMAT_MARKUP;
+ Elm_Sel_Format_Type format = ELM_SEL_FORMAT_TYPE_MARKUP;
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
textonly = !!textonly;
if (wd->textonly == textonly) return;
wd->textonly = !!textonly;
- if (!textonly) format |= ELM_SEL_FORMAT_IMAGE;
+ if (!textonly) format |= ELM_SEL_FORMAT_TYPE_IMAGE;
#ifdef HAVE_ELEMENTARY_X
elm_drop_target_add(obj, format, _drag_drop_cb, NULL);
#endif
Index: elementary/src/lib/elm_widget.h
===================================================================
--- elementary/src/lib/elm_widget.h (리비전 66563)
+++ elementary/src/lib/elm_widget.h (작업 사본)
@@ -714,6 +714,6 @@
Eina_Bool elm_selection_selection_has_owner(void);
Eina_Bool elm_drop_target_add(Evas_Object *widget, Elm_Sel_Type,
Elm_Drop_Cb, void *);
Eina_Bool elm_drop_target_del(Evas_Object *widget);
-Eina_Bool elm_drag_start(Evas_Object *, Elm_Sel_Format, const char
*, void (*)(void *,Evas_Object*),void*);
+Eina_Bool elm_drag_start(Evas_Object *, Elm_Sel_Format_Type, const
char *, void (*)(void *,Evas_Object*),void*);
#endif
Index: elementary/src/lib/elm_photo.c
===================================================================
--- elementary/src/lib/elm_photo.c (리비전 66563)
+++ elementary/src/lib/elm_photo.c (작업 사본)
@@ -189,7 +189,8 @@
/* FIXME: Deal with relative paths */
buf = malloc(strlen(file) + strlen("file://") + 1);
sprintf(buf, "%s%s","file://",file);
- elm_drag_start(objv, ELM_SEL_FORMAT_IMAGE, buf, _drag_done_cb, NULL);
+ elm_drag_start(objv, ELM_SEL_FORMAT_TYPE_IMAGE,
+ buf, _drag_done_cb, NULL);
free(buf);
}
elm_object_scroll_freeze_push(objv);
Index: elementary/src/lib/elm_cnp_helper.c
===================================================================
--- elementary/src/lib/elm_cnp_helper.c (리비전 66563)
+++ elementary/src/lib/elm_cnp_helper.c (작업 사본)
@@ -62,19 +62,19 @@
struct _Cnp_Selection
{
- const char *debug;
- Evas_Object *widget;
- char *selbuf;
- Evas_Object *requestwidget;
- void *udata;
- Elm_Sel_Format requestformat;
- Elm_Drop_Cb datacb;
+ const char *debug;
+ Evas_Object *widget;
+ char *selbuf;
+ Evas_Object *requestwidget;
+ void *udata;
+ Elm_Sel_Format_Type requestformat;
+ Elm_Drop_Cb datacb;
Eina_Bool (*set) (Ecore_X_Window, const void *data, int size);
Eina_Bool (*clear) (void);
void (*request) (Ecore_X_Window, const char *target);
- Elm_Sel_Format format;
- Ecore_X_Selection ecore_sel;
+ Elm_Sel_Format_Type format;
+ Ecore_X_Selection ecore_sel;
Eina_Bool active : 1;
};
@@ -82,7 +82,7 @@
struct _Escape
{
const char *escape;
- const char *value;
+ const char *value;
};
struct _Tmp_Info
@@ -96,7 +96,7 @@
struct _Cnp_Atom
{
const char *name;
- Elm_Sel_Format formats;
+ Elm_Sel_Format_Type formats;
/* Called by ecore to do conversion */
Converter_Fn_Cb converter;
Response_Handler_Cb response;
@@ -116,11 +116,11 @@
struct _Dropable
{
- Evas_Object *obj;
+ Evas_Object *obj;
/* FIXME: Cache window */
- Elm_Sel_Format types;
- Elm_Drop_Cb dropcb;
- void *cbdata;
+ Elm_Sel_Format_Type types;
+ Elm_Drop_Cb dropcb;
+ void *cbdata;
};
static Tmp_Info *elm_cnp_tempfile_create(int size);
@@ -168,7 +168,7 @@
static Cnp_Atom atoms[CNP_N_ATOMS] = {
[CNP_ATOM_TARGETS] = {
"TARGETS",
- ELM_SEL_TARGETS,
+ ELM_SEL_FORMAT_TYPE_TARGETS,
targets_converter,
response_handler_targets,
notify_handler_targets,
@@ -176,7 +176,7 @@
},
[CNP_ATOM_ATOM] = {
"ATOM", // for opera browser
- ELM_SEL_TARGETS,
+ ELM_SEL_FORMAT_TYPE_TARGETS,
targets_converter,
response_handler_targets,
notify_handler_targets,
@@ -184,7 +184,7 @@
},
[CNP_ATOM_XELM] = {
"application/x-elementary-markup",
- ELM_SEL_FORMAT_MARKUP,
+ ELM_SEL_FORMAT_TYPE_MARKUP,
general_converter,
NULL,
NULL,
@@ -192,7 +192,7 @@
},
[CNP_ATOM_text_uri] = {
"text/uri",
- ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_IMAGE, /* Either images or
entries */
+ ELM_SEL_FORMAT_TYPE_MARKUP | ELM_SEL_FORMAT_TYPE_IMAGE, /* Either
images or entries */
general_converter,
NULL,
notify_handler_uri,
@@ -200,7 +200,7 @@
},
[CNP_ATOM_text_urilist] = {
"text/uri-list",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
general_converter,
NULL,
notify_handler_uri,
@@ -208,13 +208,13 @@
},
[CNP_ATOM_text_x_vcard] = {
"text/x-vcard",
- ELM_SEL_FORMAT_VCARD,
+ ELM_SEL_FORMAT_TYPE_VCARD,
vcard_send, NULL,
vcard_receive, 0
},
[CNP_ATOM_image_png] = {
"image/png",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,
@@ -222,7 +222,7 @@
},
[CNP_ATOM_image_jpeg] = {
"image/jpeg",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,/* Raw image data is the same */
@@ -230,7 +230,7 @@
},
[CNP_ATOM_image_bmp] = {
"image/x-ms-bmp",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,/* Raw image data is the same */
@@ -238,7 +238,7 @@
},
[CNP_ATOM_image_gif] = {
"image/gif",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,/* Raw image data is the same */
@@ -246,7 +246,7 @@
},
[CNP_ATOM_image_tiff] = {
"image/tiff",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,/* Raw image data is the same */
@@ -254,7 +254,7 @@
},
[CNP_ATOM_image_svg] = {
"image/svg+xml",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,/* Raw image data is the same */
@@ -262,7 +262,7 @@
},
[CNP_ATOM_image_xpm] = {
"image/x-xpixmap",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,/* Raw image data is the same */
@@ -270,7 +270,7 @@
},
[CNP_ATOM_image_tga] = {
"image/x-tga",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,/* Raw image data is the same */
@@ -278,7 +278,7 @@
},
[CNP_ATOM_image_ppm] = {
"image/x-portable-pixmap",
- ELM_SEL_FORMAT_IMAGE,
+ ELM_SEL_FORMAT_TYPE_IMAGE,
image_converter,
NULL,
notify_handler_image,/* Raw image data is the same */
@@ -286,7 +286,7 @@
},
[CNP_ATOM_text_html_utf8] = {
"text/html;charset=utf-8",
- ELM_SEL_FORMAT_HTML,
+ ELM_SEL_FORMAT_TYPE_HTML,
general_converter,
NULL,
notify_handler_html,
@@ -294,7 +294,7 @@
},
[CNP_ATOM_text_html] = {
"text/html",
- ELM_SEL_FORMAT_HTML,
+ ELM_SEL_FORMAT_TYPE_HTML,
general_converter,
NULL,
notify_handler_html, /* No encoding: Webkit only */
@@ -302,7 +302,7 @@
},
[CNP_ATOM_UTF8STRING] = {
"UTF8_STRING",
- ELM_SEL_FORMAT_TEXT | ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_HTML,
+ ELM_SEL_FORMAT_TYPE_TEXT | ELM_SEL_FORMAT_TYPE_MARKUP |
ELM_SEL_FORMAT_TYPE_HTML,
text_converter,
NULL,
notify_handler_text,
@@ -310,7 +310,7 @@
},
[CNP_ATOM_STRING] = {
"STRING",
- ELM_SEL_FORMAT_TEXT | ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_HTML,
+ ELM_SEL_FORMAT_TYPE_TEXT | ELM_SEL_FORMAT_TYPE_MARKUP |
ELM_SEL_FORMAT_TYPE_HTML,
text_converter,
NULL,
notify_handler_text,
@@ -318,7 +318,7 @@
},
[CNP_ATOM_TEXT] = {
"TEXT",
- ELM_SEL_FORMAT_TEXT | ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_HTML,
+ ELM_SEL_FORMAT_TYPE_TEXT | ELM_SEL_FORMAT_TYPE_MARKUP |
ELM_SEL_FORMAT_TYPE_HTML,
text_converter,
NULL,
NULL,
@@ -326,7 +326,7 @@
},
[CNP_ATOM_text_plain_utf8] = {
"text/plain;charset=utf-8",
- ELM_SEL_FORMAT_TEXT | ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_HTML,
+ ELM_SEL_FORMAT_TYPE_TEXT | ELM_SEL_FORMAT_TYPE_MARKUP |
ELM_SEL_FORMAT_TYPE_HTML,
text_converter,
NULL,
NULL,
@@ -334,7 +334,7 @@
},
[CNP_ATOM_text_plain] = {
"text/plain",
- ELM_SEL_FORMAT_TEXT | ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_HTML,
+ ELM_SEL_FORMAT_TYPE_TEXT | ELM_SEL_FORMAT_TYPE_MARKUP |
ELM_SEL_FORMAT_TYPE_HTML,
text_converter,
NULL,
NULL,
@@ -342,29 +342,29 @@
},
};
-static Cnp_Selection selections[ELM_SEL_MAX] = {
- ARRAYINIT(ELM_SEL_PRIMARY) {
+static Cnp_Selection selections[ELM_SEL_TYPE_MAX] = {
+ ARRAYINIT(ELM_SEL_TYPE_PRIMARY) {
.debug = "Primary",
.ecore_sel = ECORE_X_SELECTION_PRIMARY,
.set = ecore_x_selection_primary_set,
.clear = ecore_x_selection_primary_clear,
.request = ecore_x_selection_primary_request,
},
- ARRAYINIT(ELM_SEL_SECONDARY) {
+ ARRAYINIT(ELM_SEL_TYPE_SECONDARY) {
.debug = "Secondary",
.ecore_sel = ECORE_X_SELECTION_SECONDARY,
.set = ecore_x_selection_secondary_set,
.clear = ecore_x_selection_secondary_clear,
.request = ecore_x_selection_secondary_request,
},
- ARRAYINIT(ELM_SEL_CLIPBOARD) {
+ ARRAYINIT(ELM_SEL_TYPE_CLIPBOARD) {
.debug = "Clipboard",
.ecore_sel = ECORE_X_SELECTION_CLIPBOARD,
.set = ecore_x_selection_clipboard_set,
.clear = ecore_x_selection_clipboard_clear,
.request = ecore_x_selection_clipboard_request,
},
- ARRAYINIT(ELM_SEL_XDND) {
+ ARRAYINIT(ELM_SEL_TYPE_XDND) {
.debug = "XDnD",
.ecore_sel = ECORE_X_SELECTION_XDND,
.request = ecore_x_selection_xdnd_request,
@@ -408,7 +408,8 @@
}
Eina_Bool
-elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget,
Elm_Sel_Format format, const char *selbuf)
+elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget,
+ Elm_Sel_Format_Type format, const void *selbuf, size_t
buflen)
{
#ifdef HAVE_ELEMENTARY_X
Evas_Object *top = elm_widget_top_get(widget);
@@ -418,9 +419,10 @@
if (top) xwin = elm_win_xwindow_get(top);
else xwin = elm_win_xwindow_get(widget);
if (!xwin) return EINA_FALSE;
- if ((unsigned int)selection >= (unsigned int)ELM_SEL_MAX) return EINA_FALSE;
+ if ((unsigned int)selection >= (unsigned int)ELM_SEL_TYPE_MAX)
+ return EINA_FALSE;
if (!_elm_cnp_init_count) _elm_cnp_init();
- if ((!selbuf) && (format != ELM_SEL_FORMAT_IMAGE))
+ if ((!selbuf) && (format != ELM_SEL_FORMAT_TYPE_IMAGE))
return elm_cnp_selection_clear(selection, widget);
sel = selections + selection;
@@ -430,8 +432,21 @@
sel->set(xwin, &selection, sizeof(Elm_Sel_Type));
sel->format = format;
- sel->selbuf = selbuf ? strdup(selbuf) : NULL;
+ if (selbuf)
+ {
+ if (format == ELM_SEL_FORMAT_TYPE_IMAGE)
+ {
+ sel->selbuf = malloc(buflen+1);
+ memcpy(sel->selbuf, selbuf, buflen);
+ }
+ else
+ sel->selbuf = strdup((char*)selbuf);
+ }
+ else
+ sel->selbuf = NULL;
+
+
return EINA_TRUE;
#else
return EINA_FALSE;
@@ -444,7 +459,8 @@
#ifdef HAVE_ELEMENTARY_X
Cnp_Selection *sel;
- if ((unsigned int)selection >= (unsigned int)ELM_SEL_MAX) return EINA_FALSE;
+ if ((unsigned int)selection >= (unsigned int)ELM_SEL_TYPE_MAX)
+ return EINA_FALSE;
if (!_elm_cnp_init_count) _elm_cnp_init();
sel = selections + selection;
@@ -454,6 +470,9 @@
sel->active = EINA_FALSE;
sel->widget = NULL;
+ if (sel->selbuf)
+ free(sel->selbuf);
+ sel->selbuf = NULL;
sel->clear();
return EINA_TRUE;
@@ -463,14 +482,15 @@
}
Eina_Bool
-elm_cnp_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format,
- Evas_Object *widget, Elm_Drop_Cb datacb, void *udata)
+elm_cnp_selection_get(Elm_Sel_Type selection, Elm_Sel_Format_Type format,
+ Evas_Object *widget, Elm_Drop_Cb datacb, void *udata)
{
#ifdef HAVE_ELEMENTARY_X
Evas_Object *top;
Cnp_Selection *sel;
- if ((unsigned int)selection >= (unsigned int)ELM_SEL_MAX) return EINA_FALSE;
+ if ((unsigned int)selection >= (unsigned int)ELM_SEL_TYPE_MAX)
+ return EINA_FALSE;
if (!_elm_cnp_init_count) _elm_cnp_init();
sel = selections + selection;
@@ -518,17 +538,19 @@
Cnp_Selection *sel;
int i;
- for (i = 0; i < ELM_SEL_MAX; i++)
+ for (i = 0; i < ELM_SEL_TYPE_MAX; i++)
{
if (selections[i].ecore_sel == ev->selection) break;
}
cnp_debug("selection %d clear\n", i);
/* Not me... Don't care */
- if (i == ELM_SEL_MAX) return ECORE_CALLBACK_PASS_ON;
+ if (i == ELM_SEL_TYPE_MAX) return ECORE_CALLBACK_PASS_ON;
sel = selections + i;
- sel->active = 0;
+ sel->active = EINA_FALSE;
sel->widget = NULL;
+ if (sel->selbuf)
+ free(sel->selbuf);
sel->selbuf = NULL;
return ECORE_CALLBACK_PASS_ON;
@@ -552,16 +574,16 @@
switch (ev->selection)
{
case ECORE_X_SELECTION_CLIPBOARD:
- sel = selections + ELM_SEL_CLIPBOARD;
+ sel = selections + ELM_SEL_TYPE_CLIPBOARD;
break;
case ECORE_X_SELECTION_PRIMARY:
- sel = selections + ELM_SEL_PRIMARY;
+ sel = selections + ELM_SEL_TYPE_PRIMARY;
break;
case ECORE_X_SELECTION_SECONDARY:
- sel = selections + ELM_SEL_SECONDARY;
+ sel = selections + ELM_SEL_TYPE_SECONDARY;
break;
case ECORE_X_SELECTION_XDND:
- sel = selections + ELM_SEL_XDND;
+ sel = selections + ELM_SEL_TYPE_XDND;
break;
default:
return ECORE_CALLBACK_PASS_ON;
@@ -587,7 +609,7 @@
return ECORE_CALLBACK_PASS_ON;
}
-static Elm_Sel_Format
+static Elm_Sel_Format_Type
_get_selection_type(void *data, int size)
{
if (size == sizeof(Elm_Sel_Type))
@@ -595,10 +617,11 @@
Cnp_Selection *sel;
sel = selections + *((int *)data);
if (sel->active &&
- (sel->format >= ELM_SEL_TARGETS) && (sel->format <
ELM_SEL_FORMAT_MAX))
+ (sel->format >= ELM_SEL_FORMAT_TYPE_TARGETS) &&
+ (sel->format < ELM_SEL_FORMAT_TYPE_MAX))
return sel->format;
}
- return ELM_SEL_FORMAT_NONE;
+ return ELM_SEL_FORMAT_TYPE_NONE;
}
static Eina_Bool
@@ -607,14 +630,14 @@
int i,count;
Ecore_X_Atom *aret;
Cnp_Selection *sel;
- Elm_Sel_Format seltype;
+ Elm_Sel_Format_Type seltype;
if (!data_ret) return EINA_FALSE;
- if (_get_selection_type(data, size) == ELM_SEL_FORMAT_NONE)
+ if (_get_selection_type(data, size) == ELM_SEL_FORMAT_TYPE_NONE)
{
/* TODO : fallback into precise type */
- seltype = ELM_SEL_FORMAT_TEXT;
+ seltype = ELM_SEL_FORMAT_TYPE_TEXT;
}
else
{
@@ -782,7 +805,7 @@
Elm_Selection_Data ddata;
ddata.x = ddata.y = 0;
- ddata.format = ELM_SEL_FORMAT_TEXT;
+ ddata.format = ELM_SEL_FORMAT_TYPE_TEXT;
ddata.data = data->data;
ddata.len = data->length;
sel->datacb(sel->udata, sel->widget, &ddata);
@@ -876,7 +899,7 @@
data = notify->data;
cnp_debug("vcard receive\n");
- if (sel == (selections + ELM_SEL_XDND))
+ if (sel == (selections + ELM_SEL_TYPE_XDND))
{
Elm_Selection_Data ddata;
@@ -895,7 +918,7 @@
dropable = eina_list_data_get(l);
ddata.x = savedtypes.x;
ddata.y = savedtypes.y;
- ddata.format = ELM_SEL_FORMAT_VCARD;
+ ddata.format = ELM_SEL_FORMAT_TYPE_VCARD;
ddata.data = data->data;
ddata.len = data->length;
dropable->dropcb(dropable->cbdata, dropable->obj, &ddata);
@@ -905,7 +928,7 @@
{
Elm_Selection_Data ddata;
ddata.x = ddata.y = 0;
- ddata.format = ELM_SEL_FORMAT_IMAGE;
+ ddata.format = ELM_SEL_FORMAT_TYPE_IMAGE;
ddata.data = data->data;
ddata.len = data->length;
sel->datacb(sel->udata, sel->widget, &ddata);
@@ -936,7 +959,7 @@
Elm_Selection_Data ddata;
ddata.x = ddata.y = 0;
- ddata.format = ELM_SEL_FORMAT_IMAGE;
+ ddata.format = ELM_SEL_FORMAT_TYPE_IMAGE;
ddata.data = data->data;
ddata.len = data->length;
sel->datacb(sel->udata, sel->widget, &ddata);
@@ -973,7 +996,7 @@
{
Elm_Selection_Data ddata;
ddata.x = ddata.y = 0;
- ddata.format = ELM_SEL_FORMAT_HTML;
+ ddata.format = ELM_SEL_FORMAT_TYPE_HTML;
ddata.data = data->data;
ddata.len = data->length;
sel->datacb(sel->udata, sel->widget, &ddata);
@@ -997,7 +1020,7 @@
Cnp_Selection *sel;
cnp_debug("text converter\n");
- if (_get_selection_type(data, size) == ELM_SEL_FORMAT_NONE)
+ if (_get_selection_type(data, size) == ELM_SEL_FORMAT_TYPE_NONE)
{
if (data_ret)
{
@@ -1011,17 +1034,17 @@
sel = selections + *((int *)data);
if (!sel->active) return EINA_TRUE;
- if ((sel->format & ELM_SEL_FORMAT_MARKUP) ||
- (sel->format & ELM_SEL_FORMAT_HTML))
+ if ((sel->format & ELM_SEL_FORMAT_TYPE_MARKUP) ||
+ (sel->format & ELM_SEL_FORMAT_TYPE_HTML))
{
*data_ret = remove_tags(sel->selbuf, size_ret);
}
- else if (sel->format & ELM_SEL_FORMAT_TEXT)
+ else if (sel->format & ELM_SEL_FORMAT_TYPE_TEXT)
{
*data_ret = strdup(sel->selbuf);
*size_ret = strlen(sel->selbuf);
}
- else if (sel->format & ELM_SEL_FORMAT_IMAGE)
+ else if (sel->format & ELM_SEL_FORMAT_TYPE_IMAGE)
{
cnp_debug("Image %s\n", evas_object_type_get(sel->widget));
cnp_debug("Elm type: %s\n", elm_object_widget_type_get(sel->widget));
@@ -1036,7 +1059,7 @@
static Eina_Bool
general_converter(char *target __UNUSED__, void *data, int size, void
**data_ret, int *size_ret, Ecore_X_Atom *ttype __UNUSED__, int *typesize
__UNUSED__)
{
- if (_get_selection_type(data, size) == ELM_SEL_FORMAT_NONE)
+ if (_get_selection_type(data, size) == ELM_SEL_FORMAT_TYPE_NONE)
{
if (data_ret)
{
@@ -1325,11 +1348,11 @@
ddata.y = savedtypes.y;
/* If it's markup that also supports images */
- if ((dropable->types & ELM_SEL_FORMAT_MARKUP) &&
- (dropable->types & ELM_SEL_FORMAT_IMAGE))
+ if ((dropable->types & ELM_SEL_FORMAT_TYPE_MARKUP) &&
+ (dropable->types & ELM_SEL_FORMAT_TYPE_IMAGE))
{
int len;
- ddata.format = ELM_SEL_FORMAT_MARKUP;
+ ddata.format = ELM_SEL_FORMAT_TYPE_MARKUP;
len = strlen(tagstring) + strlen(savedtypes.imgfile);
entrytag = alloca(len + 1);
@@ -1343,10 +1366,10 @@
return EINA_TRUE;
}
- else if (dropable->types & ELM_SEL_FORMAT_IMAGE)
+ else if (dropable->types & ELM_SEL_FORMAT_TYPE_IMAGE)
{
cnp_debug("Doing image insert (%s)\n", savedtypes.imgfile);
- ddata.format = ELM_SEL_FORMAT_IMAGE;
+ ddata.format = ELM_SEL_FORMAT_TYPE_IMAGE;
ddata.data = (char *)savedtypes.imgfile;
dropable->dropcb(dropable->cbdata, dropable->obj, &ddata);
ecore_x_dnd_send_finished();
@@ -1372,9 +1395,9 @@
}
cnp_debug("doing a request then\n");
- selections[ELM_SEL_XDND].requestwidget = dropable->obj;
- selections[ELM_SEL_XDND].requestformat = ELM_SEL_FORMAT_MARKUP;
- selections[ELM_SEL_XDND].active = EINA_TRUE;
+ selections[ELM_SEL_TYPE_XDND].requestwidget = dropable->obj;
+ selections[ELM_SEL_TYPE_XDND].requestformat = ELM_SEL_FORMAT_TYPE_MARKUP;
+ selections[ELM_SEL_TYPE_XDND].active = EINA_TRUE;
ecore_x_selection_xdnd_request(xwin, atoms[i].name);
@@ -1545,7 +1568,7 @@
ecore_x_dnd_drop();
if (dragdonecb)
{
- dragdonecb(dragdonecb,selections[ELM_SEL_XDND].widget);
+ dragdonecb(dragdonecb,selections[ELM_SEL_TYPE_XDND].widget);
dragdonecb = NULL;
}
if (dragwin)
@@ -1565,11 +1588,11 @@
Eina_Bool
-elm_drag_start(Evas_Object *obj, Elm_Sel_Format format, const char *data, void
(*dragdone) (void *data, Evas_Object *), void *donecbdata)
+elm_drag_start(Evas_Object *obj, Elm_Sel_Format_Type format, const char *data,
void (*dragdone) (void *data, Evas_Object *), void *donecbdata)
{
Ecore_X_Window xwin;
Cnp_Selection *sel;
- Elm_Sel_Type xdnd = ELM_SEL_XDND;
+ Elm_Sel_Type xdnd = ELM_SEL_TYPE_XDND;
Ecore_Evas *ee;
int x, y, x2, y2, x3, y3;
Evas_Object *icon;
@@ -1582,7 +1605,7 @@
cnp_debug("starting drag...\n");
ecore_x_dnd_type_set(xwin, "text/uri-list", 1);
- sel = selections + ELM_SEL_XDND;
+ sel = selections + ELM_SEL_TYPE_XDND;
sel->active = 1;
sel->widget = obj;
sel->format = format;
@@ -1727,7 +1750,7 @@
#else
/* Stubs for windows */
Eina_Bool
-elm_drag_start(Evas_Object *o, Elm_Sel_Format f, const char *d, void
(*donecb)(void *, Evas_Object *),void *cbdata)
+elm_drag_start(Evas_Object *o, Elm_Sel_Format_Type f, const char *d, void
(*donecb)(void *, Evas_Object *),void *cbdata)
{
return EINA_FALSE;
}
Index: elementary/src/lib/elm_thumb.c
===================================================================
--- elementary/src/lib/elm_thumb.c (리비전 66563)
+++ elementary/src/lib/elm_thumb.c (작업 사본)
@@ -706,7 +706,7 @@
wd->edit = edit;
if (wd->edit)
- elm_drop_target_add(obj, ELM_SEL_FORMAT_IMAGE,
+ elm_drop_target_add(obj, ELM_SEL_FORMAT_TYPE_IMAGE,
_elm_thumb_dropcb, obj);
else
elm_drop_target_del(obj);
Index: elementary/src/lib/els_icon.c
===================================================================
--- elementary/src/lib/els_icon.c (리비전 66563)
+++ elementary/src/lib/els_icon.c (작업 사본)
@@ -465,7 +465,7 @@
sd->edit = edit;
if (sd->edit)
- elm_drop_target_add(obj, ELM_SEL_FORMAT_IMAGE, _els_smart_icon_dropcb,
+ elm_drop_target_add(obj, ELM_SEL_FORMAT_TYPE_IMAGE,
_els_smart_icon_dropcb,
parent);
else
elm_drop_target_del(obj);
Index: elementary/src/lib/Elementary.h.in
===================================================================
--- elementary/src/lib/Elementary.h.in (리비전 66563)
+++ elementary/src/lib/Elementary.h.in (작업 사본)
@@ -30414,40 +30414,40 @@
typedef enum _Elm_Sel_Type
{
- ELM_SEL_PRIMARY,
- ELM_SEL_SECONDARY,
- ELM_SEL_CLIPBOARD,
- ELM_SEL_XDND,
+ ELM_SEL_TYPE_PRIMARY,
+ ELM_SEL_TYPE_SECONDARY,
+ ELM_SEL_TYPE_CLIPBOARD,
+ ELM_SEL_TYPE_XDND,
- ELM_SEL_MAX,
+ ELM_SEL_TYPE_MAX,
} Elm_Sel_Type;
- typedef enum _Elm_Sel_Format
+ typedef enum _Elm_Sel_Format_Type
{
/** Targets: for matching every atom requesting */
- ELM_SEL_TARGETS = -1,
+ ELM_SEL_FORMAT_TYPE_TARGETS = -1,
/** they come from outside of elm */
- ELM_SEL_FORMAT_NONE = 0x0,
+ ELM_SEL_FORMAT_TYPE_NONE = 0x0,
/** Plain unformated text: Used for things that don't want rich markup */
- ELM_SEL_FORMAT_TEXT = 0x01,
+ ELM_SEL_FORMAT_TYPE_TEXT = 0x01,
/** Edje textblock markup, including inline images */
- ELM_SEL_FORMAT_MARKUP = 0x02,
+ ELM_SEL_FORMAT_TYPE_MARKUP = 0x02,
/** Images */
- ELM_SEL_FORMAT_IMAGE = 0x04,
+ ELM_SEL_FORMAT_TYPE_IMAGE = 0x04,
/** Vcards */
- ELM_SEL_FORMAT_VCARD = 0x08,
+ ELM_SEL_FORMAT_TYPE_VCARD = 0x08,
/** Raw HTMLish things for widgets that want that stuff (hello webkit!)
*/
- ELM_SEL_FORMAT_HTML = 0x10,
+ ELM_SEL_FORMAT_TYPE_HTML = 0x10,
- ELM_SEL_FORMAT_MAX
- } Elm_Sel_Format;
+ ELM_SEL_FORMAT_TYPE_MAX
+ } Elm_Sel_Format_Type;
struct _Elm_Selection_Data
{
int x, y;
- Elm_Sel_Format format;
+ Elm_Sel_Format_Type format;
void *data;
- int len;
+ size_t len;
};
/**
@@ -30466,7 +30466,7 @@
*
*/
- EAPI Eina_Bool elm_cnp_selection_set(Elm_Sel_Type selection,
Evas_Object *widget, Elm_Sel_Format format, const char *buf);
+ EAPI Eina_Bool elm_cnp_selection_set(Elm_Sel_Type selection,
Evas_Object *widget, Elm_Sel_Format_Type format, const void *buf, size_t
buflen);
/**
* @brief Retrive the data from the widget which is set for copying and
pasting.
@@ -30487,7 +30487,7 @@
*
*/
- EAPI Eina_Bool elm_cnp_selection_get(Elm_Sel_Type selection,
Elm_Sel_Format format, Evas_Object *widget, Elm_Drop_Cb datacb, void *udata);
+ EAPI Eina_Bool elm_cnp_selection_get(Elm_Sel_Type selection,
Elm_Sel_Format_Type format, Evas_Object *widget, Elm_Drop_Cb datacb, void
*udata);
/**
* @brief Clear the data in the widget which is set for copying and pasting.
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create
new or port existing apps to sell to consumers worldwide. Explore the
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel