No. *_MAX really doesn't give the app. developer anything useful. It has been added for the convenience (bounds checking) of the widget implementation.
If we expose _MAX we need to tell the app. developer what is the expected behaviour if he uses it, which is unnecessary. On Fri, Feb 24, 2012 at 1:16 AM, Tom Hacohen <tom.haco...@samsung.com>wrote: > REVERT! :) > > Really though, judging from Daniel's comment it sounds like someone > should revert it. > > -- > Tom. > > On 23/02/12 18:12, Daniel Juyung Seo wrote: > > Dear Sanjeev, > > > > On Thu, Feb 23, 2012 at 11:52 AM, Enlightenment SVN > > <no-re...@enlightenment.org> wrote: > >> Log: > >> Remove MAX, it is not useful for app. developers. > > > > This means new selection type will never be added? > > > > Daniel Juyung Seo (SeoZ) > > > > > >> > >> Signed-off-by: Sanjeev BA<eflel...@gmail.com> > >> > >> Author: sanjeev > >> Date: 2012-02-22 18:52:07 -0800 (Wed, 22 Feb 2012) > >> New Revision: 68291 > >> Trac: http://trac.enlightenment.org/e/changeset/68291 > >> > >> Modified: > >> trunk/elementary/src/lib/elm_cnp.c trunk/elementary/src/lib/elm_cnp.h > >> > >> Modified: trunk/elementary/src/lib/elm_cnp.c > >> =================================================================== > >> --- trunk/elementary/src/lib/elm_cnp.c 2012-02-23 02:52:00 UTC (rev > 68290) > >> +++ trunk/elementary/src/lib/elm_cnp.c 2012-02-23 02:52:07 UTC (rev > 68291) > >> @@ -324,7 +324,7 @@ > >> }, > >> }; > >> > >> -static Cnp_Selection selections[ELM_SEL_TYPE_MAX] = { > >> +static Cnp_Selection selections[ELM_SEL_TYPE_CLIPBOARD + 1] = { > >> ARRAYINIT(ELM_SEL_TYPE_PRIMARY) { > >> .debug = "Primary", > >> .ecore_sel = ECORE_X_SELECTION_PRIMARY, > >> @@ -339,6 +339,11 @@ > >> .clear = ecore_x_selection_secondary_clear, > >> .request = ecore_x_selection_secondary_request, > >> }, > >> + ARRAYINIT(ELM_SEL_TYPE_XDND) { > >> + .debug = "XDnD", > >> + .ecore_sel = ECORE_X_SELECTION_XDND, > >> + .request = ecore_x_selection_xdnd_request, > >> + }, > >> ARRAYINIT(ELM_SEL_TYPE_CLIPBOARD) { > >> .debug = "Clipboard", > >> .ecore_sel = ECORE_X_SELECTION_CLIPBOARD, > >> @@ -346,11 +351,6 @@ > >> .clear = ecore_x_selection_clipboard_clear, > >> .request = ecore_x_selection_clipboard_request, > >> }, > >> - ARRAYINIT(ELM_SEL_TYPE_XDND) { > >> - .debug = "XDnD", > >> - .ecore_sel = ECORE_X_SELECTION_XDND, > >> - .request = ecore_x_selection_xdnd_request, > >> - }, > >> }; > >> > >> /* Data for DND in progress */ > >> @@ -400,7 +400,7 @@ > >> > >> if (top) xwin = elm_win_xwindow_get(top); > >> else xwin = elm_win_xwindow_get(obj); > >> - if ((!xwin) || (selection>= ELM_SEL_TYPE_MAX)) > >> + if ((!xwin) || (selection> ELM_SEL_TYPE_CLIPBOARD)) > >> return EINA_FALSE; > >> if (!_elm_cnp_init_count) _elm_cnp_init(); > >> if ((!selbuf)&& (format != ELM_SEL_FORMAT_IMAGE)) > >> @@ -438,7 +438,7 @@ > >> #ifdef HAVE_ELEMENTARY_X > >> Cnp_Selection *sel; > >> > >> - if ((unsigned int)selection>= (unsigned int)ELM_SEL_TYPE_MAX) > >> + if ((unsigned int)selection> (unsigned int)ELM_SEL_TYPE_CLIPBOARD) > >> return EINA_FALSE; > >> if (!_elm_cnp_init_count) _elm_cnp_init(); > >> > >> @@ -470,7 +470,7 @@ > >> Evas_Object *top; > >> Cnp_Selection *sel; > >> > >> - if (selection>= ELM_SEL_TYPE_MAX) > >> + if (selection> ELM_SEL_TYPE_CLIPBOARD) > >> return EINA_FALSE; > >> if (!_elm_cnp_init_count) _elm_cnp_init(); > >> > >> @@ -519,13 +519,13 @@ > >> Cnp_Selection *sel; > >> int i; > >> > >> - for (i = 0; i< ELM_SEL_TYPE_MAX; i++) > >> + for (i = 0; i<= ELM_SEL_TYPE_CLIPBOARD; 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_TYPE_MAX) return ECORE_CALLBACK_PASS_ON; > >> + if (i> ELM_SEL_TYPE_CLIPBOARD) return ECORE_CALLBACK_PASS_ON; > >> > >> sel = selections + i; > >> sel->active = EINA_FALSE; > >> @@ -556,9 +556,6 @@ > >> cnp_debug("selection notify callback: %d\n",ev->selection); > >> switch (ev->selection) > >> { > >> - case ECORE_X_SELECTION_CLIPBOARD: > >> - sel = selections + ELM_SEL_TYPE_CLIPBOARD; > >> - break; > >> case ECORE_X_SELECTION_PRIMARY: > >> sel = selections + ELM_SEL_TYPE_PRIMARY; > >> break; > >> @@ -568,6 +565,9 @@ > >> case ECORE_X_SELECTION_XDND: > >> sel = selections + ELM_SEL_TYPE_XDND; > >> break; > >> + case ECORE_X_SELECTION_CLIPBOARD: > >> + sel = selections + ELM_SEL_TYPE_CLIPBOARD; > >> + break; > >> default: > >> return ECORE_CALLBACK_PASS_ON; > >> } > >> @@ -600,7 +600,7 @@ > >> Cnp_Selection *sel = selections + *((int *)data); > >> if (sel->active&& > >> (sel->format>= ELM_SEL_FORMAT_TARGETS)&& > >> - (sel->format< ELM_SEL_FORMAT_MAX)) > >> + (sel->format<= ELM_SEL_FORMAT_HTML)) > >> return sel->format; > >> } > >> return ELM_SEL_FORMAT_NONE; > >> > >> Modified: trunk/elementary/src/lib/elm_cnp.h > >> =================================================================== > >> --- trunk/elementary/src/lib/elm_cnp.h 2012-02-23 02:52:00 UTC (rev > 68290) > >> +++ trunk/elementary/src/lib/elm_cnp.h 2012-02-23 02:52:07 UTC (rev > 68291) > >> @@ -1,24 +1,30 @@ > >> /** > >> - * @addtogroup CopyPaste > >> + * @defgroup CopyPaste > >> + * > >> + * Implement the copy and paste + clipboard functionality, in order to > >> + * share data across application windows. > >> + * > >> + * Contains functions to select a portion of text, stick it to a > clipboard > >> + * and to paste the selection to an appropriate place. > >> + * > >> + * > >> + * > >> * @{ > >> */ > >> - > >> typedef struct _Elm_Selection_Data Elm_Selection_Data; > >> typedef Eina_Bool (*Elm_Drop_Cb)(void *d, Evas_Object > *o, Elm_Selection_Data *data); > >> > >> /** > >> - * Types of X window selection property names. > >> + * Defines the types of selection property names. > >> * Kindly refer to http://www.x.org/docs/X11/xlib.pdf > >> * for more details. > >> */ > >> typedef enum > >> { > >> ELM_SEL_TYPE_PRIMARY, //primary text selection > >> - ELM_SEL_TYPE_SECONDARY, > >> + ELM_SEL_TYPE_SECONDARY, // used when primary selection is in use. > >> ELM_SEL_TYPE_XDND, //drag and drop > >> - ELM_SEL_TYPE_CLIPBOARD, > >> - > >> - ELM_SEL_TYPE_MAX, > >> + ELM_SEL_TYPE_CLIPBOARD, // highlighted text > >> } Elm_Sel_Type; > >> > >> typedef enum > >> @@ -37,8 +43,6 @@ > >> ELM_SEL_FORMAT_VCARD = 0x08, > >> /** Raw HTML-like 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 > >> > >> > >> > ------------------------------------------------------------------------------ > >> 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 > ------------------------------------------------------------------------------ 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