Hello, I fixed elm_object_item_access_order_get() It didn't return any value even the return type is Eina_List *. And _elm_access_widget_item_access_order_get() returns const Eina_List * so I fixed elm_object_item_access_order_get() to return the same thing. http://trac.enlightenment.org/e/changeset/83782 Please check them.
Thanks. Daniel Juyung Seo (SeoZ) On Thu, Feb 7, 2013 at 10:01 PM, Enlightenment SVN < [email protected]> wrote: > Log: > [access] convey(relay) focus(highlight) to the object which is swallowed > by Elm_Object_Item. > > > Author: kimcinoo > Date: 2013-02-07 05:01:34 -0800 (Thu, 07 Feb 2013) > New Revision: 83742 > Trac: http://trac.enlightenment.org/e/changeset/83742 > > Modified: > trunk/elementary/src/lib/elm_access.c > trunk/elementary/src/lib/elm_genlist.c trunk/elementary/src/lib/elm_main.c > trunk/elementary/src/lib/elm_object_item.h > trunk/elementary/src/lib/elm_widget.h > > Modified: trunk/elementary/src/lib/elm_access.c > =================================================================== > --- trunk/elementary/src/lib/elm_access.c 2013-02-07 12:43:59 UTC > (rev 83741) > +++ trunk/elementary/src/lib/elm_access.c 2013-02-07 13:01:34 UTC > (rev 83742) > @@ -265,30 +265,87 @@ > return ho; > } > > -void _elm_access_mouse_event_enabled_set(Eina_Bool enabled) > +void > +_elm_access_mouse_event_enabled_set(Eina_Bool enabled) > { > enabled = !!enabled; > if (mouse_event_enable == enabled) return; > mouse_event_enable = enabled; > } > > -void _elm_access_read_mode_set(Eina_Bool enabled) > +void > +_elm_access_read_mode_set(Eina_Bool enabled) > { > enabled = !!enabled; > if (read_mode == enabled) return; > read_mode = enabled; > } > > -Eina_Bool _elm_access_read_mode_get() > +Eina_Bool > +_elm_access_read_mode_get() > { > return read_mode; > } > > -void _elm_access_shutdown() > +void > +_elm_access_shutdown() > { > _access_shutdown(); > } > > +static void > +_access_order_del_cb(void *data, > + Evas *e __UNUSED__, > + Evas_Object *obj, > + void *event_info __UNUSED__) > +{ > + Elm_Widget_Item *item = data; > + > + item->access_order = eina_list_remove(item->access_order, obj); > +} > + > +void > +_elm_access_widget_item_access_order_set(Elm_Widget_Item *item, > + Eina_List *objs) > +{ > + Eina_List *l; > + Evas_Object *o; > + > + if (!item) return; > + > + _elm_access_widget_item_access_order_unset(item); > + > + EINA_LIST_FOREACH(objs, l, o) > + { > + evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, > + _access_order_del_cb, item); > + } > + > + item->access_order = objs; > +} > + > +const Eina_List * > +_elm_access_widget_item_access_order_get(const Elm_Widget_Item *item) > +{ > + if (!item) return NULL; > + return item->access_order; > +} > + > +void > +_elm_access_widget_item_access_order_unset(Elm_Widget_Item *item) > +{ > + Eina_List *l, *l_next; > + Evas_Object *o; > + > + if (!item) return; > + > + EINA_LIST_FOREACH_SAFE(item->access_order, l, l_next, o) > + { > + evas_object_event_callback_del_full > + (o, EVAS_CALLBACK_DEL, _access_order_del_cb, item); > + item->access_order = eina_list_remove_list(item->access_order, l); > + } > +} > > //-------------------------------------------------------------------------// > EAPI void > _elm_access_highlight_set(Evas_Object* obj) > > Modified: trunk/elementary/src/lib/elm_genlist.c > =================================================================== > --- trunk/elementary/src/lib/elm_genlist.c 2013-02-07 12:43:59 UTC > (rev 83741) > +++ trunk/elementary/src/lib/elm_genlist.c 2013-02-07 13:01:34 UTC > (rev 83742) > @@ -2572,6 +2572,13 @@ > if (ELM_RECTS_INTERSECT > (x + (w / 2), y + (h / 2), 0, 0, sx, sy, sw, > sh)) > items = eina_list_append(items, > it->base.access_obj); > + > + if (!it->base.access_order) continue; > + > + Eina_List *subl; > + Evas_Object *subo; > + EINA_LIST_FOREACH(it->base.access_order, subl, > subo) > + items = eina_list_append(items, subo); > } > } > } > > Modified: trunk/elementary/src/lib/elm_main.c > =================================================================== > --- trunk/elementary/src/lib/elm_main.c 2013-02-07 12:43:59 UTC (rev 83741) > +++ trunk/elementary/src/lib/elm_main.c 2013-02-07 13:01:34 UTC (rev 83742) > @@ -1561,6 +1561,24 @@ > return ((Elm_Widget_Item *)item)->access_obj; > } > > +EAPI void > +elm_object_item_access_order_set(Elm_Object_Item *item, Eina_List *objs) > +{ > + _elm_access_widget_item_access_order_set((Elm_Widget_Item *)item, > objs); > +} > + > +EAPI Eina_List * > +elm_object_item_access_order_get(const Elm_Object_Item *item) > +{ > + _elm_access_widget_item_access_order_get((Elm_Widget_Item *)item); > +} > + > +EAPI void > +elm_object_item_access_order_unset(Elm_Object_Item *item) > +{ > + _elm_access_widget_item_access_order_unset((Elm_Widget_Item *)item); > +} > + > EAPI void * > elm_object_item_data_get(const Elm_Object_Item *it) > { > > Modified: trunk/elementary/src/lib/elm_object_item.h > =================================================================== > --- trunk/elementary/src/lib/elm_object_item.h 2013-02-07 12:43:59 UTC > (rev 83741) > +++ trunk/elementary/src/lib/elm_object_item.h 2013-02-07 13:01:34 UTC > (rev 83742) > @@ -141,6 +141,38 @@ > EAPI Evas_Object *elm_object_item_access_object_get(const > Elm_Object_Item *item); > > /** > + * @brief Set highlight order > + * @since 1.8 > + * > + * @param item The container object item > + * @param objs Order of objects to pass highlight > + * > + * @ingroup General > + */ > +EAPI void > elm_object_item_access_order_set(Elm_Object_Item *item, Eina_List *objs); > + > +/** > + * @brief Get highlight order > + * @since 1.8 > + * > + * @param item The container object item > + * @return Order of objects to pass highlight > + * > + * @ingroup General > + */ > +EAPI Eina_List *elm_object_item_access_order_getconst > (const Elm_Object_Item *item); > + > +/** > + * @brief Unset highlight order > + * @since 1.8 > + * > + * @param item The container object item > + * > + * @ingroup General > + */ > +EAPI void > elm_object_item_access_order_unset(Elm_Object_Item *item); > + > +/** > * Get the data associated with an object item > * @param it The Elementary object item > * @return The data associated with @p it > > Modified: trunk/elementary/src/lib/elm_widget.h > =================================================================== > --- trunk/elementary/src/lib/elm_widget.h 2013-02-07 12:43:59 UTC > (rev 83741) > +++ trunk/elementary/src/lib/elm_widget.h 2013-02-07 13:01:34 UTC > (rev 83742) > @@ -494,6 +494,10 @@ > focus chain */ > void _elm_access_read_mode_set(Eina_Bool enabled); > Eina_Bool _elm_access_read_mode_get(); > +void > _elm_access_widget_item_access_order_set(Elm_Widget_Item *item, Eina_List > *objs); > +const Eina_List *_elm_access_widget_item_access_order_get(const > Elm_Widget_Item *item); > +void > _elm_access_widget_item_access_order_unset(Elm_Widget_Item *item); > + > EAPI void _elm_access_clear(Elm_Access_Info *ac); > EAPI void _elm_access_text_set(Elm_Access_Info *ac, int type, > const char *text); > EAPI void _elm_access_callback_set(Elm_Access_Info *ac, int > type, Elm_Access_Info_Cb func, const void *data); > @@ -550,6 +554,7 @@ > Elm_Widget_Disable_Cb disable_func; > Evas_Object *access_obj; > const char *access_info; > + Eina_List *access_order; > > Eina_Bool disabled : 1; > }; > > > > ------------------------------------------------------------------------------ > Free Next-Gen Firewall Hardware Offer > Buy your Sophos next-gen firewall before the end March 2013 > and get the hardware for free! Learn more. > http://p.sf.net/sfu/sophos-d2d-feb > _______________________________________________ > enlightenment-svn mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
