2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @addtogroup CopyPaste
|
|
|
|
* @{
|
|
|
|
*/
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
typedef struct _Elm_Selection_Data Elm_Selection_Data;
|
|
|
|
typedef Eina_Bool (*Elm_Drop_Cb)(void *d, Evas_Object *o, Elm_Selection_Data *data);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-30 01:41:11 -08:00
|
|
|
typedef enum
|
2011-12-29 23:20:48 -08:00
|
|
|
{
|
|
|
|
ELM_SEL_TYPE_PRIMARY,
|
|
|
|
ELM_SEL_TYPE_SECONDARY,
|
|
|
|
ELM_SEL_TYPE_CLIPBOARD,
|
|
|
|
ELM_SEL_TYPE_XDND,
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
ELM_SEL_TYPE_MAX,
|
|
|
|
} Elm_Sel_Type;
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-30 01:41:11 -08:00
|
|
|
typedef enum
|
2011-12-29 23:20:48 -08:00
|
|
|
{
|
|
|
|
/** Targets: for matching every atom requesting */
|
|
|
|
ELM_SEL_FORMAT_TARGETS = -1,
|
|
|
|
/** they come from outside of elm */
|
|
|
|
ELM_SEL_FORMAT_NONE = 0x0,
|
2012-02-14 00:50:26 -08:00
|
|
|
/** Plain unformatted text: Used for things that don't want rich markup */
|
2011-12-29 23:20:48 -08:00
|
|
|
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,
|
2012-02-14 00:50:26 -08:00
|
|
|
/** Raw HTML-like things for widgets that want that stuff (hello webkit!) */
|
2011-12-29 23:20:48 -08:00
|
|
|
ELM_SEL_FORMAT_HTML = 0x10,
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
ELM_SEL_FORMAT_MAX
|
|
|
|
} Elm_Sel_Format;
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
struct _Elm_Selection_Data
|
|
|
|
{
|
|
|
|
int x, y;
|
|
|
|
Elm_Sel_Format format;
|
|
|
|
void *data;
|
|
|
|
size_t len;
|
|
|
|
};
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @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
|
|
|
|
*
|
|
|
|
*/
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
EAPI Eina_Bool elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget, Elm_Sel_Format format, const void *buf, size_t buflen);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
2012-02-14 00:50:26 -08:00
|
|
|
* @brief Retrieve the data from the widget which is set for copying and pasting.
|
2011-12-29 23:20:48 -08:00
|
|
|
*
|
|
|
|
* 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
|
2012-02-14 00:50:26 -08:00
|
|
|
* can be NULL. If not, @p datacb and @p udata are used for retrieving data.
|
2011-12-29 23:20:48 -08:00
|
|
|
*
|
|
|
|
* @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
|
|
|
|
*
|
|
|
|
*/
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
EAPI Eina_Bool elm_cnp_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format, Evas_Object *widget, Elm_Drop_Cb datacb, void *udata);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @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
|
|
|
|
*
|
|
|
|
*/
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
EAPI Eina_Bool elm_cnp_selection_clear(Elm_Sel_Type selection, Evas_Object *widget);
|
2011-12-29 22:49:28 -08:00
|
|
|
|
2011-12-29 23:20:48 -08:00
|
|
|
/**
|
|
|
|
* @}
|
|
|
|
*/
|