frankly speaking, i didn't care of cnp apis. some are too much coupled with ecore_x. and other things are not updated. After reviewing i'll make two patches first patch is updating docs and infos. and other patch will contain decoupling with elm_entry and ecore_x.
On Thu, Feb 16, 2012 at 4:10 PM, Daniel Juyung Seo <seojuyu...@gmail.com> wrote: > ihyoyoung, > can you please add some comments on elm_cnp documentation? > I have no knowledge about copy and paste, and it's hard to understand with > current description. > Thanks in advance. > > Daniel Juyung Seo (SeoZ) > > On Thu, Feb 16, 2012 at 4:06 PM, Enlightenment SVN < > no-re...@enlightenment.org> wrote: > >> Log: >> elm cnp: Reviewed cnp APIs. Many things need to be changed. >> >> Signed-off-by: Daniel Juyung Seo <juyung....@samsung.com> >> >> Author: seoz >> Date: 2012-02-15 23:06:13 -0800 (Wed, 15 Feb 2012) >> New Revision: 68007 >> Trac: http://trac.enlightenment.org/e/changeset/68007 >> >> Modified: >> trunk/elementary/src/lib/Elementary.h.intrunk/elementary/src/lib/elm_cnp.h >> trunk/elementary/src/lib/elm_cnp_helper.c >> >> Modified: trunk/elementary/src/lib/Elementary.h.in >> =================================================================== >> --- trunk/elementary/src/lib/Elementary.h.in 2012-02-16 07:06:09 UTC >> (rev 68006) >> +++ trunk/elementary/src/lib/Elementary.h.in 2012-02-16 07:06:13 UTC >> (rev 68007) >> @@ -184,7 +184,7 @@ >> #include <elm_calendar.h> >> #include <elm_check.h> >> #include <elm_clock.h> >> -#include <elm_cnp.h> >> +#include <elm_cnp.h> // comments in elm_cnp.h >> #include <elm_colorselector.h> >> #include <elm_config.h> >> #include <elm_conform.h> >> >> Modified: trunk/elementary/src/lib/elm_cnp.h >> =================================================================== >> --- trunk/elementary/src/lib/elm_cnp.h 2012-02-16 07:06:09 UTC (rev 68006) >> +++ trunk/elementary/src/lib/elm_cnp.h 2012-02-16 07:06:13 UTC (rev 68007) >> @@ -45,13 +45,13 @@ >> }; >> >> /** >> - * @brief Set a data of a widget to copy and paste. >> + * @brief Set copy and paste data to a widget. >> * >> - * Append the given callback to the list. This functions will be called >> - * called. >> + * XXX: need to be rewritten. >> + * Append the given callback to the list. This functions will be called. >> * >> - * @param selection selection type for copying and pasting >> - * @param widget The source widget pointer >> + * @param selection Selection type for copying and pasting >> + * @param obj 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. >> @@ -59,20 +59,24 @@ >> * @ingroup CopyPaste >> * >> */ >> +// XXX: EAPI void elm_object_cnp_selection_set(Evas_Object *obj, >> Elm_Sel_Type selection, >> +// Elm_Sel_Format format, >> const void *buf, >> +// size_t buflen); >> +EAPI Eina_Bool elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object >> *obj, >> + Elm_Sel_Format format, const void >> *buf, >> + size_t buflen); >> >> -EAPI Eina_Bool elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object >> *widget, Elm_Sel_Format format, const void *buf, size_t buflen); >> - >> /** >> - * @brief Retrieve the data from the widget which is set for copying and >> pasting. >> + * @brief Retrieve the copy and paste data from the widget. >> * >> - * 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 retrieving >> data. >> + * Gets 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 can be >> NULL. >> + * If not, @p datacb and @p udata are used for retrieving data. >> * >> * @see also elm_cnp_selection_set() >> * >> - * @param selection selection type for copying and pasting >> - * @param widget The source widget pointer >> + * @param selection Selection type for copying and pasting >> + * @param obj 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. >> @@ -80,26 +84,38 @@ >> * @ingroup CopyPaste >> * >> */ >> +// XXX: This api needs to be refined by cnp experts. >> +// I suggest: >> +// 1. return copy and paste data. >> +// 2. call cnp callback regardless of widget type. >> +// 3. apps insert text data into entry manually. >> +// XXX: EAPI void *elm_object_cnp_selection_get(Evas_Object *obj, >> +// Elm_Sel_Type selection, >> +// Elm_Sel_Format format, >> +// Elm_Cnp_Cb datacb); >> +EAPI Eina_Bool elm_cnp_selection_get(Elm_Sel_Type selection, >> + Elm_Sel_Format format, Evas_Object >> *obj, >> + Elm_Drop_Cb datacb, void *udata); >> >> -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. >> + * @brief Clear the copy and paste data in the widget. >> * >> * 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 selection Selection type for copying and pasting >> * @param widget The source widget pointer >> * @return If EINA_TRUE, clearing data is success. >> * >> * @ingroup CopyPaste >> * >> */ >> +// XXX: EAPI void elm_object_cnp_selection_clear(Evas_Object *obj, >> +// Elm_Sel_Type selection); >> +EAPI Eina_Bool elm_cnp_selection_clear(Elm_Sel_Type selection, >> + Evas_Object *obj); >> >> -EAPI Eina_Bool elm_cnp_selection_clear(Elm_Sel_Type selection, >> Evas_Object *widget); >> - >> /** >> * @} >> */ >> >> Modified: trunk/elementary/src/lib/elm_cnp_helper.c >> =================================================================== >> --- trunk/elementary/src/lib/elm_cnp_helper.c 2012-02-16 07:06:09 UTC >> (rev 68006) >> +++ trunk/elementary/src/lib/elm_cnp_helper.c 2012-02-16 07:06:13 UTC >> (rev 68007) >> @@ -389,27 +389,27 @@ >> #endif >> } >> >> -Eina_Bool >> -elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *widget, >> +EAPI Eina_Bool >> +elm_cnp_selection_set(Elm_Sel_Type selection, Evas_Object *obj, >> Elm_Sel_Format format, const void *selbuf, size_t >> buflen) >> { >> #ifdef HAVE_ELEMENTARY_X >> - Evas_Object *top = elm_widget_top_get(widget); >> + Evas_Object *top = elm_widget_top_get(obj); >> Ecore_X_Window xwin; >> Cnp_Selection *sel; >> >> if (top) xwin = elm_win_xwindow_get(top); >> - else xwin = elm_win_xwindow_get(widget); >> + else xwin = elm_win_xwindow_get(obj); >> if ((!xwin) || (selection >= ELM_SEL_TYPE_MAX)) >> return EINA_FALSE; >> if (!_elm_cnp_init_count) _elm_cnp_init(); >> if ((!selbuf) && (format != ELM_SEL_FORMAT_IMAGE)) >> - return elm_cnp_selection_clear(selection, widget); >> + return elm_cnp_selection_clear(selection, obj); >> >> sel = selections + selection; >> >> sel->active = EINA_TRUE; >> - sel->widget = widget; >> + sel->widget = obj; >> sel->set(xwin, &selection, sizeof(Elm_Sel_Type)); >> sel->format = format; >> >> @@ -432,8 +432,8 @@ >> #endif >> } >> >> -Eina_Bool >> -elm_cnp_selection_clear(Elm_Sel_Type selection, Evas_Object *widget) >> +EAPI Eina_Bool >> +elm_cnp_selection_clear(Elm_Sel_Type selection, Evas_Object *obj) >> { >> #ifdef HAVE_ELEMENTARY_X >> Cnp_Selection *sel; >> @@ -445,7 +445,7 @@ >> sel = selections + selection; >> >> /* No longer this selection: Consider it gone! */ >> - if ((!sel->active) || (sel->widget != widget)) return EINA_TRUE; >> + if ((!sel->active) || (sel->widget != obj)) return EINA_TRUE; >> >> sel->active = EINA_FALSE; >> sel->widget = NULL; >> @@ -462,9 +462,9 @@ >> #endif >> } >> >> -Eina_Bool >> +EAPI Eina_Bool >> elm_cnp_selection_get(Elm_Sel_Type selection, Elm_Sel_Format format, >> - Evas_Object *widget, Elm_Drop_Cb datacb, void >> *udata) >> + Evas_Object *obj, Elm_Drop_Cb datacb, void *udata) >> { >> #ifdef HAVE_ELEMENTARY_X >> Evas_Object *top; >> @@ -475,11 +475,11 @@ >> if (!_elm_cnp_init_count) _elm_cnp_init(); >> >> sel = selections + selection; >> - top = elm_widget_top_get(widget); >> + top = elm_widget_top_get(obj); >> if (!top) return EINA_FALSE; >> >> sel->requestformat = format; >> - sel->requestwidget = widget; >> + sel->requestwidget = obj; >> sel->request(elm_win_xwindow_get(top), >> ECORE_X_SELECTION_TARGET_TARGETS); >> sel->datacb = datacb; >> sel->udata = udata; >> >> >> >> ------------------------------------------------------------------------------ >> Virtualization & Cloud Management Using Capacity Planning >> Cloud computing makes use of virtualization - but cloud computing >> also focuses on allowing computing to be delivered as a service. >> http://www.accelacomm.com/jaw/sfnl/114/51521223/ >> _______________________________________________ >> enlightenment-svn mailing list >> enlightenment-...@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn >> > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel