Thanks a lot! I made some changes on there. Latest changes need to come first. Dear all e-devs, please update ElementaryChanges wiki page if you change elementary APIs or whatever. Thanks.
Daniel Juyung Seo (SeoZ) On Wed, Dec 7, 2011 at 11:41 PM, michael bouchaud <michael.bouch...@gmail.com> wrote: > done > > 2011/12/7 Daniel Juyung Seo <seojuyu...@gmail.com> > >> This is cool!! >> Please update ElementaryChanges wiki page for elementary API or >> whatever changes. >> http://trac.enlightenment.org/e/wiki/ElementaryChanges >> >> I just saw the elm_index code and there are a lot to be fixed in elm_index >> :( >> This will be done soon :) >> >> Thanks. >> Daniel Juyung Soe (SeoZ) >> >> On Tue, Dec 6, 2011 at 11:05 PM, Enlightenment SVN >> <no-re...@enlightenment.org> wrote: >> > Log: >> > elementary: API break ! using Elm_Index_Item instead of the item's data >> in the index widget. This was applied for function and smart callbacks >> > >> > Author: yoz >> > Date: 2011-12-06 06:05:55 -0800 (Tue, 06 Dec 2011) >> > New Revision: 65956 >> > Trac: http://trac.enlightenment.org/e/changeset/65956 >> > >> > Modified: >> > trunk/elementary/src/bin/test_index.c trunk/elementary/src/lib/ >> Elementary.h.in trunk/elementary/src/lib/elm_index.c >> > >> > Modified: trunk/elementary/src/bin/test_index.c >> > =================================================================== >> > --- trunk/elementary/src/bin/test_index.c 2011-12-06 11:36:29 UTC >> (rev 65955) >> > +++ trunk/elementary/src/bin/test_index.c 2011-12-06 14:05:55 UTC >> (rev 65956) >> > @@ -20,7 +20,7 @@ >> > { >> > // called on a change but delayed in case multiple changes happen in a >> > // short timespan >> > - elm_genlist_item_top_bring_in(event_info); >> > + elm_genlist_item_top_bring_in(elm_index_item_data_get(event_info)); >> > } >> > >> > void >> > @@ -34,7 +34,7 @@ >> > index_selected(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void >> *event_info) >> > { >> > // called on final select >> > - elm_genlist_item_top_bring_in(event_info); >> > + elm_genlist_item_top_bring_in(elm_index_item_data_get(event_info)); >> > } >> > >> > void >> > @@ -160,13 +160,15 @@ >> > Test_Index2_Elements *gui = data; >> > const char *label, *label_next; >> > Elm_List_Item *it, *it_next; >> > + Elm_Index_Item *iit; >> > >> > it = elm_list_selected_item_get(obj); >> > it_next = elm_list_item_next(it); >> > >> > if (!it_next) >> > { >> > - elm_index_item_del(gui->id, it); >> > + iit = elm_index_item_find(gui->id, it); >> > + if (iit) elm_index_item_del(gui->id, iit); >> > elm_list_item_del(it); >> > return; >> > } >> > @@ -174,14 +176,11 @@ >> > label = elm_list_item_label_get(it); >> > label_next = elm_list_item_label_get(it_next); >> > >> > + iit = elm_index_item_find(gui->id, it); >> > if (label[0] == label_next[0]) >> > - { >> > - Elm_Index_Item *iit; >> > - iit = elm_index_item_find(gui->id, it); >> > - elm_index_item_data_set(iit, it_next); >> > - } >> > + elm_index_item_data_set(iit, it_next); >> > else >> > - elm_index_item_del(gui->id, it); >> > + elm_index_item_del(gui->id, iit); >> > >> > elm_list_item_del(it); >> > } >> > @@ -189,7 +188,7 @@ >> > void >> > test_index2_id_changed(void *data __UNUSED__, Evas_Object *obj >> __UNUSED__, void *event_info) >> > { >> > - elm_list_item_show(event_info); >> > + elm_list_item_show(elm_index_item_data_get(event_info)); >> > } >> > >> > void >> > >> > Modified: trunk/elementary/src/lib/Elementary.h.in >> > =================================================================== >> > --- trunk/elementary/src/lib/Elementary.h.in 2011-12-06 11:36:29 UTC >> (rev 65955) >> > +++ trunk/elementary/src/lib/Elementary.h.in 2011-12-06 14:05:55 UTC >> (rev 65956) >> > @@ -22399,19 +22399,14 @@ >> > EAPI int elm_index_item_level_get(const Evas_Object *obj) >> EINA_ARG_NONNULL(1); >> > >> > /** >> > - * Returns the last selected item's data, for a given index widget. >> > + * Returns the last selected item, for a given index widget. >> > * >> > * @param obj The index object. >> > - * @return The item @b data associated to the last selected item on >> > - * @p obj (or @c NULL, on errors). >> > + * @return The last item @b selected on @p obj (or @c NULL, on >> errors). >> > * >> > - * @warning The returned value is @b not an #Elm_Index_Item item >> > - * handle, but the data associated to it (see the @c item parameter >> > - * in elm_index_item_append(), as an example). >> > - * >> > * @ingroup Index >> > */ >> > - EAPI void *elm_index_item_selected_get(const Evas_Object >> *obj, int level) EINA_ARG_NONNULL(1); >> > + EAPI Elm_Index_Item *elm_index_item_selected_get(const Evas_Object >> *obj, int level) EINA_ARG_NONNULL(1); >> > >> > /** >> > * Append a new item on a given index widget. >> > @@ -22456,8 +22451,7 @@ >> > * @param obj The index object. >> > * @param letter Letter under which the item should be indexed >> > * @param item The item data to set for the index's item >> > - * @param relative The item data of the index item to be the >> > - * predecessor of this new one >> > + * @param relative The index item to be the predecessor of this new >> one >> > * >> > * Despite the most common usage of the @p letter argument is for >> > * single char strings, one could use arbitrary strings as index >> > @@ -22466,13 +22460,12 @@ >> > * @c item will be the pointer returned back on @c "changed", @c >> > * "delay,changed" and @c "selected" smart events. >> > * >> > - * @note If @p relative is @c NULL or if it's not found to be data >> > - * set on any previous item on @p obj, this function will behave as >> > + * @note If @p relative is @c NULL this function will behave as >> > * elm_index_item_append(). >> > * >> > * @ingroup Index >> > */ >> > - EAPI void elm_index_item_append_relative(Evas_Object >> *obj, const char *letter, const void *item, const void *relative) >> EINA_ARG_NONNULL(1); >> > + EAPI void elm_index_item_append_relative(Evas_Object >> *obj, const char *letter, const void *item, const Elm_Index_Item *relative) >> EINA_ARG_NONNULL(1); >> > >> > /** >> > * Prepend a new item, on a given index widget, <b>after the item >> > @@ -22481,8 +22474,7 @@ >> > * @param obj The index object. >> > * @param letter Letter under which the item should be indexed >> > * @param item The item data to set for the index's item >> > - * @param relative The item data of the index item to be the >> > - * successor of this new one >> > + * @param relative The index item to be the successor of this new one >> > * >> > * Despite the most common usage of the @p letter argument is for >> > * single char strings, one could use arbitrary strings as index >> > @@ -22491,13 +22483,12 @@ >> > * @c item will be the pointer returned back on @c "changed", @c >> > * "delay,changed" and @c "selected" smart events. >> > * >> > - * @note If @p relative is @c NULL or if it's not found to be data >> > - * set on any previous item on @p obj, this function will behave as >> > + * @note If @p relative is @c NULL this function will behave as >> > * elm_index_item_prepend(). >> > * >> > * @ingroup Index >> > */ >> > - EAPI void elm_index_item_prepend_relative(Evas_Object >> *obj, const char *letter, const void *item, const void *relative) >> EINA_ARG_NONNULL(1); >> > + EAPI void elm_index_item_prepend_relative(Evas_Object >> *obj, const char *letter, const void *item, const Elm_Index_Item *relative) >> EINA_ARG_NONNULL(1); >> > >> > /** >> > * Insert a new item into the given index widget, using @p cmp_func >> > @@ -22537,18 +22528,14 @@ >> > * it's data value</b>. >> > * >> > * @param obj The index object >> > - * @param item The item's data pointer for the item to be removed >> > - * from @p obj >> > + * @param item The item to be removed from @p obj >> > * >> > * If a deletion callback is set, via elm_index_item_del_cb_set(), >> > * that callback function will be called by this one. >> > * >> > - * @warning The item to be removed from @p obj will be found via >> > - * its item data pointer, and not by an #Elm_Index_Item handle. >> > - * >> > * @ingroup Index >> > */ >> > - EAPI void elm_index_item_del(Evas_Object *obj, const void >> *item) EINA_ARG_NONNULL(1); >> > + EAPI void elm_index_item_del(Evas_Object *obj, >> Elm_Index_Item *item) EINA_ARG_NONNULL(1); >> > >> > /** >> > * Find a given index widget's item, <b>using item data</b>. >> > >> > Modified: trunk/elementary/src/lib/elm_index.c >> > =================================================================== >> > --- trunk/elementary/src/lib/elm_index.c 2011-12-06 11:36:29 UTC >> (rev 65955) >> > +++ trunk/elementary/src/lib/elm_index.c 2011-12-06 14:05:55 UTC >> (rev 65956) >> > @@ -298,11 +298,11 @@ >> > _delay_change(void *data) >> > { >> > Widget_Data *wd = elm_widget_data_get(data); >> > - void *d; >> > + Elm_Index_Item *item; >> > if (!wd) return ECORE_CALLBACK_CANCEL; >> > wd->delay = NULL; >> > - d = (void *)elm_index_item_selected_get(data, wd->level); >> > - if (d) evas_object_smart_callback_call(data, SIG_DELAY_CHANGED, d); >> > + item = elm_index_item_selected_get(data, wd->level); >> > + if (item) evas_object_smart_callback_call(data, SIG_DELAY_CHANGED, >> item); >> > return ECORE_CALLBACK_CANCEL; >> > } >> > >> > @@ -386,7 +386,7 @@ >> > selectraise = edje_object_data_get(VIEW(it), >> "selectraise"); >> > if ((selectraise) && (!strcmp(selectraise, "on"))) >> > evas_object_raise(VIEW(it)); >> > - evas_object_smart_callback_call((void *)obj, >> SIG_CHANGED, (void *)it->base.data); >> > + evas_object_smart_callback_call((void *)obj, >> SIG_CHANGED, (void *)it); >> > if (wd->delay) ecore_timer_del(wd->delay); >> > wd->delay = ecore_timer_add(0.2, _delay_change, obj); >> > } >> > @@ -452,12 +452,12 @@ >> > { >> > Widget_Data *wd = elm_widget_data_get(data); >> > Evas_Event_Mouse_Up *ev = event_info; >> > - void *d; >> > + Elm_Index_Item *item; >> > if (!wd) return; >> > if (ev->button != 1) return; >> > wd->down = 0; >> > - d = (void *)elm_index_item_selected_get(data, wd->level); >> > - if (d) evas_object_smart_callback_call(data, SIG_SELECTED, d); >> > + item = elm_index_item_selected_get(data, wd->level); >> > + if (item) evas_object_smart_callback_call(data, SIG_SELECTED, item); >> > elm_index_active_set(data, 0); >> > edje_object_signal_emit(wd->base, "elm,state,level,0", "elm"); >> > edje_object_signal_emit(wd->base, "elm,indicator,state,inactive", >> "elm"); >> > @@ -628,7 +628,7 @@ >> > return wd->level; >> > } >> > >> > -EAPI void * >> > +EAPI Elm_Index_Item * >> > elm_index_item_selected_get(const Evas_Object *obj, int level) >> > { >> > ELM_CHECK_WIDTYPE(obj, widtype) NULL; >> > @@ -638,7 +638,7 @@ >> > if (!wd) return NULL; >> > EINA_LIST_FOREACH(wd->items, l, it) >> > if ((it->selected) && (it->level == level)) >> > - return elm_widget_item_data_get(it); >> > + return it; >> > return NULL; >> > } >> > >> > @@ -670,50 +670,38 @@ >> > } >> > >> > EAPI void >> > -elm_index_item_append_relative(Evas_Object *obj, const char *letter, >> const void *item, const void *relative) >> > +elm_index_item_append_relative(Evas_Object *obj, const char *letter, >> const void *item, const Elm_Index_Item *relative) >> > { >> > ELM_CHECK_WIDTYPE(obj, widtype); >> > Widget_Data *wd = elm_widget_data_get(obj); >> > - Elm_Index_Item *it, *it_rel; >> > + Elm_Index_Item *it; >> > if (!wd) return; >> > if (!relative) >> > { >> > elm_index_item_append(obj, letter, item); >> > return; >> > } >> > - it_rel = _item_find(obj, relative); >> > - if (!it_rel) >> > - { >> > - elm_index_item_append(obj, letter, item); >> > - return; >> > - } >> > it = _item_new(obj, letter, item); >> > if (!it) return; >> > - wd->items = eina_list_append_relative(wd->items, it, it_rel); >> > + wd->items = eina_list_append_relative(wd->items, it, relative); >> > _index_box_clear(obj, wd->bx[wd->level], wd->level); >> > } >> > >> > EAPI void >> > -elm_index_item_prepend_relative(Evas_Object *obj, const char *letter, >> const void *item, const void *relative) >> > +elm_index_item_prepend_relative(Evas_Object *obj, const char *letter, >> const void *item, const Elm_Index_Item *relative) >> > { >> > ELM_CHECK_WIDTYPE(obj, widtype); >> > Widget_Data *wd = elm_widget_data_get(obj); >> > - Elm_Index_Item *it, *it_rel; >> > + Elm_Index_Item *it; >> > if (!wd) return; >> > if (!relative) >> > { >> > elm_index_item_prepend(obj, letter, item); >> > return; >> > } >> > - it_rel = _item_find(obj, relative); >> > - if (!it_rel) >> > - { >> > - elm_index_item_append(obj, letter, item); >> > - return; >> > - } >> > it = _item_new(obj, letter, item); >> > if (!it) return; >> > - wd->items = eina_list_prepend_relative(wd->items, it, it_rel); >> > + wd->items = eina_list_prepend_relative(wd->items, it, relative); >> > _index_box_clear(obj, wd->bx[wd->level], wd->level); >> > } >> > >> > @@ -759,15 +747,13 @@ >> > } >> > >> > EAPI void >> > -elm_index_item_del(Evas_Object *obj, const void *item) >> > +elm_index_item_del(Evas_Object *obj, Elm_Index_Item *item) >> > { >> > ELM_CHECK_WIDTYPE(obj, widtype); >> > Widget_Data *wd = elm_widget_data_get(obj); >> > - Elm_Index_Item *it; >> > if (!wd) return; >> > - it = _item_find(obj, item); >> > - if (!it) return; >> > - _item_free(it); >> > + if (!item) return; >> > + _item_free(item); >> > _index_box_clear(obj, wd->bx[wd->level], wd->level); >> > } >> > >> > >> > >> > >> ------------------------------------------------------------------------------ >> > Cloud Services Checklist: Pricing and Packaging Optimization >> > This white paper is intended to serve as a reference, checklist and >> point of >> > discussion for anyone considering optimizing the pricing and packaging >> model >> > of a cloud services business. Read Now! >> > http://www.accelacomm.com/jaw/sfnl/114/51491232/ >> > _______________________________________________ >> > enlightenment-svn mailing list >> > enlightenment-...@lists.sourceforge.net >> > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn >> >> >> ------------------------------------------------------------------------------ >> Cloud Services Checklist: Pricing and Packaging Optimization >> This white paper is intended to serve as a reference, checklist and point >> of >> discussion for anyone considering optimizing the pricing and packaging >> model >> of a cloud services business. Read Now! >> http://www.accelacomm.com/jaw/sfnl/114/51491232/ >> _______________________________________________ >> enlightenment-devel mailing list >> enlightenment-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >> > > > > -- > Michaël Bouchaud > ------------------------------------------------------------------------------ > Cloud Services Checklist: Pricing and Packaging Optimization > This white paper is intended to serve as a reference, checklist and point of > discussion for anyone considering optimizing the pricing and packaging model > of a cloud services business. Read Now! > http://www.accelacomm.com/jaw/sfnl/114/51491232/ > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel ------------------------------------------------------------------------------ Cloud Services Checklist: Pricing and Packaging Optimization This white paper is intended to serve as a reference, checklist and point of discussion for anyone considering optimizing the pricing and packaging model of a cloud services business. Read Now! http://www.accelacomm.com/jaw/sfnl/114/51491232/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel