Applications depending on _MAX behaviour or its value, are already asking for trouble in multiple ways. I have seen plenty of example of _MAX abuse.
For such apps., I would rather not have _MAX, than have it and fix their app. logic. Having MAX and adding new enums, changes the value of '_MAX' for apps that use and depend on it. Isn't that good enough a reason for not having _MAX? I don't want to consider other libraries in EFL for this specific case, since I find it inconsistent across libraries. (for ex., elementary has ~50 enums and only one in genlist uses _MAX). On the lighter side, think of the potential savings in application support time :) On Fri, Feb 24, 2012 at 11:30 PM, Daniel Juyung Seo <seojuyu...@gmail.com>wrote: > On Fri, Feb 24, 2012 at 9:24 AM, Elevate Efl <eflel...@gmail.com> wrote: > > No. > > > > *_MAX really doesn't give the app. developer anything useful. > > Hello, > > > It has been added for the convenience (bounds checking) of the widget > > implementation. > > Exactly, that's why they're needed. Without it, if the last member of > the enum is changed, all application have to change their error check > code. > > > > > If we expose _MAX we need to tell the app. developer what is the expected > > behaviour if he uses it, which is unnecessary. > > This is common and other EFL libraries also use MAX value. > Can you consider this again? > > Daniel Juyung Seo (SeoZ) > > > > > > > > > > > > > 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 > > > ------------------------------------------------------------------------------ > 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