On Thu, Jun 17, 2010 at 5:28 AM, Brett Nash <n...@nash.id.au> wrote: > Seems to be few little bugs here. > > Nailed one little one... but can you check the rest? > > > > > >> +EAPI Evas_Object * >> +elm_hover_content_unset(Evas_Object *obj, const char *swallow) >> +{ >> + ELM_CHECK_WIDTYPE(obj, widtype); >> + Widget_Data *wd = elm_widget_data_get(obj); >> + Subinfo *si; >> + Evas_Object *content; >> + const Eina_List *l; >> + char buf[1024]; >> + if (!wd) return NULL; >> + snprintf(buf, sizeof(buf), "elm.swallow.slot.%s", swallow); >> + EINA_LIST_FOREACH(wd->subs, l, si) >> + { >> + if (!strcmp(buf, si->swallow)) >> + { >> + if (!si->obj) return NULL; >> + content = si->obj; >> + elm_widget_sub_object_del(obj, si->obj); >> + edje_object_part_unswallow(wd->cov, si->obj); >> + si->obj = NULL; >> + break; >> + } >> + } >> + return content; >> +} > > 'content' may not be initialised. > And why not return when you get it? >
Agh! I went through that several times and still took me five minutes to understand what you were talking about. I'll fix those now. > >> Modified: trunk/TMP/st/elementary/src/lib/elm_layout.c >> =================================================================== >> --- trunk/TMP/st/elementary/src/lib/elm_layout.c 2010-06-16 >> 20:58:01 UTC (rev 49705) +++ >> trunk/TMP/st/elementary/src/lib/elm_layout.c 2010-06-16 >> 20:58:09 UTC (rev 49706) @@ -211,6 +211,10 @@ /** >> * Set the layout content >> * >> + * Once the content object is set, a previously set one will be >> deleted. >> + * If you want to keep that old content object, use the >> + * elm_layout_content_unset() function. >> + * >> * @param obj The layout object >> * @param swallow The swallow group name in the edje file >> * @param content The content will be filled in this layout object >> @@ -230,7 +234,8 @@ >> if (!strcmp(swallow, si->swallow)) >> { >> if (content == si->obj) return; >> - elm_widget_sub_object_del(obj, si->obj); >> + evas_object_del(si->obj); >> + si->obj = NULL; >> break; >> } >> } >> @@ -245,11 +250,46 @@ >> si->swallow = eina_stringshare_add(swallow); >> si->obj = content; >> wd->subs = eina_list_append(wd->subs, si); >> - _request_sizing_eval(obj); >> } >> + _request_sizing_eval(obj); >> } >> >> /** >> + * Unset the layout content >> + * >> + * Unparent and return the content object which was set for this >> widget >> + * >> + * @param obj The layout object >> + * @param swallow The swallow group name in the edje file >> + * @return The content that was being used >> + * >> + * @ingroup Layout >> + */ >> +EAPI Evas_Object * >> +elm_layout_content_unset(Evas_Object *obj, const char *swallow) >> +{ >> + ELM_CHECK_WIDTYPE(obj, widtype) NULL; >> + Widget_Data *wd = elm_widget_data_get(obj); >> + Subinfo *si; >> + Evas_Object *content; >> + const Eina_List *l; >> + if (!wd) return NULL; >> + EINA_LIST_FOREACH(wd->subs, l, si) >> + { >> + if (!strcmp(swallow, si->swallow)) >> + { >> + if (!si->obj) return NULL; >> + content == si->obj; >> + elm_widget_sub_object_del(obj, si->obj); >> + edje_object_part_unswallow(wd->lay, si->obj); >> + si->obj = NULL; >> + break; >> + } >> + } >> + return content; > > I fixed the ==. > But 'content' again. > >> Modified: trunk/TMP/st/elementary/src/lib/elm_list.c >> =================================================================== >> --- trunk/TMP/st/elementary/src/lib/elm_list.c 2010-06-16 >> 20:58:01 UTC (rev 49705) +++ >> trunk/TMP/st/elementary/src/lib/elm_list.c 2010-06-16 20:58:09 >> UTC (rev 49706) @@ -1296,6 +1296,10 @@ /** >> * Sets the left side icon associated with the item. >> * >> + * Once the icon object is set, a previously set one will be deleted. >> + * You probably don't want, then, to have the <b>same</b> icon >> object set >> + * for more than one item of the list. >> + * >> * @param it The list item >> * @param icon The left side icon object to associate with @p it >> * >> @@ -1307,13 +1311,22 @@ >> ELM_LIST_ITEM_CHECK_DELETED_RETURN(it); >> if (it->icon == icon) return; >> if (it->dummy_icon && !icon) return; >> - if (it->dummy_icon) evas_object_del(it->icon); >> + if (it->dummy_icon) >> + { >> + evas_object_del(it->icon); >> + it->dummy_icon = EINA_FALSE; > > Is this right? > >> + } >> if (!icon) >> { >> icon = >> evas_object_rectangle_add(evas_object_evas_get(it->obj)); >> evas_object_color_set(icon, 0, 0, 0, 0); it->dummy_icon = EINA_TRUE; >> } >> + if (it->icon) >> + { >> + evas_object_del(it->icon); >> + it->icon = NULL; >> + } >> it->icon = icon; >> if (it->base) >> edje_object_part_swallow(it->base, "elm.swallow.icon", icon); >> @@ -1336,8 +1349,12 @@ >> } > > Regards, > nash > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel