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

Reply via email to