From: Enlightenment S. <no-...@en...> - 2011-03-10 09:21:01
|
Log: From: WooHyun Jung <wh0...@sa...> Subject: [E-devel] [Patch] small patch for elm_module I made a patch for elm_module. Null setting for freed pointer ~ Author: raster Date: 2011-03-10 01:20:54 -0800 (Thu, 10 Mar 2011) New Revision: 57660 Trac: http://trac.enlightenment.org/e/changeset/57660 Modified: trunk/elementary/src/lib/elm_module.c Modified: trunk/elementary/src/lib/elm_module.c =================================================================== --- trunk/elementary/src/lib/elm_module.c 2011-03-10 09:15:36 UTC (rev 57659) +++ trunk/elementary/src/lib/elm_module.c 2011-03-10 09:20:54 UTC (rev 57660) @@ -176,8 +176,17 @@ eina_stringshare_del(m->data_dir); eina_stringshare_del(m->bin_dir); if (m->shutdown_func) m->shutdown_func(m); - if (m->api) free(m->api); - dlclose(m->handle); + if (m->api) + { + free(m->api); + m->api = NULL; + } + if (m->handle) + { + if (m->shutdown_func) m->shutdown_func(m); + dlclose(m->handle); + m->handle = NULL; + } } Elm_Module * |
From: Enlightenment S. <no-...@en...> - 2011-03-10 09:22:42
|
Log: gah - committed wrong patch. here. fixed. Author: raster Date: 2011-03-10 01:22:34 -0800 (Thu, 10 Mar 2011) New Revision: 57661 Trac: http://trac.enlightenment.org/e/changeset/57661 Modified: trunk/elementary/src/lib/elm_module.c Modified: trunk/elementary/src/lib/elm_module.c =================================================================== --- trunk/elementary/src/lib/elm_module.c 2011-03-10 09:20:54 UTC (rev 57660) +++ trunk/elementary/src/lib/elm_module.c 2011-03-10 09:22:34 UTC (rev 57661) @@ -175,7 +175,6 @@ eina_stringshare_del(m->so_path); eina_stringshare_del(m->data_dir); eina_stringshare_del(m->bin_dir); - if (m->shutdown_func) m->shutdown_func(m); if (m->api) { free(m->api); |
From: Enlightenment S. <no-...@en...> - 2011-03-10 09:24:55
|
Log: From: Jihoon Kim <jih...@sa...> Subject: [E-devel] [PATCH] elm_gengrid selection key patch Unlike other widget, gengrid processes only the "Return" key for selecting item. This patch makes gengrid be able to process KP_Enter and space key for selecting item. Author: raster Date: 2011-03-10 01:24:49 -0800 (Thu, 10 Mar 2011) New Revision: 57662 Trac: http://trac.enlightenment.org/e/changeset/57662 Modified: trunk/elementary/src/lib/elm_gengrid.c Modified: trunk/elementary/src/lib/elm_gengrid.c =================================================================== --- trunk/elementary/src/lib/elm_gengrid.c 2011-03-10 09:22:34 UTC (rev 57661) +++ trunk/elementary/src/lib/elm_gengrid.c 2011-03-10 09:24:49 UTC (rev 57662) @@ -431,7 +431,9 @@ ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; return EINA_TRUE; } - else if (!strcmp(ev->keyname, "Return")) + else if ((!strcmp(ev->keyname, "Return")) || + (!strcmp(ev->keyname, "KP_Enter")) || + (!strcmp(ev->keyname, "space"))) { item = elm_gengrid_selected_item_get(obj); evas_object_smart_callback_call(item->wd->self, "clicked", item); |
From: Enlightenment S. <no-...@en...> - 2011-03-10 10:16:05
|
Log: From: WooHyun Jung <wh0...@sa...> Subject: [E-devel] [Patch] anchorview's "clicked" signal is always sent when mouse up. I've checked "anchor,clicked" signal is always sent with mouse_up. That is, mouse_down on the anchor -> mouse_move out from the anchor -> mouse_up can emit "anchor,clicked" signal. So I made one patch for right clicked signal emitting. Author: raster Date: 2011-03-10 02:15:58 -0800 (Thu, 10 Mar 2011) New Revision: 57664 Trac: http://trac.enlightenment.org/e/changeset/57664 Modified: trunk/elementary/src/lib/elm_entry.c Modified: trunk/elementary/src/lib/elm_entry.c =================================================================== --- trunk/elementary/src/lib/elm_entry.c 2011-03-10 10:12:32 UTC (rev 57663) +++ trunk/elementary/src/lib/elm_entry.c 2011-03-10 10:15:58 UTC (rev 57664) @@ -1201,9 +1201,16 @@ } static void -_signal_anchor_up(void *data, Evas_Object *obj __UNUSED__, const char *emission, const char *source __UNUSED__) +_signal_anchor_up(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) { Widget_Data *wd = elm_widget_data_get(data); + if (!wd) return; +} + +static void +_signal_anchor_clicked(void *data, Evas_Object *obj __UNUSED__, const char *emission, const char *source __UNUSED__) +{ + Widget_Data *wd = elm_widget_data_get(data); Elm_Entry_Anchor_Info ei; char *buf2, *p, *p2, *n; if (!wd) return; @@ -1541,6 +1548,8 @@ _signal_anchor_down, obj); edje_object_signal_callback_add(wd->ent, "anchor,mouse,up,*", "elm.text", _signal_anchor_up, obj); + edje_object_signal_callback_add(wd->ent, "anchor,mouse,clicked,*", "elm.text", + _signal_anchor_clicked, obj); edje_object_signal_callback_add(wd->ent, "anchor,mouse,move,*", "elm.text", _signal_anchor_move, obj); edje_object_signal_callback_add(wd->ent, "anchor,mouse,in,*", "elm.text", |
From: Enlightenment S. <no-...@en...> - 2011-03-10 10:19:39
|
Log: From: sangho park <gou...@gm...> Subject: [E-devel] [Patch] elm_map_marker_region_get This is a patch for elm_map_marker. I added one api to get the coordinates of the marker. because marker->longitude and marker->latitude are private data, app can't access the coordinates of the marker. Author: raster Date: 2011-03-10 02:19:32 -0800 (Thu, 10 Mar 2011) New Revision: 57665 Trac: http://trac.enlightenment.org/e/changeset/57665 Modified: trunk/elementary/src/lib/Elementary.h.in trunk/elementary/src/lib/elm_map.c Modified: trunk/elementary/src/lib/Elementary.h.in =================================================================== --- trunk/elementary/src/lib/Elementary.h.in 2011-03-10 10:15:58 UTC (rev 57664) +++ trunk/elementary/src/lib/Elementary.h.in 2011-03-10 10:19:32 UTC (rev 57665) @@ -2106,6 +2106,7 @@ EAPI Elm_Map_Marker *elm_map_marker_add(Evas_Object *obj, double lon, double lat, Elm_Map_Marker_Class *clas, Elm_Map_Group_Class *clas_group, void *data) EINA_ARG_NONNULL(1, 4, 5); EAPI void elm_map_max_marker_per_group_set(Evas_Object *obj, int max) EINA_ARG_NONNULL(1); EAPI void elm_map_marker_remove(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1); + EAPI void elm_map_marker_region_get(const Elm_Map_Marker *marker, double *lon, double *lat) EINA_ARG_NONNULL(1); EAPI void elm_map_marker_bring_in(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1); EAPI void elm_map_marker_show(Elm_Map_Marker *marker) EINA_ARG_NONNULL(1); EAPI void elm_map_markers_list_show(Eina_List *markers) EINA_ARG_NONNULL(1); Modified: trunk/elementary/src/lib/elm_map.c =================================================================== --- trunk/elementary/src/lib/elm_map.c 2011-03-10 10:15:58 UTC (rev 57664) +++ trunk/elementary/src/lib/elm_map.c 2011-03-10 10:19:32 UTC (rev 57665) @@ -3044,6 +3044,23 @@ } /** + * Get the current coordinates of the marker. + * + * @param marker marker. + * @param lat The latitude. + * @param lon The longitude. + * + * @ingroup Map + */ +EAPI void +elm_map_marker_region_get(const Elm_Map_Marker *marker, double *lon, double *lat) +{ + EINA_SAFETY_ON_NULL_RETURN(marker); + if (lon) *lon = marker->longitude; + if (lat) *lat = marker->latitude; +} + +/** * Move the map to the coordinate of the marker. * * @param marker The marker where the map will be center. @@ -3057,7 +3074,6 @@ elm_map_geo_region_bring_in(marker->wd->obj, marker->longitude, marker->latitude); } - /** * Move the map to the coordinate of the marker. * |
From: Enlightenment S. <no-...@en...> - 2011-03-10 10:25:37
|
Log: From: Jae Hwan Kim <jae...@sa...> Subject: [E-devel] [Patch] elm_smart_scroller_child_region_show_internal In the els_scroller of the elementary, the function "elm_smart_scroller_child_region_show_internal" have a problem. If the parameters "x,y,w,h" have the wrong value like "elm_scroller_region_show(scroller, -300, -300, 900, 900);", the scroller move the position temporarily. The scroller seem to jump. So if the value of the parameter is not valid, it should be changed to valid value. The work is applied already in the function "elm_smart_scroller_region_bring_in". It should be applied in the function "elm_smart_scroller_child_region_show_internal" too. I changed the code like bring_in function. Author: raster Date: 2011-03-10 02:25:30 -0800 (Thu, 10 Mar 2011) New Revision: 57666 Trac: http://trac.enlightenment.org/e/changeset/57666 Modified: trunk/elementary/src/lib/els_scroller.c Modified: trunk/elementary/src/lib/els_scroller.c =================================================================== --- trunk/elementary/src/lib/els_scroller.c 2011-03-10 10:19:32 UTC (rev 57665) +++ trunk/elementary/src/lib/els_scroller.c 2011-03-10 10:25:30 UTC (rev 57666) @@ -1061,7 +1061,13 @@ sd->down.pdx = 0; sd->down.pdy = 0; } - elm_smart_scroller_child_pos_set(obj, nx, ny); + x = nx; + if (x < minx) x = minx; + else if ((x + w) > cw) x = cw - w; + y = ny; + if (y < miny) y = miny; + else if ((y + h) > ch) y = ch - h; + elm_smart_scroller_child_pos_set(obj, x, y); } /* Set should be used for calculated positions, for example, when we move |
From: Enlightenment S. <no-...@en...> - 2011-03-19 15:13:22
|
Log: From: WooHyun Jung <wh0...@sa...> Subject: [E-devel] [Patch] Focus issue in elm_widget.c I've checked there were some focus problems when an object is hidden. So I made patch for that ~ Author: raster Date: 2011-03-19 08:13:14 -0700 (Sat, 19 Mar 2011) New Revision: 57898 Trac: http://trac.enlightenment.org/e/changeset/57898 Modified: trunk/elementary/src/lib/elm_widget.c Modified: trunk/elementary/src/lib/elm_widget.c =================================================================== --- trunk/elementary/src/lib/elm_widget.c 2011-03-19 15:11:45 UTC (rev 57897) +++ trunk/elementary/src/lib/elm_widget.c 2011-03-19 15:13:14 UTC (rev 57898) @@ -178,6 +178,12 @@ } static void +_sub_obj_hide(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) +{ + _if_focused_revert(obj, EINA_TRUE); +} + +static void _sub_obj_mouse_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) { Evas_Object *o = obj; @@ -735,7 +741,9 @@ sd->subobjs = eina_list_append(sd->subobjs, sobj); evas_object_data_set(sobj, "elm-parent", obj); - evas_object_event_callback_add(sobj, EVAS_CALLBACK_DEL, _sub_obj_del, sd); + evas_object_event_callback_add(sobj, EVAS_CALLBACK_DEL, _sub_obj_del, sd); + if (_elm_widget_is(sobj)) + evas_object_event_callback_add(sobj, EVAS_CALLBACK_HIDE, _sub_obj_hide, sd); evas_object_smart_callback_call(obj, "sub-object-add", sobj); scale = elm_widget_scale_get(sobj); th = elm_widget_theme_get(sobj); @@ -788,6 +796,9 @@ sd->subobjs = eina_list_remove(sd->subobjs, sobj); evas_object_event_callback_del_full(sobj, EVAS_CALLBACK_DEL, _sub_obj_del, sd); + if (_elm_widget_is(sobj)) + evas_object_event_callback_del_full(sobj, EVAS_CALLBACK_HIDE, + _sub_obj_hide, sd); evas_object_smart_callback_call(obj, "sub-object-del", sobj); } @@ -804,6 +815,8 @@ { Smart_Data *sd2 = evas_object_smart_data_get(sd->resize_obj); if (sd2) sd2->parent_obj = NULL; + evas_object_event_callback_del_full(sd->resize_obj, EVAS_CALLBACK_HIDE, + _sub_obj_hide, sd); } evas_object_event_callback_del_full(sd->resize_obj, EVAS_CALLBACK_DEL, _sub_obj_del, sd); @@ -823,6 +836,8 @@ { Smart_Data *sd2 = evas_object_smart_data_get(sobj); if (sd2) sd2->parent_obj = NULL; + evas_object_event_callback_del_full(sobj, EVAS_CALLBACK_HIDE, + _sub_obj_hide, sd); } evas_object_event_callback_del_full(sobj, EVAS_CALLBACK_DEL, _sub_obj_del, sd); @@ -842,6 +857,8 @@ { Smart_Data *sd2 = evas_object_smart_data_get(sd->resize_obj); if (sd2) sd2->parent_obj = obj; + evas_object_event_callback_add(sobj, EVAS_CALLBACK_HIDE, + _sub_obj_hide, sd); } evas_object_clip_set(sobj, evas_object_clip_get(obj)); evas_object_smart_member_add(sobj, obj); @@ -2661,7 +2678,6 @@ if (evas_object_data_get(o, "_elm_leaveme")) continue; evas_object_hide(o); } - _if_focused_revert(obj, EINA_TRUE); } static void |
From: Enlightenment S. <no-...@en...> - 2011-03-22 02:08:44
|
Log: menu api was the wrong name.. Author: raster Date: 2011-03-21 19:08:38 -0700 (Mon, 21 Mar 2011) New Revision: 57954 Trac: http://trac.enlightenment.org/e/changeset/57954 Modified: trunk/elementary/src/lib/Elementary.h.in trunk/elementary/src/lib/elm_menu.c Modified: trunk/elementary/src/lib/Elementary.h.in =================================================================== --- trunk/elementary/src/lib/Elementary.h.in 2011-03-22 01:59:19 UTC (rev 57953) +++ trunk/elementary/src/lib/Elementary.h.in 2011-03-22 02:08:38 UTC (rev 57954) @@ -1553,7 +1553,7 @@ EAPI void elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_menu_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI void elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1); - EAPI Evas_Object *elm_menu_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1); + EAPI Evas_Object *elm_menu_item_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1); EAPI Elm_Menu_Item *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1); EAPI void elm_menu_item_label_set(Elm_Menu_Item *item, const char *label) EINA_ARG_NONNULL(1); EAPI const char *elm_menu_item_label_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1); Modified: trunk/elementary/src/lib/elm_menu.c =================================================================== --- trunk/elementary/src/lib/elm_menu.c 2011-03-22 01:59:19 UTC (rev 57953) +++ trunk/elementary/src/lib/elm_menu.c 2011-03-22 02:08:38 UTC (rev 57954) @@ -566,7 +566,7 @@ * @ingroup Menu */ EAPI Evas_Object * -elm_menu_object_get(const Elm_Menu_Item *item) +elm_menu_item_object_get(const Elm_Menu_Item *item) { ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL); return item->base.view; |
From: Enlightenment S. <no-...@en...> - 2011-03-22 02:12:33
|
Log: warning-- Author: raster Date: 2011-03-21 19:12:27 -0700 (Mon, 21 Mar 2011) New Revision: 57955 Trac: http://trac.enlightenment.org/e/changeset/57955 Modified: trunk/elementary/src/lib/elm_widget.c Modified: trunk/elementary/src/lib/elm_widget.c =================================================================== --- trunk/elementary/src/lib/elm_widget.c 2011-03-22 02:08:38 UTC (rev 57954) +++ trunk/elementary/src/lib/elm_widget.c 2011-03-22 02:12:27 UTC (rev 57955) @@ -178,7 +178,7 @@ } static void -_sub_obj_hide(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) +_sub_obj_hide(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) { _if_focused_revert(obj, EINA_TRUE); } |
From: Enlightenment S. <no-...@en...> - 2011-03-22 02:29:33
|
Log: From: Tristan Lelong <tri...@bl...> >>> Hello, >>> >>> I was using elementary on a target that only has a keyboard, and I add >>> to do several modification on the elm_menu to handle keyboard >>> navigation. >>> - patch 2: add accessors for menu items and add the ability to handle >>> selected item from C source code Author: raster Date: 2011-03-21 19:29:26 -0700 (Mon, 21 Mar 2011) New Revision: 57957 Trac: http://trac.enlightenment.org/e/changeset/57957 Modified: trunk/elementary/src/lib/Elementary.h.in trunk/elementary/src/lib/elm_menu.c Modified: trunk/elementary/src/lib/Elementary.h.in =================================================================== --- trunk/elementary/src/lib/Elementary.h.in 2011-03-22 02:24:52 UTC (rev 57956) +++ trunk/elementary/src/lib/Elementary.h.in 2011-03-22 02:29:26 UTC (rev 57957) @@ -1553,6 +1553,7 @@ EAPI void elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_menu_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI void elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1); + EAPI const Eina_List *elm_menu_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_menu_item_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1); EAPI Elm_Menu_Item *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1); EAPI void elm_menu_item_label_set(Elm_Menu_Item *item, const char *label) EINA_ARG_NONNULL(1); @@ -1560,6 +1561,8 @@ EAPI void elm_menu_item_icon_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2); EAPI const char *elm_menu_item_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1); EAPI const Evas_Object *elm_menu_item_object_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1); + EAPI void elm_menu_item_selected_set(Elm_Menu_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1); + EAPI Eina_Bool elm_menu_item_selected_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1); EAPI void elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1); EAPI Eina_Bool elm_menu_item_disabled_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1); EAPI Elm_Menu_Item *elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent) EINA_ARG_NONNULL(1); @@ -1569,6 +1572,12 @@ EAPI void *elm_menu_item_data_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1); EAPI void elm_menu_item_data_set(Elm_Menu_Item *item, const void *data) EINA_ARG_NONNULL(1); EAPI const Eina_List *elm_menu_item_subitems_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1); + EAPI const Elm_Menu_Item *elm_menu_selected_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1); + EAPI const Elm_Menu_Item *elm_menu_last_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1); + EAPI const Elm_Menu_Item *elm_menu_first_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1); + EAPI const Elm_Menu_Item *elm_menu_item_next_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1); + EAPI const Elm_Menu_Item *elm_menu_item_prev_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1); + /* smart callbacks called: * "clicked" - the user clicked the empty space in the menu to dismiss. event_info is NULL. */ Modified: trunk/elementary/src/lib/elm_menu.c =================================================================== --- trunk/elementary/src/lib/elm_menu.c 2011-03-22 02:24:52 UTC (rev 57956) +++ trunk/elementary/src/lib/elm_menu.c 2011-03-22 02:29:26 UTC (rev 57957) @@ -29,6 +29,7 @@ Eina_Bool separator : 1; Eina_Bool disabled : 1; + Eina_Bool selected: 1; }; struct _Widget_Data @@ -321,11 +322,12 @@ Eina_List *l; Elm_Menu_Item *item2; Elm_Menu_Item *item = data; + item->selected = 1; if (item->parent) { EINA_LIST_FOREACH(item->parent->submenu.items, l, item2) { - if ((item2->submenu.open) && (item2 != item)) _submenu_hide(item2); + if (item2 != item) elm_menu_item_selected_set(item2, 0); } } else @@ -333,12 +335,20 @@ Widget_Data *wd = elm_widget_data_get(item->base.widget); EINA_LIST_FOREACH(wd->items, l, item2) { - if ((item2->submenu.open) && (item2 != item)) _submenu_hide(item2); + if (item2 != item) elm_menu_item_selected_set(item2, 0); } } } static void +_menu_item_inactivate(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) +{ + Elm_Menu_Item *item = data; + item->selected = 0; + if (item->submenu.open) _submenu_hide(item); +} + +static void _submenu_open(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) { Elm_Menu_Item *item = data; @@ -369,6 +379,8 @@ _menu_item_select, item); edje_object_signal_callback_add(item->base.view, "elm,action,activate", "", _menu_item_activate, item); + edje_object_signal_callback_add(item->base.view, "elm,action,inactivate", "", + _menu_item_inactivate, item); evas_object_show(item->base.view); } @@ -764,7 +776,6 @@ elm_menu_item_disabled_get(const Elm_Menu_Item *item) { ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, EINA_FALSE); - if (!item) return EINA_FALSE; return item->disabled; } @@ -879,7 +890,7 @@ if (item->submenu.location) evas_object_del(item->submenu.location); if (item->parent) - item->parent->submenu.items = eina_list_remove(item->parent->submenu.items, item); + item->parent->submenu.items = eina_list_remove(item->parent->submenu.items, item); else { Widget_Data *wd = elm_widget_data_get(item->base.widget); @@ -948,3 +959,184 @@ ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL); return item->submenu.items; } + +/** + * Returns a list of @p item's items. + * + * @param obj The menu object + * @return An Eina_List* of @p item's items + * + * @ingroup Menu + */ +EAPI const Eina_List * +elm_menu_items_get(const Evas_Object * obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) NULL; + Widget_Data *wd = elm_widget_data_get(obj); + return wd->items; +} + +/** + * Set the selected state of @p item. + * + * @param item The menu item object. + * @param selected The selected/unselected state of the item + * + * @ingroup Menu + */ +EAPI void +elm_menu_item_selected_set(Elm_Menu_Item *item, Eina_Bool selected) +{ + ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item); + if (selected == item->selected) return; + item->selected = selected; + if (selected) + { + edje_object_signal_emit(item->base.view, "elm,state,selected", "elm"); + _menu_item_activate(item, NULL, NULL, NULL); + } + else + { + edje_object_signal_emit(item->base.view, "elm,state,unselected", "elm"); + _menu_item_inactivate(item, NULL, NULL, NULL); + } + edje_object_message_signal_process(item->base.view); +} + +/** + * Get the selected state of @p item. + * + * @param item The menu item object. + * @return The selected/unselected state of the item + * + * @ingroup Menu + */ +EAPI Eina_Bool +elm_menu_item_selected_get(const Elm_Menu_Item *item) +{ + ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, EINA_FALSE); + return item->selected; +} + +/** + * Get the previous item in the menu. + * + * @param item The menu item object. + * @return The item before it, or NULL if none + * + * @ingroup Menu + */ +EAPI const Elm_Menu_Item * +elm_menu_item_prev_get(const Elm_Menu_Item *it) +{ + ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL); + if (it->parent) + { + Eina_List *l = eina_list_data_find_list(it->parent->submenu.items, it); + l = eina_list_prev(l); + if (!l) return NULL; + return l->data; + } + else + { + Widget_Data *wd = elm_widget_data_get(it->base.widget); + if (!wd | !wd->items) return NULL; + Eina_List *l = eina_list_data_find_list(wd->items, it); + l = eina_list_prev(l); + if (!l) return NULL; + return l->data; + } + return NULL; +} + +/** + * Get the next item in the menu. + * + * @param item The menu item object. + * @return The item after it, or NULL if none + * + * @ingroup Menu + */ +EAPI const Elm_Menu_Item * +elm_menu_item_next_get(const Elm_Menu_Item *it) +{ + ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL); + if (it->parent) + { + Eina_List *l = eina_list_data_find_list(it->parent->submenu.items, it); + l = eina_list_next(l); + if (!l) return NULL; + return l->data; + } + else + { + Widget_Data *wd = elm_widget_data_get(it->base.widget); + if (!wd | !wd->items) return NULL; + Eina_List *l = eina_list_data_find_list(wd->items, it); + l = eina_list_next(l); + if (!l) return NULL; + return l->data; + } + return NULL; +} + +/** + * Get the first item in the menu + * + * @param obj The menu object + * @return The first item, or NULL if none + * + * @ingroup Menu + */ +EAPI const Elm_Menu_Item * +elm_menu_first_item_get(const Evas_Object * obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) NULL; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return NULL; + if (wd->items) return wd->items->data; + return NULL; +} + +/** + * Get the last item in the menu + * + * @param obj The menu object + * @return The last item, or NULL if none + * + * @ingroup Menu + */ +EAPI const Elm_Menu_Item * +elm_menu_last_item_get(const Evas_Object * obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) NULL; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return NULL; + Eina_List *l = eina_list_last(wd->items); + if (l) return l->data; + return NULL; +} + +/** + * Get the selected item in the menu + * + * @param obj The menu object + * @return The selected item, or NULL if none + * + * @ingroup Menu + */ +EAPI const Elm_Menu_Item * +elm_menu_selected_item_get(const Evas_Object * obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) NULL; + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return NULL; + Eina_List *l; + Elm_Menu_Item *item; + EINA_LIST_FOREACH(wd->items, l, item) + { + if (item->selected) return item; + } + return NULL; +} + |
From: Enlightenment S. <no-...@en...> - 2011-03-22 02:59:15
|
Log: From: WooHyun Jung <wh0...@sa...> Subject: [E-devel] [Patch] Small patch for elm_slider (scrolling pop + push) I made small patch for elm_slider. I think scrolling should be freezed (not held) when dragging is started. This is because scrolling can go on with elm_widget_scroll_hold_push. Author: raster Date: 2011-03-21 19:59:06 -0700 (Mon, 21 Mar 2011) New Revision: 57959 Trac: http://trac.enlightenment.org/e/changeset/57959 Modified: trunk/elementary/src/lib/elm_slider.c Modified: trunk/elementary/src/lib/elm_slider.c =================================================================== --- trunk/elementary/src/lib/elm_slider.c 2011-03-22 02:51:34 UTC (rev 57958) +++ trunk/elementary/src/lib/elm_slider.c 2011-03-22 02:59:06 UTC (rev 57959) @@ -407,7 +407,7 @@ evas_object_smart_callback_call(data, SIG_DRAG_START, NULL); _units_set(data); _indicator_set(data); - elm_widget_scroll_hold_push(data); + elm_widget_scroll_freeze_push(data); } static void @@ -417,7 +417,7 @@ evas_object_smart_callback_call(data, SIG_DRAG_STOP, NULL); _units_set(data); _indicator_set(data); - elm_widget_scroll_hold_pop(data); + elm_widget_scroll_freeze_pop(data); } static void |
From: Enlightenment S. <no-...@en...> - 2011-03-23 13:29:33
|
Log: listen to move events and track on override-redirect windows. Author: raster Date: 2011-03-23 06:29:26 -0700 (Wed, 23 Mar 2011) New Revision: 58032 Trac: http://trac.enlightenment.org/e/changeset/58032 Modified: trunk/elementary/src/lib/elm_win.c Modified: trunk/elementary/src/lib/elm_win.c =================================================================== --- trunk/elementary/src/lib/elm_win.c 2011-03-23 11:43:52 UTC (rev 58031) +++ trunk/elementary/src/lib/elm_win.c 2011-03-23 13:29:26 UTC (rev 58032) @@ -287,6 +287,22 @@ } static void +_elm_win_obj_callback_move(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) +{ + Elm_Win *win = data; + + if (ecore_evas_override_get(win->ee)) + { + Evas_Coord x, y; + + evas_object_geometry_get(obj, &x, &y, NULL, NULL); + win->screen.x = x; + win->screen.y = y; + evas_object_smart_callback_call(win->win_obj, "moved", NULL); + } +} + +static void _elm_win_delete_request(Ecore_Evas *ee) { Evas_Object *obj = ecore_evas_object_associate_get(ee); @@ -1078,6 +1094,8 @@ _elm_win_obj_callback_show, win); evas_object_event_callback_add(win->win_obj, EVAS_CALLBACK_DEL, _elm_win_obj_callback_del, win); + evas_object_event_callback_add(win->win_obj, EVAS_CALLBACK_MOVE, + _elm_win_obj_callback_move, win); ecore_evas_name_class_set(win->ee, name, _elm_appname); ecore_evas_callback_delete_request_set(win->ee, _elm_win_delete_request); |
From: Enlightenment S. <no-...@en...> - 2011-03-24 07:34:31
|
Log: From: Jae Hwan Kim <jae...@sa...> If the scroller is stopped and set the freeze push while bounce animation is running, it will stop bouncing in a moment. Even if the scroller is set the freeze pop again, the scroller don't finish the bouncing. I think that it should finish the bouncing when it is set the freeze pop. Author: raster Date: 2011-03-24 00:34:23 -0700 (Thu, 24 Mar 2011) New Revision: 58063 Trac: http://trac.enlightenment.org/e/changeset/58063 Modified: trunk/elementary/src/lib/els_scroller.c Modified: trunk/elementary/src/lib/els_scroller.c =================================================================== --- trunk/elementary/src/lib/els_scroller.c 2011-03-24 04:45:02 UTC (rev 58062) +++ trunk/elementary/src/lib/els_scroller.c 2011-03-24 07:34:23 UTC (rev 58063) @@ -1233,6 +1233,8 @@ sd->down.onhold_animator = NULL; } } + else + bounce_eval(sd); } void @@ -1759,8 +1761,7 @@ { vel = sqrt((dx * dx) + (dy * dy)) / at; if ((_elm_config->thumbscroll_friction > 0.0) && - (vel > _elm_config->thumbscroll_momentum_threshold) && - (!sd->freeze)) + (vel > _elm_config->thumbscroll_momentum_threshold)) { sd->down.dx = ((double)dx / at); sd->down.dy = ((double)dy / at); |
From: Enlightenment S. <no-...@en...> - 2011-03-25 04:13:17
|
Log: From: Jihoon Kim <jih...@sa...> Subject: [E-devel] [PATCH] Patch to give focus to the content in elm_notify lm_notify has not handled the focus movement. Even though a button widget is contained in an notify widget and notify widget is shown, button widget could not be focused. Therefore, button couldn't process any key event such as space and enter key. This patch will solve this problem. Author: raster Date: 2011-03-24 21:13:10 -0700 (Thu, 24 Mar 2011) New Revision: 58081 Trac: http://trac.enlightenment.org/e/changeset/58081 Modified: trunk/elementary/src/lib/elm_notify.c Modified: trunk/elementary/src/lib/elm_notify.c =================================================================== --- trunk/elementary/src/lib/elm_notify.c 2011-03-25 03:21:07 UTC (rev 58080) +++ trunk/elementary/src/lib/elm_notify.c 2011-03-25 04:13:10 UTC (rev 58081) @@ -361,6 +361,7 @@ if (!wd->repeat_events) evas_object_show(wd->block_events); _timer_init(obj, wd); + elm_object_focus(obj); } static void @@ -396,6 +397,21 @@ evas_object_hide(obj); } +static Eina_Bool +_elm_notify_focus_next_hook(const Evas_Object *obj, Elm_Focus_Direction dir, Evas_Object **next) +{ + Widget_Data *wd = elm_widget_data_get(obj); + Evas_Object *cur; + + if ((!wd) || (!wd->content)) + return EINA_FALSE; + + cur = wd->content; + + /* Try Focus cycle in subitem */ + return elm_widget_focus_next_get(cur, dir, next); +} + /** * Add a new notify to the parent * @@ -425,6 +441,7 @@ elm_widget_del_hook_set(obj, _del_hook); elm_widget_theme_hook_set(obj, _theme_hook); elm_widget_can_focus_set(obj, EINA_FALSE); + elm_widget_focus_next_hook_set(obj, _elm_notify_focus_next_hook); wd->repeat_events = EINA_TRUE; @@ -557,7 +574,7 @@ _parent_hide, obj); wd->parent = NULL; } - + if (parent) { wd->parent = parent; @@ -600,6 +617,8 @@ * * @param obj The notify object * @param orient The new orientation + * + * @ingroup Notify */ EAPI void elm_notify_orient_set(Evas_Object *obj, Elm_Notify_Orient orient) |
From: Enlightenment S. <no-...@en...> - 2011-03-25 04:27:55
|
Log: From: Seunggyun Kim <sgy...@sa...> Subject: [E-devel] elm_genlist - bug fix about _update_job I found one bug in _update_job. Now, when the elm_genlist_item_update is called, all realized items have been updated. In _update_job logic, item block is recalculated if it->minw and itminw is not same. But before comparing that, itminw value is saved it->w. And it->minw value is saved in _item_realzie function. Then there are different between it->minw and itminw value. So the item block is recalculated and _item_block_position is called. After applying below patch, elm_genlist_item_update api updates only one item. Author: raster Date: 2011-03-24 21:27:47 -0700 (Thu, 24 Mar 2011) New Revision: 58082 Trac: http://trac.enlightenment.org/e/changeset/58082 Modified: trunk/elementary/src/lib/elm_genlist.c Modified: trunk/elementary/src/lib/elm_genlist.c =================================================================== --- trunk/elementary/src/lib/elm_genlist.c 2011-03-25 04:13:10 UTC (rev 58081) +++ trunk/elementary/src/lib/elm_genlist.c 2011-03-25 04:27:47 UTC (rev 58082) @@ -2267,8 +2267,8 @@ { if (it->updateme) { - itminw = it->w; - itminh = it->h; + itminw = it->minw; + itminh = it->minh; it->updateme = EINA_FALSE; if (it->realized) |
From: Enlightenment S. <no-...@en...> - 2011-03-25 04:33:58
|
Log: From: suxia li <sux...@sa...> Subject: [E-devel] Patch for photocam elm_photocam_file_set hello, i made a patch for photocam, because i found a bug that sometimes grid_clearall is done after image preload process, but it should be done before image preload process, otherwise, only low quality image is loaded. Please have a check, thanks~ Author: raster Date: 2011-03-24 21:33:51 -0700 (Thu, 24 Mar 2011) New Revision: 58083 Trac: http://trac.enlightenment.org/e/changeset/58083 Modified: trunk/elementary/src/lib/elm_photocam.c Modified: trunk/elementary/src/lib/elm_photocam.c =================================================================== --- trunk/elementary/src/lib/elm_photocam.c 2011-03-25 04:27:47 UTC (rev 58082) +++ trunk/elementary/src/lib/elm_photocam.c 2011-03-25 04:33:51 UTC (rev 58083) @@ -1178,6 +1178,8 @@ int w, h; if (!wd) return EVAS_LOAD_ERROR_GENERIC; if (!eina_stringshare_replace(&wd->file, file)) return EVAS_LOAD_ERROR_NONE; + grid_clearall(obj); + evas_object_hide(wd->img); evas_object_image_smooth_scale_set(wd->img, (wd->nosmooth == 0)); evas_object_image_file_set(wd->img, NULL, NULL); @@ -1200,7 +1202,6 @@ evas_object_image_file_set(wd->img, wd->file, NULL); evas_object_image_preload(wd->img, 0); wd->main_load_pending = 1; - grid_clearall(obj); if (wd->calc_job) ecore_job_del(wd->calc_job); wd->calc_job = ecore_job_add(_calc_job, wd); evas_object_smart_callback_call(obj, "load", NULL); |
From: Enlightenment S. <no-...@en...> - 2011-03-25 04:42:19
|
Log: From: Tristan Lelong <tri...@bl...> Subject: [E-devel] [PATCH]: keyboard navigation in menus I was using elementary on a target that only has a keyboard, and I add to do several modification on the elm_menu to handle keyboard navigation. - patch 1: discard a menu from C source code - patch 2: add accessors for menu items and add the ability to handle selected item from C source code Author: raster Date: 2011-03-24 21:42:12 -0700 (Thu, 24 Mar 2011) New Revision: 58084 Trac: http://trac.enlightenment.org/e/changeset/58084 Modified: trunk/elementary/src/lib/Elementary.h.in trunk/elementary/src/lib/elm_menu.c Modified: trunk/elementary/src/lib/Elementary.h.in =================================================================== --- trunk/elementary/src/lib/Elementary.h.in 2011-03-25 04:33:51 UTC (rev 58083) +++ trunk/elementary/src/lib/Elementary.h.in 2011-03-25 04:42:12 UTC (rev 58084) @@ -1559,6 +1559,7 @@ EAPI void elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_menu_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI void elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1); + EAPI void elm_menu_close(Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI const Eina_List *elm_menu_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); EAPI Evas_Object *elm_menu_item_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1); EAPI Elm_Menu_Item *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1); Modified: trunk/elementary/src/lib/elm_menu.c =================================================================== --- trunk/elementary/src/lib/elm_menu.c 2011-03-25 04:33:51 UTC (rev 58083) +++ trunk/elementary/src/lib/elm_menu.c 2011-03-25 04:42:12 UTC (rev 58084) @@ -571,6 +571,22 @@ } /** + * Close a opened menu + * + * @param obj the menu object + * @return void + * + * @ingroup Menu + */ +EAPI void +elm_menu_close(Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + _menu_hide(obj, wd->hv, NULL); +} + +/** * Get the Evas_Object of an Elm_Menu_Item * * @param item The menu item object. |
From: Enlightenment S. <no-...@en...> - 2011-04-01 05:03:44
|
Log: valgrind complaints-- Author: raster Date: 2011-03-31 22:03:38 -0700 (Thu, 31 Mar 2011) New Revision: 58241 Trac: http://trac.enlightenment.org/e/changeset/58241 Modified: trunk/elementary/src/lib/elm_scroller.c Modified: trunk/elementary/src/lib/elm_scroller.c =================================================================== --- trunk/elementary/src/lib/elm_scroller.c 2011-04-01 04:03:08 UTC (rev 58240) +++ trunk/elementary/src/lib/elm_scroller.c 2011-04-01 05:03:38 UTC (rev 58241) @@ -278,8 +278,8 @@ _sizing_eval(Evas_Object *obj) { Widget_Data *wd = elm_widget_data_get(obj); - Evas_Coord vw, vh, minw, minh, maxw, maxh, w, h, vmw, vmh; - double xw, yw; + Evas_Coord vw, vh, minw = 0, minh = 0, maxw = 0, maxh = 0, w, h, vmw, vmh; + double xw = 0.0, yw = 0.0; if (!wd) return; if (wd->content) |
From: Enlightenment S. <no-...@en...> - 2011-04-01 06:08:10
|
Log: make all widgets use a standard setup macro. cuts code down and handles null parent errors, null wd alloc, null obj create errors etc. Author: raster Date: 2011-03-31 23:08:02 -0700 (Thu, 31 Mar 2011) New Revision: 58242 Trac: http://trac.enlightenment.org/e/changeset/58242 Modified: trunk/elementary/src/lib/elc_anchorblock.c trunk/elementary/src/lib/elc_anchorview.c trunk/elementary/src/lib/elc_ctxpopup.c trunk/elementary/src/lib/elc_fileselector.c trunk/elementary/src/lib/elc_fileselector_button.c trunk/elementary/src/lib/elc_fileselector_entry.c trunk/elementary/src/lib/elc_hoversel.c trunk/elementary/src/lib/elc_scrolled_entry.c trunk/elementary/src/lib/elm_actionslider.c trunk/elementary/src/lib/elm_bg.c trunk/elementary/src/lib/elm_box.c trunk/elementary/src/lib/elm_bubble.c trunk/elementary/src/lib/elm_button.c trunk/elementary/src/lib/elm_calendar.c trunk/elementary/src/lib/elm_check.c trunk/elementary/src/lib/elm_clock.c trunk/elementary/src/lib/elm_colorselector.c trunk/elementary/src/lib/elm_conform.c trunk/elementary/src/lib/elm_diskselector.c trunk/elementary/src/lib/elm_entry.c trunk/elementary/src/lib/elm_flip.c trunk/elementary/src/lib/elm_flipselector.c trunk/elementary/src/lib/elm_frame.c trunk/elementary/src/lib/elm_gengrid.c trunk/elementary/src/lib/elm_genlist.c trunk/elementary/src/lib/elm_hover.c trunk/elementary/src/lib/elm_icon.c trunk/elementary/src/lib/elm_image.c trunk/elementary/src/lib/elm_index.c trunk/elementary/src/lib/elm_label.c trunk/elementary/src/lib/elm_layout.c trunk/elementary/src/lib/elm_list.c trunk/elementary/src/lib/elm_map.c trunk/elementary/src/lib/elm_mapbuf.c trunk/elementary/src/lib/elm_menu.c trunk/elementary/src/lib/elm_notify.c trunk/elementary/src/lib/elm_pager.c trunk/elementary/src/lib/elm_panel.c trunk/elementary/src/lib/elm_panes.c trunk/elementary/src/lib/elm_photo.c trunk/elementary/src/lib/elm_photocam.c trunk/elementary/src/lib/elm_progressbar.c trunk/elementary/src/lib/elm_radio.c trunk/elementary/src/lib/elm_scroller.c trunk/elementary/src/lib/elm_separator.c trunk/elementary/src/lib/elm_slider.c trunk/elementary/src/lib/elm_slideshow.c trunk/elementary/src/lib/elm_spinner.c trunk/elementary/src/lib/elm_table.c trunk/elementary/src/lib/elm_thumb.c trunk/elementary/src/lib/elm_toggle.c trunk/elementary/src/lib/elm_toolbar.c trunk/elementary/src/lib/elm_widget.h Modified: trunk/elementary/src/lib/elc_anchorblock.c =================================================================== --- trunk/elementary/src/lib/elc_anchorblock.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elc_anchorblock.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -210,12 +210,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "anchorblock"); elm_widget_type_set(obj, "anchorblock"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elc_anchorview.c =================================================================== --- trunk/elementary/src/lib/elc_anchorview.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elc_anchorview.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -201,12 +201,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "anchorview"); elm_widget_type_set(obj, "anchorview"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elc_ctxpopup.c =================================================================== --- trunk/elementary/src/lib/elc_ctxpopup.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elc_ctxpopup.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -926,12 +926,8 @@ Widget_Data *wd; Evas_Coord x, y, w, h; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "ctxpopup"); elm_widget_type_set(obj, "ctxpopup"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elc_fileselector.c =================================================================== --- trunk/elementary/src/lib/elc_fileselector.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elc_fileselector.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -564,18 +564,13 @@ EAPI Evas_Object * elm_fileselector_add(Evas_Object *parent) { - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - Evas *e = evas_object_evas_get(parent); - if (!e) return NULL; + Evas *e; Evas_Object *obj, *ic, *bt, *li, *en, *grid; Widget_Data *wd; int s; - // Elementary Widget - wd = ELM_NEW(Widget_Data); - wd->expand = !!_elm_config->fileselector_expand_enable; - obj = elm_widget_add(evas_object_evas_get(parent)); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "fileselector"); elm_widget_type_set(obj, "fileselector"); elm_widget_sub_object_add(parent, obj); @@ -584,6 +579,8 @@ elm_widget_theme_hook_set(obj, _theme_hook); elm_widget_can_focus_set(obj, EINA_FALSE); + wd->expand = !!_elm_config->fileselector_expand_enable; + wd->edje = edje_object_add(e); _elm_theme_object_set(obj, wd->edje, "fileselector", "base", "default"); elm_widget_resize_object_set(obj, wd->edje); Modified: trunk/elementary/src/lib/elc_fileselector_button.c =================================================================== --- trunk/elementary/src/lib/elc_fileselector_button.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elc_fileselector_button.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -263,23 +263,11 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - wd->window_title = eina_stringshare_add(DEFAULT_WINDOW_TITLE); - wd->fsd.path = eina_stringshare_add(getenv("HOME")); - wd->fsd.expandable = _elm_config->fileselector_expand_enable; - wd->inwin_mode = _elm_config->inwin_dialogs_enable; - wd->w = 400; - wd->h = 400; - - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "fileselector_button"); elm_widget_type_set(obj, "fileselector_button"); elm_widget_sub_object_add(parent, obj); - wd->self = obj; elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL); elm_widget_data_set(obj, wd); elm_widget_del_hook_set(obj, _del_hook); @@ -288,6 +276,15 @@ elm_widget_can_focus_set(obj, EINA_TRUE); elm_widget_activate_hook_set(obj, _activate_hook); + wd->self = obj; + wd->window_title = eina_stringshare_add(DEFAULT_WINDOW_TITLE); + if (getenv("HOME")) wd->fsd.path = eina_stringshare_add(getenv("HOME")); + else wd->fsd.path = eina_stringshare_add("/"); + wd->fsd.expandable = _elm_config->fileselector_expand_enable; + wd->inwin_mode = _elm_config->inwin_dialogs_enable; + wd->w = 400; + wd->h = 400; + wd->btn = elm_button_add(parent); elm_widget_mirrored_automatic_set(wd->btn, EINA_FALSE); elm_widget_resize_object_set(obj, wd->btn); Modified: trunk/elementary/src/lib/elc_fileselector_entry.c =================================================================== --- trunk/elementary/src/lib/elc_fileselector_entry.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elc_fileselector_entry.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -224,15 +224,11 @@ elm_fileselector_entry_add(Evas_Object *parent) { Evas_Object *obj; - Evas *e = evas_object_evas_get(parent); - if (!e) return NULL; + Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "fileselector_entry"); elm_widget_type_set(obj, "fileselector_entry"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elc_hoversel.c =================================================================== --- trunk/elementary/src/lib/elc_hoversel.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elc_hoversel.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -274,12 +274,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "hoversel"); elm_widget_type_set(obj, "hoversel"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elc_scrolled_entry.c =================================================================== --- trunk/elementary/src/lib/elc_scrolled_entry.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elc_scrolled_entry.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -363,12 +363,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "scrolled_entry"); elm_widget_type_set(obj, "scrolled_entry"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_actionslider.c =================================================================== --- trunk/elementary/src/lib/elm_actionslider.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_actionslider.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -341,12 +341,8 @@ Widget_Data *wd; Evas *e; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "actionslider"); elm_widget_type_set(obj, "actionslider"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_bg.c =================================================================== --- trunk/elementary/src/lib/elm_bg.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_bg.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -135,12 +135,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "bg"); elm_widget_type_set(obj, "bg"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_box.c =================================================================== --- trunk/elementary/src/lib/elm_box.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_box.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -351,12 +351,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "box"); elm_widget_type_set(obj, "box"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_bubble.c =================================================================== --- trunk/elementary/src/lib/elm_bubble.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_bubble.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -163,12 +163,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "bubble"); elm_widget_type_set(obj, "bubble"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_button.c =================================================================== --- trunk/elementary/src/lib/elm_button.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_button.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -306,12 +306,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "button"); elm_widget_type_set(obj, "button"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_calendar.c =================================================================== --- trunk/elementary/src/lib/elm_calendar.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_calendar.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -728,12 +728,8 @@ int i, t; Evas *e; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "calendar"); elm_widget_type_set(obj, "calendar"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_check.c =================================================================== --- trunk/elementary/src/lib/elm_check.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_check.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -246,12 +246,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "check"); elm_widget_type_set(obj, "check"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_clock.c =================================================================== --- trunk/elementary/src/lib/elm_clock.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_clock.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -530,12 +530,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "clock"); elm_widget_type_set(obj, "clock"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_colorselector.c =================================================================== --- trunk/elementary/src/lib/elm_colorselector.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_colorselector.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -804,12 +804,8 @@ Widget_Data *wd = NULL; Evas *e; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "colorselector"); elm_widget_type_set(obj, "colorselector"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_conform.c =================================================================== --- trunk/elementary/src/lib/elm_conform.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_conform.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -223,17 +223,11 @@ elm_conformant_add(Evas_Object *parent) { Evas_Object *obj; - Evas *evas; + Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - - evas = evas_object_evas_get(parent); - if (!evas) return NULL; - - obj = elm_widget_add(evas); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "conformant"); elm_widget_type_set(obj, "conformant"); elm_widget_sub_object_add(parent, obj); @@ -242,7 +236,7 @@ elm_widget_theme_hook_set(obj, _theme_hook); elm_widget_can_focus_set(obj, EINA_FALSE); - wd->base = edje_object_add(evas); + wd->base = edje_object_add(e); _elm_theme_object_set(obj, wd->base, "conformant", "base", "default"); elm_widget_resize_object_set(obj, wd->base); @@ -255,7 +249,7 @@ ecore_x_e_illume_indicator_geometry_get(zone, NULL, NULL, NULL, &sh); if (sh < 0) sh = 0; - wd->shelf = evas_object_rectangle_add(evas); + wd->shelf = evas_object_rectangle_add(e); evas_object_color_set(wd->shelf, 0, 0, 0, 0); evas_object_size_hint_min_set(wd->shelf, -1, sh); evas_object_size_hint_max_set(wd->shelf, -1, sh); @@ -264,7 +258,7 @@ sh = -1; ecore_x_e_illume_softkey_geometry_get(zone, NULL, NULL, NULL, &sh); if (sh < 0) sh = 0; - wd->panel = evas_object_rectangle_add(evas); + wd->panel = evas_object_rectangle_add(e); evas_object_color_set(wd->panel, 0, 0, 0, 0); evas_object_size_hint_min_set(wd->panel, -1, sh); evas_object_size_hint_max_set(wd->panel, -1, sh); Modified: trunk/elementary/src/lib/elm_diskselector.c =================================================================== --- trunk/elementary/src/lib/elm_diskselector.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_diskselector.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -621,13 +621,12 @@ EAPI Evas_Object * elm_diskselector_add(Evas_Object *parent) { + Evas *e; Evas_Object *obj; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - wd->self = obj = elm_widget_add(evas_object_evas_get(parent)); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "diskselector"); elm_widget_type_set(obj, "diskselector"); elm_widget_sub_object_add(parent, obj); @@ -639,12 +638,13 @@ elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL); elm_widget_event_hook_set(obj, _event_hook); + wd->self = obj; wd->item_count = 0; wd->round = EINA_FALSE; wd->init = EINA_FALSE; wd->len_side = 3; - wd->scroller = elm_smart_scroller_add(evas_object_evas_get(parent)); + wd->scroller = elm_smart_scroller_add(e); elm_smart_scroller_widget_set(wd->scroller, obj); _theme_hook(obj); elm_widget_resize_object_set(obj, wd->scroller); Modified: trunk/elementary/src/lib/elm_entry.c =================================================================== --- trunk/elementary/src/lib/elm_entry.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_entry.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -1489,12 +1489,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "entry"); elm_widget_type_set(obj, "entry"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_flip.c =================================================================== --- trunk/elementary/src/lib/elm_flip.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_flip.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -405,12 +405,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "flip"); elm_widget_type_set(obj, "flip"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_flipselector.c =================================================================== --- trunk/elementary/src/lib/elm_flipselector.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_flipselector.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -568,13 +568,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); - wd->self = obj; + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "flipselector"); elm_widget_type_set(obj, "flipselector"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_frame.c =================================================================== --- trunk/elementary/src/lib/elm_frame.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_frame.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -124,12 +124,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "frame"); elm_widget_type_set(obj, "frame"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_gengrid.c =================================================================== --- trunk/elementary/src/lib/elm_gengrid.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_gengrid.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -1545,12 +1545,8 @@ static Evas_Smart *smart = NULL; Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "gengrid"); elm_widget_type_set(obj, "gengrid"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_genlist.c =================================================================== --- trunk/elementary/src/lib/elm_genlist.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_genlist.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -2608,8 +2608,6 @@ Evas_Coord minw, minh; static Evas_Smart *smart = NULL; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - if (!smart) { static Evas_Smart_Class sc; @@ -2625,10 +2623,9 @@ sc.calculate = _pan_calculate; if (!(smart = evas_smart_class_new(&sc))) return NULL; } - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "genlist"); elm_widget_type_set(obj, "genlist"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_hover.c =================================================================== --- trunk/elementary/src/lib/elm_hover.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_hover.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -493,16 +493,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - - ELM_HOVER_PARTS_FOREACH - wd->subs[i].swallow = _directions[i]; - - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "hover"); elm_widget_type_set(obj, "hover"); elm_widget_sub_object_add(parent, obj); @@ -516,6 +508,9 @@ elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook); elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook); + ELM_HOVER_PARTS_FOREACH + wd->subs[i].swallow = _directions[i]; + wd->hov = evas_object_rectangle_add(e); evas_object_pass_events_set(wd->hov, EINA_TRUE); evas_object_color_set(wd->hov, 0, 0, 0, 0); Modified: trunk/elementary/src/lib/elm_icon.c =================================================================== --- trunk/elementary/src/lib/elm_icon.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_icon.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -186,12 +186,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "icon"); elm_widget_type_set(obj, "icon"); elm_widget_can_focus_set(obj, EINA_FALSE); Modified: trunk/elementary/src/lib/elm_image.c =================================================================== --- trunk/elementary/src/lib/elm_image.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_image.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -114,12 +114,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "image"); elm_widget_type_set(obj, "image"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_index.c =================================================================== --- trunk/elementary/src/lib/elm_index.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_index.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -512,12 +512,8 @@ Widget_Data *wd; Evas_Coord minw, minh; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "index"); elm_widget_type_set(obj, "index"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_label.c =================================================================== --- trunk/elementary/src/lib/elm_label.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_label.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -653,15 +653,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - wd->bgcolor = EINA_FALSE; - wd->bg = evas_object_rectangle_add(e); - evas_object_color_set(wd->bg, 0, 0, 0, 0); - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "label"); elm_widget_type_set(obj, "label"); elm_widget_sub_object_add(parent, obj); @@ -670,6 +663,10 @@ elm_widget_theme_hook_set(obj, _theme_hook); elm_widget_can_focus_set(obj, EINA_FALSE); + wd->bgcolor = EINA_FALSE; + wd->bg = evas_object_rectangle_add(e); + evas_object_color_set(wd->bg, 0, 0, 0, 0); + wd->linewrap = EINA_FALSE; wd->ellipsis = EINA_FALSE; wd->slidingmode = EINA_FALSE; Modified: trunk/elementary/src/lib/elm_layout.c =================================================================== --- trunk/elementary/src/lib/elm_layout.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_layout.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -321,12 +321,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - wd->obj = obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "layout"); elm_widget_type_set(obj, "layout"); elm_widget_sub_object_add(parent, obj); @@ -340,6 +336,7 @@ elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook); elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook); + wd->obj = obj; wd->lay = edje_object_add(e); elm_widget_resize_object_set(obj, wd->lay); edje_object_signal_callback_add(wd->lay, "size,eval", "elm", Modified: trunk/elementary/src/lib/elm_list.c =================================================================== --- trunk/elementary/src/lib/elm_list.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_list.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -1272,12 +1272,8 @@ Widget_Data *wd; Evas_Coord minw, minh; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - wd->self = obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "list"); elm_widget_type_set(obj, "list"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_map.c =================================================================== --- trunk/elementary/src/lib/elm_map.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_map.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -2100,18 +2100,8 @@ static Evas_Smart *smart = NULL; Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - if (!ecore_file_download_protocol_available("http://")) - { - ERR("Ecore must be built with the support of HTTP for the widget map !"); - return NULL; - } - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "map"); elm_widget_type_set(obj, "map"); elm_widget_sub_object_add(parent, obj); @@ -2223,6 +2213,12 @@ // TODO: convert Elementary to subclassing of Evas_Smart_Class // TODO: and save some bytes, making descriptions per-class and not instance! evas_object_smart_callbacks_descriptions_set(obj, _signals); + + if (!ecore_file_download_protocol_available("http://")) + { + ERR("Ecore must be built with curl support for the map widget!"); + } + return obj; } Modified: trunk/elementary/src/lib/elm_mapbuf.c =================================================================== --- trunk/elementary/src/lib/elm_mapbuf.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_mapbuf.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -167,12 +167,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "mapbuf"); elm_widget_type_set(obj, "mapbuf"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_menu.c =================================================================== --- trunk/elementary/src/lib/elm_menu.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_menu.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -444,12 +444,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "menu"); elm_widget_type_set(obj, "menu"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_notify.c =================================================================== --- trunk/elementary/src/lib/elm_notify.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_notify.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -427,12 +427,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "notify"); elm_widget_type_set(obj, "notify"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_pager.c =================================================================== --- trunk/elementary/src/lib/elm_pager.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_pager.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -256,12 +256,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "pager"); elm_widget_type_set(obj, "pager"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_panel.c =================================================================== --- trunk/elementary/src/lib/elm_panel.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_panel.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -252,15 +252,11 @@ elm_panel_add(Evas_Object *parent) { Evas_Object *obj; - Evas *evas; + Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - evas = evas_object_evas_get(parent); - if (!evas) return NULL; - obj = elm_widget_add(evas); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "panel"); elm_widget_type_set(obj, "panel"); elm_widget_sub_object_add(parent, obj); @@ -275,7 +271,7 @@ elm_widget_can_focus_set(obj, EINA_TRUE); elm_widget_event_hook_set(obj, _event_hook); - wd->scr = elm_smart_scroller_add(evas); + wd->scr = elm_smart_scroller_add(e); elm_smart_scroller_widget_set(wd->scr, obj); _theme_hook(obj); elm_smart_scroller_bounce_allow_set(wd->scr, EINA_FALSE, EINA_FALSE); @@ -286,7 +282,7 @@ wd->hidden = EINA_FALSE; wd->orient = ELM_PANEL_ORIENT_LEFT; - wd->bx = evas_object_box_add(evas); + wd->bx = evas_object_box_add(e); evas_object_size_hint_align_set(wd->bx, 0.5, 0.5); evas_object_box_layout_set(wd->bx, _layout, wd, NULL); elm_widget_sub_object_add(obj, wd->bx); Modified: trunk/elementary/src/lib/elm_panes.c =================================================================== --- trunk/elementary/src/lib/elm_panes.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_panes.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -210,12 +210,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "panes"); elm_widget_type_set(obj, "panes"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_photo.c =================================================================== --- trunk/elementary/src/lib/elm_photo.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_photo.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -217,12 +217,8 @@ Widget_Data *wd; Evas_Object *icon; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "photo"); elm_widget_type_set(obj, "photo"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_photocam.c =================================================================== --- trunk/elementary/src/lib/elm_photocam.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_photocam.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -1062,12 +1062,8 @@ static Evas_Smart *smart = NULL; Eina_Bool bounce = _elm_config->thumbscroll_bounce_enable; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "photocam"); elm_widget_type_set(obj, "photocam"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_progressbar.c =================================================================== --- trunk/elementary/src/lib/elm_progressbar.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_progressbar.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -202,12 +202,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "progressbar"); elm_widget_type_set(obj, "progressbar"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_radio.c =================================================================== --- trunk/elementary/src/lib/elm_radio.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_radio.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -283,12 +283,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "radio"); elm_widget_type_set(obj, "radio"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_scroller.c =================================================================== --- trunk/elementary/src/lib/elm_scroller.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_scroller.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -457,12 +457,8 @@ Widget_Data *wd; Evas_Coord minw, minh; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "scroller"); elm_widget_type_set(obj, "scroller"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_separator.c =================================================================== --- trunk/elementary/src/lib/elm_separator.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_separator.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -81,12 +81,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "separator"); wd->horizontal = EINA_FALSE; elm_widget_type_set(obj, "separator"); Modified: trunk/elementary/src/lib/elm_slider.c =================================================================== --- trunk/elementary/src/lib/elm_slider.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_slider.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -498,12 +498,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "slider"); elm_widget_type_set(obj, "slider"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_slideshow.c =================================================================== --- trunk/elementary/src/lib/elm_slideshow.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_slideshow.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -309,12 +309,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "slideshow"); elm_widget_type_set(obj, "slideshow"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_spinner.c =================================================================== --- trunk/elementary/src/lib/elm_spinner.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_spinner.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -575,12 +575,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "spinner"); elm_widget_type_set(obj, "spinner"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_table.c =================================================================== --- trunk/elementary/src/lib/elm_table.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_table.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -140,12 +140,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "table"); elm_widget_type_set(obj, "table"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_thumb.c =================================================================== --- trunk/elementary/src/lib/elm_thumb.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_thumb.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -420,17 +420,13 @@ EAPI Evas_Object * elm_thumb_add(Evas_Object *parent) { - Evas *evas; + Evas *e; Widget_Data *wd; Evas_Object *obj; Evas_Coord minw, minh; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - evas = evas_object_evas_get(parent); - if (!evas) return NULL; - obj = elm_widget_add(evas); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "thumb"); elm_widget_type_set(obj, "thumb"); elm_widget_sub_object_add(parent, obj); @@ -439,7 +435,7 @@ elm_widget_theme_hook_set(obj, _theme_hook); elm_widget_can_focus_set(obj, EINA_FALSE); - wd->frame = edje_object_add(evas); + wd->frame = edje_object_add(e); _elm_theme_object_set(obj, wd->frame, "thumb", "base", "default"); elm_widget_resize_object_set(obj, wd->frame); Modified: trunk/elementary/src/lib/elm_toggle.c =================================================================== --- trunk/elementary/src/lib/elm_toggle.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_toggle.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -217,12 +217,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "toggle"); elm_widget_type_set(obj, "toggle"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_toolbar.c =================================================================== --- trunk/elementary/src/lib/elm_toolbar.c 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_toolbar.c 2011-04-01 06:08:02 UTC (rev 58242) @@ -701,12 +701,8 @@ Evas *e; Widget_Data *wd; - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - - wd = ELM_NEW(Widget_Data); - e = evas_object_evas_get(parent); - if (!e) return NULL; - obj = elm_widget_add(e); + ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); + ELM_SET_WIDTYPE(widtype, "toolbar"); elm_widget_type_set(obj, "toolbar"); elm_widget_sub_object_add(parent, obj); Modified: trunk/elementary/src/lib/elm_widget.h =================================================================== --- trunk/elementary/src/lib/elm_widget.h 2011-04-01 05:03:38 UTC (rev 58241) +++ trunk/elementary/src/lib/elm_widget.h 2011-04-01 06:08:02 UTC (rev 58242) @@ -108,12 +108,10 @@ * // elementary and that the api hasn't broken. if it has this returns * // false and you need to handle this error gracefully * if (!elm_widget_api_check(ELM_INTERNAL_API_VERSION)) return NULL; + * + * // standard widget setup and allocate wd, create obj given parent etc. + * ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL); * - * // basic - allocate data for widget and fill it - * wd = ELM_NEW(Widget_Data); - * e = evas_object_evas_get(parent); - * if (!e) return NULL; - * obj = elm_widget_add(e); * // give it a type name and set up a mywidget type string if needed * ELM_SET_WIDTYPE(widtype, "mywidget"); * elm_widget_type_set(obj, "mywidget"); @@ -497,6 +495,13 @@ ELM_WIDGET_ITEM_CHECK_OR_GOTO((Elm_Widget_Item *)it, label); \ if (!elm_widget_type_check((it->base.widget), (widtype))) goto label; +#define ELM_WIDGET_STANDARD_SETUP(wdat, wdtype, par, evas, ob, ret) \ + do { \ + EINA_SAFETY_ON_NULL_RETURN_VAL((par), (ret)); \ + evas = evas_object_evas_get(par); if (!(evas)) return (ret); \ + wdat = ELM_NEW(wdtype); if (!(wdat)) return (ret); \ + ob = elm_widget_add(evas); if (!(ob)) { free(wdat); return (ret); } \ + } while (0); /** * The drag and drop API. |
From: Enlightenment S. <no-...@en...> - 2011-04-01 06:09:24
|
Log: warning-- Author: raster Date: 2011-03-31 23:09:18 -0700 (Thu, 31 Mar 2011) New Revision: 58243 Trac: http://trac.enlightenment.org/e/changeset/58243 Modified: trunk/elementary/src/lib/elm_cnp_helper.c Modified: trunk/elementary/src/lib/elm_cnp_helper.c =================================================================== --- trunk/elementary/src/lib/elm_cnp_helper.c 2011-04-01 06:08:02 UTC (rev 58242) +++ trunk/elementary/src/lib/elm_cnp_helper.c 2011-04-01 06:09:18 UTC (rev 58243) @@ -178,21 +178,6 @@ }; #define N_ESCAPES ((int)(sizeof(escapes) / sizeof(escapes[0]))) -static const char *image_extensions[] = -{ - ".png", - ".jpg", ".jpeg", ".jpe", ".jfif", ".jfi", - ".bmp", - ".xpm", - ".ppm", "pgm", ".pbm", ".pnm", - ".gif", - ".tif", ".tiff", - ".svg", ".svg.gz", - ".tga", ".targa", - - NULL -}; - static Cnp_Atom atoms[CNP_N_ATOMS] = { [CNP_ATOM_TARGETS] = { "TARGETS", @@ -752,7 +737,7 @@ Ecore_X_Selection_Data *data; Ecore_X_Selection_Data_Files *files; Paste_Image *pi; - char *p, *pp; + char *p; data = notify->data; cnp_debug("data->format is %d %p %p\n", data->format, notify, data); |
From: Enlightenment S. <no-...@en...> - 2011-04-01 12:10:33
|
Log: right mouse pops up entry menu now too. Author: raster Date: 2011-04-01 05:10:24 -0700 (Fri, 01 Apr 2011) New Revision: 58255 Trac: http://trac.enlightenment.org/e/changeset/58255 Modified: trunk/elementary/src/lib/elm_entry.c Modified: trunk/elementary/src/lib/elm_entry.c =================================================================== --- trunk/elementary/src/lib/elm_entry.c 2011-04-01 11:51:11 UTC (rev 58254) +++ trunk/elementary/src/lib/elm_entry.c 2011-04-01 12:10:24 UTC (rev 58255) @@ -120,6 +120,7 @@ Eina_List *text_filters; Ecore_Job *hovdeljob; Mod_Api *api; // module api if supplied + int cursor_pos; Eina_Bool changed : 1; Eina_Bool linewrap : 1; Eina_Bool char_linewrap : 1; @@ -136,7 +137,7 @@ Eina_Bool can_write : 1; Eina_Bool autosave : 1; Eina_Bool textonly : 1; - int cursor_pos; + Eina_Bool usedown : 1; }; struct _Elm_Entry_Context_Menu_Item @@ -680,9 +681,20 @@ Widget_Data *wd = elm_widget_data_get(obj); Evas_Coord cx, cy, cw, ch, x, y, mw, mh; if (!wd) return; + + cx = cy = 0; + cw = ch = 1; evas_object_geometry_get(wd->ent, &x, &y, NULL, NULL); - edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text", - &cx, &cy, &cw, &ch); + if (wd->usedown) + { + cx = wd->downx - x; + cy = wd->downy - y; + cw = 1; + ch = 1; + } + else + edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text", + &cx, &cy, &cw, &ch); evas_object_size_hint_min_get(wd->hoversel, &mw, &mh); if (cw < mw) { @@ -739,6 +751,7 @@ { Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; + wd->usedown = 0; if (wd->hoversel) evas_object_hide(wd->hoversel); if (wd->selmode) { @@ -843,46 +856,46 @@ if (it->func) it->func(it->data, obj2, NULL); } -static Eina_Bool -_long_press(void *data) +static void +_menu_press(Evas_Object *obj) { - Widget_Data *wd = elm_widget_data_get(data); + Widget_Data *wd = elm_widget_data_get(obj); Evas_Object *top; const Eina_List *l; const Elm_Entry_Context_Menu_Item *it; - if (!wd) return ECORE_CALLBACK_CANCEL; + if (!wd) return; if ((wd->api) && (wd->api->obj_longpress)) { - wd->api->obj_longpress(data); + wd->api->obj_longpress(obj); } else if (wd->context_menu) { const char *context_menu_orientation; if (wd->hoversel) evas_object_del(wd->hoversel); - else elm_widget_scroll_freeze_push(data); - wd->hoversel = elm_hoversel_add(data); + else elm_widget_scroll_freeze_push(obj); + wd->hoversel = elm_hoversel_add(obj); context_menu_orientation = edje_object_data_get (wd->ent, "context_menu_orientation"); if ((context_menu_orientation) && (!strcmp(context_menu_orientation, "horizontal"))) elm_hoversel_horizontal_set(wd->hoversel, EINA_TRUE); elm_object_style_set(wd->hoversel, "entry"); - elm_widget_sub_object_add(data, wd->hoversel); + elm_widget_sub_object_add(obj, wd->hoversel); elm_hoversel_label_set(wd->hoversel, "Text"); - top = elm_widget_top_get(data); + top = elm_widget_top_get(obj); if (top) elm_hoversel_hover_parent_set(wd->hoversel, top); - evas_object_smart_callback_add(wd->hoversel, "dismissed", _dismissed, data); + evas_object_smart_callback_add(wd->hoversel, "dismissed", _dismissed, obj); if (!wd->selmode) { if (!wd->password) elm_hoversel_item_add(wd->hoversel, E_("Select"), NULL, ELM_ICON_NONE, - _select, data); + _select, obj); if (1) // need way to detect if someone has a selection { if (wd->editable) elm_hoversel_item_add(wd->hoversel, E_("Paste"), NULL, ELM_ICON_NONE, - _paste, data); + _paste, obj); } } else @@ -892,13 +905,13 @@ if (wd->have_selection) { elm_hoversel_item_add(wd->hoversel, E_("Copy"), NULL, ELM_ICON_NONE, - _copy, data); + _copy, obj); if (wd->editable) elm_hoversel_item_add(wd->hoversel, E_("Cut"), NULL, ELM_ICON_NONE, - _cut, data); + _cut, obj); } elm_hoversel_item_add(wd->hoversel, E_("Cancel"), NULL, ELM_ICON_NONE, - _cancel, data); + _cancel, obj); } } EINA_LIST_FOREACH(wd->items, l, it) @@ -908,13 +921,21 @@ } if (wd->hoversel) { - _hoversel_position(data); + _hoversel_position(obj); evas_object_show(wd->hoversel); elm_hoversel_hover_begin(wd->hoversel); } edje_object_part_text_select_allow_set(wd->ent, "elm.text", EINA_FALSE); edje_object_part_text_select_abort(wd->ent, "elm.text"); } +} + +static Eina_Bool +_long_press(void *data) +{ + Widget_Data *wd = elm_widget_data_get(data); + if (!wd) return ECORE_CALLBACK_CANCEL; + _menu_press(data); wd->longpress_timer = NULL; evas_object_smart_callback_call(data, SIG_LONGPRESSED, NULL); return ECORE_CALLBACK_CANCEL; @@ -928,12 +949,13 @@ if (!wd) return; if (wd->disabled) return; if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; - if (ev->button != 1) return; - // if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK) - if (wd->longpress_timer) ecore_timer_del(wd->longpress_timer); - wd->longpress_timer = ecore_timer_add(_elm_config->longpress_timeout, _long_press, data); wd->downx = ev->canvas.x; wd->downy = ev->canvas.y; + if (ev->button == 1) + { + if (wd->longpress_timer) ecore_timer_del(wd->longpress_timer); + wd->longpress_timer = ecore_timer_add(_elm_config->longpress_timeout, _long_press, data); + } } static void @@ -943,12 +965,19 @@ Evas_Event_Mouse_Up *ev = event_info; if (!wd) return; if (wd->disabled) return; - if (ev->button != 1) return; - if (wd->longpress_timer) + if (ev->button == 1) { - ecore_timer_del(wd->longpress_timer); - wd->longpress_timer = NULL; + if (wd->longpress_timer) + { + ecore_timer_del(wd->longpress_timer); + wd->longpress_timer = NULL; + } } + else if (ev->button == 3) + { + wd->usedown = 1; + _menu_press(data); + } } static void |
From: Enlightenment S. <no-...@en...> - 2011-04-07 04:35:17
|
Log: From: Seunggyun Kim <sgy...@sa...> Subject: [E-devel] [Patch] elm_genlist : elm_genlist_realized_items_update api added I added elm_genlist_realized_items_update api. elm_genlist_item_update api already exists. But If the application want to change all realized items using this api, application always have to check genlist all realized items and call elm_genlist_item_update api. This routine is being used at many functions of application. So I made elm_genlist_realized_items_update api. This helps application to update easily all realized items at a time. Author: raster Date: 2011-04-06 21:35:08 -0700 (Wed, 06 Apr 2011) New Revision: 58403 Trac: http://trac.enlightenment.org/e/changeset/58403 Modified: trunk/elementary/src/lib/Elementary.h.in trunk/elementary/src/lib/elm_genlist.c Modified: trunk/elementary/src/lib/Elementary.h.in =================================================================== --- trunk/elementary/src/lib/Elementary.h.in 2011-04-07 01:45:04 UTC (rev 58402) +++ trunk/elementary/src/lib/Elementary.h.in 2011-04-07 04:35:08 UTC (rev 58403) @@ -1844,6 +1844,7 @@ EAPI const char *elm_genlist_item_cursor_style_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1); EAPI void elm_genlist_item_cursor_engine_only_set(Elm_Genlist_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1); EAPI Eina_Bool elm_genlist_item_cursor_engine_only_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1); + EAPI void elm_genlist_realized_items_update(const Evas_Object *obj) EINA_ARG_NONNULL(1); /* smart callbacks called: * "clicked,double" - This is called when a user has double-clicked an item. The * event_info parameter is the genlist item that was double-clicked. Modified: trunk/elementary/src/lib/elm_genlist.c =================================================================== --- trunk/elementary/src/lib/elm_genlist.c 2011-04-07 01:45:04 UTC (rev 58402) +++ trunk/elementary/src/lib/elm_genlist.c 2011-04-07 04:35:08 UTC (rev 58403) @@ -4920,3 +4920,28 @@ if (policy_v) *policy_v = (Elm_Scroller_Policy)s_policy_v; } +/** + * Update the contents of all realized items + * + * This updates all realized items by calling all the item class functions again + * to get the icons, labels and states. Use this when the original + * item data has changed and the changes are desired to be reflected. + * + * @param it The item + * + * @ingroup Genlist + */ +EAPI void +elm_genlist_realized_items_update(const Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + + Eina_List *list, *l; + Elm_Genlist_Item *it; + + list = elm_genlist_realized_items_get(obj); + EINA_LIST_FOREACH(list, l, it) + elm_genlist_item_update(it); +} + + |
From: Enlightenment S. <no-...@en...> - 2011-04-08 05:51:20
|
Log: warn-- Author: raster Date: 2011-04-07 22:51:13 -0700 (Thu, 07 Apr 2011) New Revision: 58468 Trac: http://trac.enlightenment.org/e/changeset/58468 Modified: trunk/elementary/src/lib/elm_diskselector.c Modified: trunk/elementary/src/lib/elm_diskselector.c =================================================================== --- trunk/elementary/src/lib/elm_diskselector.c 2011-04-08 05:31:47 UTC (rev 58467) +++ trunk/elementary/src/lib/elm_diskselector.c 2011-04-08 05:51:13 UTC (rev 58468) @@ -189,15 +189,6 @@ } static void -_default_display_item_num_set(Widget_Data *wd) -{ - const char* str; - str = edje_object_data_get(wd->right_blank, "display_item_num"); - if (str) wd->display_item_num = MAX(DISPLAY_ITEM_NUM_MIN, atoi(str)); - else wd->display_item_num = DISPLAY_ITEM_NUM_MIN; -} - -static void _del_hook(Evas_Object * obj) { Widget_Data *wd = elm_widget_data_get(obj); |
From: Enlightenment S. <no-...@en...> - 2011-04-08 05:52:20
|
Log: warn-- Author: raster Date: 2011-04-07 22:52:13 -0700 (Thu, 07 Apr 2011) New Revision: 58469 Trac: http://trac.enlightenment.org/e/changeset/58469 Modified: trunk/elementary/src/lib/elm_transit.c Modified: trunk/elementary/src/lib/elm_transit.c =================================================================== --- trunk/elementary/src/lib/elm_transit.c 2011-04-08 05:51:13 UTC (rev 58468) +++ trunk/elementary/src/lib/elm_transit.c 2011-04-08 05:52:13 UTC (rev 58469) @@ -1060,7 +1060,7 @@ EAPI Eina_List * elm_transit_chain_transits_get(const Elm_Transit * transit) { - ELM_TRANSIT_CHECK_OR_RETURN(transit); + ELM_TRANSIT_CHECK_OR_RETURN(transit, NULL); return transit->next_chain_transits; } |
From: Enlightenment S. <no-...@en...> - 2011-04-14 13:51:19
|
Log: copy from inlined wins works. copy to.. doesn't. Author: raster Date: 2011-04-14 06:51:12 -0700 (Thu, 14 Apr 2011) New Revision: 58666 Trac: http://trac.enlightenment.org/e/changeset/58666 Modified: trunk/elementary/src/lib/elm_cnp_helper.c trunk/elementary/src/lib/elm_win.c Modified: trunk/elementary/src/lib/elm_cnp_helper.c =================================================================== --- trunk/elementary/src/lib/elm_cnp_helper.c 2011-04-14 13:46:39 UTC (rev 58665) +++ trunk/elementary/src/lib/elm_cnp_helper.c 2011-04-14 13:51:12 UTC (rev 58666) @@ -411,9 +411,11 @@ { #ifdef HAVE_ELEMENTARY_X Evas_Object *top = elm_widget_top_get(widget); - Ecore_X_Window xwin = elm_win_xwindow_get(top); + Ecore_X_Window xwin; Cnp_Selection *sel; + if (top) xwin = elm_win_xwindow_get(top); + else xwin = elm_win_xwindow_get(widget); if (!xwin) return EINA_FALSE; if ((unsigned int)selection >= (unsigned int)ELM_SEL_MAX) return EINA_FALSE; if (!_elm_cnp_init_count) _elm_cnp_init(); Modified: trunk/elementary/src/lib/elm_win.c =================================================================== --- trunk/elementary/src/lib/elm_win.c 2011-04-14 13:46:39 UTC (rev 58665) +++ trunk/elementary/src/lib/elm_win.c 2011-04-14 13:51:12 UTC (rev 58666) @@ -2918,12 +2918,13 @@ const char *type; if (!obj) return 0; - type = evas_object_type_get(obj); + type = elm_widget_type_get(obj); if (!type) return 0; if (type != widtype) return _elm_ee_win_get(obj); #ifdef HAVE_ELEMENTARY_X win = elm_widget_data_get(obj); if (!win) return xwin; + if (win->xwin) return win->xwin; if (win->parent) return elm_win_xwindow_get(win->parent); #endif return xwin; |