* @}
*/
+ /**
+ * @addtogroup CopyPaste
+ * @{
+ */
+
+ typedef struct _Elm_Selection_Data Elm_Selection_Data;
+ typedef Eina_Bool (*Elm_Drop_Cb) (void *d, Evas_Object *o, Elm_Selection_Data *data);
+
+ typedef enum _Elm_Sel_Type
+ {
+ ELM_SEL_PRIMARY,
+ ELM_SEL_SECONDARY,
+ ELM_SEL_CLIPBOARD,
+ ELM_SEL_XDND,
+
+ ELM_SEL_MAX,
+ } Elm_Sel_Type;
+
+ typedef enum _Elm_Sel_Format
+ {
+ /** Targets: for matching every atom requesting */
+ ELM_SEL_TARGETS = -1,
+ /** they come from outside of elm */
+ ELM_SEL_FORMAT_NONE = 0x0,
+ /** Plain unformated text: Used for things that don't want rich markup */
+ ELM_SEL_FORMAT_TEXT = 0x01,
+ /** Edje textblock markup, including inline images */
+ ELM_SEL_FORMAT_MARKUP = 0x02,
+ /** Images */
+ ELM_SEL_FORMAT_IMAGE = 0x04,
+ /** Vcards */
+ ELM_SEL_FORMAT_VCARD = 0x08,
+ /** Raw HTMLish things for widgets that want that stuff (hello webkit!) */
+ ELM_SEL_FORMAT_HTML = 0x10,
+
+ ELM_SEL_FORMAT_MAX
+ } Elm_Sel_Format;
+
+ struct _Elm_Selection_Data
+ {
+ int x, y;
+ Elm_Sel_Format format;
+ void *data;
+ int len;
+ };
+
+ /**
+ * @brief Set a data of a widget to copy and paste.
+ *
+ * Append the given callback to the list. This functions will be called
+ * called.
+ *
+ * @param selection selection type for copying and pasting
+ * @param widget The source widget pointer
+ * @param format Type of selection format
+ * @param buf The pointer of data source
+ * @return If EINA_TRUE, setting data is success.
+ *
+ * @ingroup CopyPaste
+ *
+ */
+
+ EAPI Eina_Bool elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Format format, const char *buf);
+
+ /**
+ * @brief Retrive the data from the widget which is set for copying and pasting.
+ *
+ * Getting the data from the widget which is set for copying and pasting.
+ * Mainly the widget is elm_entry. If then @p datacb and @p udata are
+ * can be NULL. If not, @p datacb and @p udata are used for retriving data.
+ *
+ * @see also elm_cnp_selection_set()
+ *
+ * @param selection selection type for copying and pasting
+ * @param widget The source widget pointer
+ * @param datacb The user data callback if the target widget isn't elm_entry
+ * @param udata The user data pointer for @p datacb
+ * @return If EINA_TRUE, getting data is success.
+ *
+ * @ingroup CopyPaste
+ *
+ */
+
+ EAPI Eina_Bool elm_cnp_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format, Evas_Object *widget, Elm_Drop_Cb datacb, void *udata);
+
+ /**
+ * @brief Clear the data in the widget which is set for copying and pasting.
+ *
+ * Clear the data in the widget. Normally this function isn't need to call.
+ *
+ * @see also elm_cnp_selection_set()
+ *
+ * @param selection selection type for copying and pasting
+ * @param widget The source widget pointer
+ * @return If EINA_TRUE, clearing data is success.
+ *
+ * @ingroup CopyPaste
+ *
+ */
+
+ EAPI Eina_Bool elm_cnp_selection_clear(Elm_Sel_Type selection, Evas_Object *widget);
+
+ /**
+ * @}
+ */
+
#ifdef __cplusplus
}
#endif
}
Eina_Bool
-elm_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 format, const char *selbuf)
{
#ifdef HAVE_ELEMENTARY_X
Evas_Object *top = elm_widget_top_get(widget);
if ((unsigned int)selection >= (unsigned int)ELM_SEL_MAX) return EINA_FALSE;
if (!_elm_cnp_init_count) _elm_cnp_init();
if ((!selbuf) && (format != ELM_SEL_FORMAT_IMAGE))
- return elm_selection_clear(selection, widget);
+ return elm_cnp_selection_clear(selection, widget);
sel = selections + selection;
}
Eina_Bool
-elm_selection_clear(Elm_Sel_Type selection, Evas_Object *widget)
+elm_cnp_selection_clear(Elm_Sel_Type selection, Evas_Object *widget)
{
#ifdef HAVE_ELEMENTARY_X
Cnp_Selection *sel;
}
Eina_Bool
-elm_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format,
+elm_cnp_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format,
Evas_Object *widget, Elm_Drop_Cb datacb, void *udata)
{
#ifdef HAVE_ELEMENTARY_X
formats = ELM_SEL_FORMAT_MARKUP;
if (!wd->textonly)
formats |= ELM_SEL_FORMAT_IMAGE;
- elm_selection_get(ELM_SEL_CLIPBOARD, formats, data, NULL, NULL);
+ elm_cnp_selection_get(ELM_SEL_CLIPBOARD, formats, data, NULL, NULL);
#endif
}
}
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_selection_set(seltype, obj, ELM_SEL_FORMAT_MARKUP, sel);
+ elm_cnp_selection_set(seltype, obj, ELM_SEL_FORMAT_MARKUP, sel);
if (seltype == ELM_SEL_CLIPBOARD)
eina_stringshare_replace(&wd->cut_sel, sel);
}
top = elm_widget_top_get(data);
if ((top) && (elm_win_xwindow_get(top)))
- elm_selection_set(ELM_SEL_PRIMARY, data, ELM_SEL_FORMAT_MARKUP, txt);
+ elm_cnp_selection_set(ELM_SEL_PRIMARY, data, ELM_SEL_FORMAT_MARKUP, txt);
}
#endif
}
top = elm_widget_top_get(data);
if ((top) && (elm_win_xwindow_get(top)))
- elm_selection_set(ELM_SEL_PRIMARY, data, ELM_SEL_FORMAT_MARKUP,
+ elm_cnp_selection_set(ELM_SEL_PRIMARY, data, ELM_SEL_FORMAT_MARKUP,
wd->cut_sel);
#endif
eina_stringshare_del(wd->cut_sel);
top = elm_widget_top_get(data);
if ((top) && (elm_win_xwindow_get(top)))
- elm_selection_clear(ELM_SEL_PRIMARY, data);
+ elm_cnp_selection_clear(ELM_SEL_PRIMARY, data);
#endif
}
}
if ((top) && (elm_win_xwindow_get(top)))
{
wd->selection_asked = EINA_TRUE;
- elm_selection_get(type, ELM_SEL_FORMAT_MARKUP, data,
+ elm_cnp_selection_get(type, ELM_SEL_FORMAT_MARKUP, data,
NULL, NULL);
}
#endif
* And yes, elm_widget, should probably be elm_experimental...
* Complaints about this code should go to /dev/null, or failing that nash.
*/
-typedef struct _Elm_Selection_Data Elm_Selection_Data;
-
-typedef Eina_Bool (*Elm_Drop_Cb) (void *d, Evas_Object *o, Elm_Selection_Data *data);
-
-typedef enum _Elm_Sel_Type
-{
- ELM_SEL_PRIMARY,
- ELM_SEL_SECONDARY,
- ELM_SEL_CLIPBOARD,
- ELM_SEL_XDND,
-
- ELM_SEL_MAX,
-} Elm_Sel_Type;
-
-typedef enum _Elm_Sel_Format
-{
- /** Targets: for matching every atom requesting */
- ELM_SEL_TARGETS = -1,
- /** they come from outside of elm */
- ELM_SEL_FORMAT_NONE = 0x0,
- /** Plain unformated text: Used for things that don't want rich markup */
- ELM_SEL_FORMAT_TEXT = 0x01,
- /** Edje textblock markup, including inline images */
- ELM_SEL_FORMAT_MARKUP = 0x02,
- /** Images */
- ELM_SEL_FORMAT_IMAGE = 0x04,
- /** Vcards */
- ELM_SEL_FORMAT_VCARD = 0x08,
- /** Raw HTMLish things for widgets that want that stuff (hello webkit!) */
- ELM_SEL_FORMAT_HTML = 0x10,
-
- ELM_SEL_FORMAT_MAX
-} Elm_Sel_Format;
-
-struct _Elm_Selection_Data
-{
- int x, y;
- Elm_Sel_Format format;
- void *data;
- int len;
-};
-
-Eina_Bool elm_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Format format, const char *buf);
-Eina_Bool elm_selection_clear(Elm_Sel_Type selection, Evas_Object *widget);
-Eina_Bool elm_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format, Evas_Object *widget, Elm_Drop_Cb datacb, void *udata);
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);