more warning -- - and fix a lot of formatting in elm_map and some bugs lurking.

SVN revision: 47082
This commit is contained in:
Carsten Haitzler 2010-03-09 16:27:46 +00:00
parent 6e5836950a
commit 58f0a50c45
3 changed files with 479 additions and 587 deletions

File diff suppressed because it is too large Load Diff

View File

@ -59,9 +59,8 @@ static void _menu_hide(void *data, Evas_Object *obj, void *event_info);
static void static void
_del_pre_hook(Evas_Object *obj) _del_pre_hook(Evas_Object *obj)
{ {
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
evas_object_event_callback_del_full(wd->parent, EVAS_CALLBACK_RESIZE, _parent_resize, obj); evas_object_event_callback_del_full(wd->parent, EVAS_CALLBACK_RESIZE, _parent_resize, obj);
} }
@ -70,12 +69,9 @@ _del_hook(Evas_Object *obj)
{ {
Eina_List *l, *ll = NULL; Eina_List *l, *ll = NULL;
Elm_Menu_Item *item; Elm_Menu_Item *item;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
ll = eina_list_append(ll, wd->items); ll = eina_list_append(ll, wd->items);
EINA_LIST_FOREACH(ll, ll, l) EINA_LIST_FOREACH(ll, ll, l)
{ {
EINA_LIST_FREE(l, item) EINA_LIST_FREE(l, item)
@ -99,12 +95,9 @@ _theme_hook(Evas_Object *obj)
{ {
Eina_List *l, *_l, *ll = NULL; Eina_List *l, *_l, *ll = NULL;
Elm_Menu_Item *item; Elm_Menu_Item *item;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
ll = eina_list_append(ll, wd->items); ll = eina_list_append(ll, wd->items);
EINA_LIST_FOREACH(ll, ll, l) EINA_LIST_FOREACH(ll, ll, l)
{ {
EINA_LIST_FOREACH(l, _l, item) EINA_LIST_FOREACH(l, _l, item)
@ -145,13 +138,9 @@ _sizing_eval(Evas_Object *obj)
Eina_List *l; Eina_List *l;
Elm_Menu_Item *item; Elm_Menu_Item *item;
Evas_Coord x_p, y_p, w_p, h_p, x2, y2, w2, h2, bx, by, bw, bh; Evas_Coord x_p, y_p, w_p, h_p, x2, y2, w2, h2, bx, by, bw, bh;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if ((!wd) || (!wd->parent)) return; if ((!wd) || (!wd->parent)) return;
EINA_LIST_FOREACH(wd->items,l,item) EINA_LIST_FOREACH(wd->items,l,item) _item_sizing_eval(item);
_item_sizing_eval(item);
evas_object_geometry_get(wd->location, &x_p, &y_p, &w_p, &h_p); evas_object_geometry_get(wd->location, &x_p, &y_p, &w_p, &h_p);
evas_object_geometry_get(wd->parent, &x2, &y2, &w2, &h2); evas_object_geometry_get(wd->parent, &x2, &y2, &w2, &h2);
evas_object_geometry_get(wd->bx, &bx, &by, &bw, &bh); evas_object_geometry_get(wd->bx, &bx, &by, &bw, &bh);
@ -159,15 +148,11 @@ _sizing_eval(Evas_Object *obj)
x_p = wd->xloc; x_p = wd->xloc;
y_p = wd->yloc; y_p = wd->yloc;
if (x_p+bw > x2+w2) if (x_p+bw > x2+w2) x_p -= x_p+bw - (x2+w2);
x_p -= x_p+bw - (x2+w2); if (x_p < x2) x_p += x2 - x_p;
if (x_p < x2)
x_p += x2 - x_p;
if (y_p+h_p+bh > y2+h2) if (y_p+h_p+bh > y2+h2) y_p -= y_p+h_p+bh - (y2+h2);
y_p -= y_p+h_p+bh - (y2+h2); if (y_p < y2) y_p += y2 - y_p;
if (y_p < y2)
y_p += y2 - y_p;
evas_object_move(wd->location, x_p, y_p); evas_object_move(wd->location, x_p, y_p);
evas_object_resize(wd->location, bw, h_p); evas_object_resize(wd->location, bw, h_p);
@ -177,8 +162,7 @@ _sizing_eval(Evas_Object *obj)
EINA_LIST_FOREACH(wd->items,l,item) EINA_LIST_FOREACH(wd->items,l,item)
{ {
if (item->open) if (item->open) _submenu_sizing_eval(item);
_submenu_sizing_eval(item);
} }
} }
@ -189,10 +173,8 @@ _submenu_sizing_eval(Elm_Menu_Item *parent)
Elm_Menu_Item *item; Elm_Menu_Item *item;
Evas_Coord x_p, y_p, w_p, h_p, x2, y2, w2, h2, bx, by, bw, bh, px, py, pw, ph; Evas_Coord x_p, y_p, w_p, h_p, x2, y2, w2, h2, bx, by, bw, bh, px, py, pw, ph;
Widget_Data *wd = elm_widget_data_get(parent->menu); Widget_Data *wd = elm_widget_data_get(parent->menu);
if (!wd) return;
EINA_LIST_FOREACH(parent->items,l,item) EINA_LIST_FOREACH(parent->items,l,item) _item_sizing_eval(item);
_item_sizing_eval(item);
evas_object_geometry_get(parent->location, &x_p, &y_p, &w_p, &h_p); evas_object_geometry_get(parent->location, &x_p, &y_p, &w_p, &h_p);
evas_object_geometry_get(parent->o, &x2, &y2, &w2, &h2); evas_object_geometry_get(parent->o, &x2, &y2, &w2, &h2);
evas_object_geometry_get(parent->bx, &bx, &by, &bw, &bh); evas_object_geometry_get(parent->bx, &bx, &by, &bw, &bh);
@ -226,7 +208,6 @@ static void
_item_sizing_eval(Elm_Menu_Item *item) _item_sizing_eval(Elm_Menu_Item *item)
{ {
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1; Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
if (!item->separator) if (!item->separator)
elm_coords_finger_size_adjust(1, &minw, 1, &minh); elm_coords_finger_size_adjust(1, &minw, 1, &minh);
edje_object_size_min_restricted_calc(item->o, &minw, &minh, minw, minh); edje_object_size_min_restricted_calc(item->o, &minw, &minh, minw, minh);
@ -239,27 +220,18 @@ _item_sizing_eval(Elm_Menu_Item *item)
static void static void
_changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info) _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info)
{ {
// Widget_Data *wd = elm_widget_data_get(data);
_sizing_eval(data); _sizing_eval(data);
} }
static void static void
_menu_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) _menu_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
{ {
// Widget_Data *wd = elm_widget_data_get(data);
_sizing_eval(data); _sizing_eval(data);
} }
static void static void
_parent_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) _parent_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
{ {
// Widget_Data *wd = elm_widget_data_get(data);
_sizing_eval(data); _sizing_eval(data);
} }
@ -267,9 +239,7 @@ static void
_item_move_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) _item_move_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
{ {
Elm_Menu_Item *item = data; Elm_Menu_Item *item = data;
if (item->open) _submenu_sizing_eval(item);
if (item->open)
_submenu_sizing_eval(item);
} }
static void static void
@ -284,16 +254,14 @@ _menu_hide(void *data, Evas_Object *obj, void *event_info)
{ {
Eina_List *l; Eina_List *l;
Elm_Menu_Item *item2; Elm_Menu_Item *item2;
Widget_Data *wd = elm_widget_data_get(data); Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
evas_object_hide(wd->hv); evas_object_hide(wd->hv);
evas_object_hide(data); evas_object_hide(data);
EINA_LIST_FOREACH(wd->items, l, item2) EINA_LIST_FOREACH(wd->items, l, item2)
{ {
if (item2->open) if (item2->open) _submenu_hide(item2);
_submenu_hide(item2);
} }
} }
@ -302,13 +270,11 @@ _submenu_hide(Elm_Menu_Item *item)
{ {
Eina_List *l; Eina_List *l;
Elm_Menu_Item *item2; Elm_Menu_Item *item2;
evas_object_hide(item->hv); evas_object_hide(item->hv);
item->open = EINA_FALSE; item->open = EINA_FALSE;
EINA_LIST_FOREACH(item->items, l, item2) EINA_LIST_FOREACH(item->items, l, item2)
{ {
if (item2->open) if (item2->open) _submenu_hide(item2);
_submenu_hide(item2);
} }
} }
@ -316,13 +282,10 @@ static void
_menu_item_select(void *data, Evas_Object *obj, const char *emission, const char *source) _menu_item_select(void *data, Evas_Object *obj, const char *emission, const char *source)
{ {
Elm_Menu_Item *it = data; Elm_Menu_Item *it = data;
if (it->items) if (it->items)
{ {
if (!it->open) if (!it->open) _submenu_open(it, NULL, NULL, NULL);
_submenu_open(it, NULL, NULL, NULL); else _submenu_hide(it);
else
_submenu_hide(it);
} }
else else
_menu_hide(it->menu, NULL, NULL); _menu_hide(it->menu, NULL, NULL);
@ -336,13 +299,11 @@ _menu_item_activate(void *data, Evas_Object *obj, const char *emission, const ch
Eina_List *l; Eina_List *l;
Elm_Menu_Item *item2; Elm_Menu_Item *item2;
Elm_Menu_Item *item = data; Elm_Menu_Item *item = data;
if (item->parent) if (item->parent)
{ {
EINA_LIST_FOREACH(item->parent->items, l, item2) EINA_LIST_FOREACH(item->parent->items, l, item2)
{ {
if ((item2->open) && (item2 != item)) if ((item2->open) && (item2 != item)) _submenu_hide(item2);
_submenu_hide(item2);
} }
} }
else else
@ -350,8 +311,7 @@ _menu_item_activate(void *data, Evas_Object *obj, const char *emission, const ch
Widget_Data *wd = elm_widget_data_get(item->menu); Widget_Data *wd = elm_widget_data_get(item->menu);
EINA_LIST_FOREACH(wd->items, l, item2) EINA_LIST_FOREACH(wd->items, l, item2)
{ {
if ((item2->open) && (item2 != item)) if ((item2->open) && (item2 != item)) _submenu_hide(item2);
_submenu_hide(item2);
} }
} }
} }
@ -360,7 +320,6 @@ static void
_submenu_open(void *data, Evas_Object *obj, const char *emission, const char *source) _submenu_open(void *data, Evas_Object *obj, const char *emission, const char *source)
{ {
Elm_Menu_Item *it = data; Elm_Menu_Item *it = data;
it->open = EINA_TRUE; it->open = EINA_TRUE;
evas_object_show(it->hv); evas_object_show(it->hv);
_sizing_eval(it->menu); _sizing_eval(it->menu);
@ -369,8 +328,8 @@ _submenu_open(void *data, Evas_Object *obj, const char *emission, const char *so
static void static void
_show(void *data, Evas *e, Evas_Object *obj, void *event_info) _show(void *data, Evas *e, Evas_Object *obj, void *event_info)
{ {
Widget_Data *wd = elm_widget_data_get(data); Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
evas_object_show(wd->hv); evas_object_show(wd->hv);
} }
@ -378,6 +337,7 @@ static void
_item_obj_create(Elm_Menu_Item *item) _item_obj_create(Elm_Menu_Item *item)
{ {
Widget_Data *wd = elm_widget_data_get(item->menu); Widget_Data *wd = elm_widget_data_get(item->menu);
if (!wd) return;
item->o = edje_object_add(evas_object_evas_get(wd->bx)); item->o = edje_object_add(evas_object_evas_get(wd->bx));
evas_object_size_hint_weight_set(item->o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(item->o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_fill_set(item->o, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_fill_set(item->o, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -393,6 +353,7 @@ static void
_item_separator_obj_create(Elm_Menu_Item *item) _item_separator_obj_create(Elm_Menu_Item *item)
{ {
Widget_Data *wd = elm_widget_data_get(item->menu); Widget_Data *wd = elm_widget_data_get(item->menu);
if (!wd) return;
item->o = edje_object_add(evas_object_evas_get(wd->bx)); item->o = edje_object_add(evas_object_evas_get(wd->bx));
evas_object_size_hint_weight_set(item->o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(item->o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_fill_set(item->o, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_fill_set(item->o, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -406,9 +367,8 @@ static void
_item_submenu_obj_create(Elm_Menu_Item *item) _item_submenu_obj_create(Elm_Menu_Item *item)
{ {
Widget_Data *wd = elm_widget_data_get(item->menu); Widget_Data *wd = elm_widget_data_get(item->menu);
if (!wd) return;
item->location = elm_icon_add(wd->bx); item->location = elm_icon_add(wd->bx);
item->hv = elm_hover_add(wd->bx); item->hv = elm_hover_add(wd->bx);
elm_hover_target_set(item->hv, item->location); elm_hover_target_set(item->hv, item->location);
elm_hover_parent_set(item->hv, wd->parent); elm_hover_parent_set(item->hv, wd->parent);
@ -496,14 +456,11 @@ elm_menu_parent_set(Evas_Object *obj, Evas_Object *parent)
Elm_Menu_Item *item; Elm_Menu_Item *item;
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
elm_hover_parent_set(wd->hv, parent); elm_hover_parent_set(wd->hv, parent);
wd->parent = parent; wd->parent = parent;
ll = eina_list_append(ll, wd->items); ll = eina_list_append(ll, wd->items);
EINA_LIST_FOREACH(ll, ll, l) EINA_LIST_FOREACH(ll, ll, l)
{ {
EINA_LIST_FOREACH(l, _l, item) EINA_LIST_FOREACH(l, _l, item)
@ -532,7 +489,6 @@ elm_menu_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
{ {
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
wd->xloc = x; wd->xloc = x;
wd->yloc = y; wd->yloc = y;
@ -568,7 +524,7 @@ EAPI Elm_Menu_Item *
elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *icon, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data) elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *icon, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data)
{ {
Elm_Menu_Item *subitem; Elm_Menu_Item *subitem;
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL; if (!wd) return NULL;
@ -585,8 +541,7 @@ elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *icon, co
if (parent) if (parent)
{ {
if (!parent->bx) if (!parent->bx) _item_submenu_obj_create(parent);
_item_submenu_obj_create(parent);
elm_box_pack_end(parent->bx, subitem->o); elm_box_pack_end(parent->bx, subitem->o);
parent->items = eina_list_append(parent->items, subitem); parent->items = eina_list_append(parent->items, subitem);
} }
@ -650,7 +605,6 @@ EAPI void
elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled) elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled)
{ {
if (disabled == item->disabled) return; if (disabled == item->disabled) return;
item->disabled = disabled; item->disabled = disabled;
if (disabled) if (disabled)
{ {
@ -666,17 +620,14 @@ EAPI Elm_Menu_Item *
elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent) elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent)
{ {
Elm_Menu_Item *subitem; Elm_Menu_Item *subitem;
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL; if (!wd) return NULL;
subitem = ELM_NEW(Elm_Menu_Item); subitem = ELM_NEW(Elm_Menu_Item);
if (!subitem) return NULL; if (!subitem) return NULL;
subitem->menu = obj; subitem->menu = obj;
subitem->separator = 1; subitem->separator = 1;
_item_separator_obj_create(subitem); _item_separator_obj_create(subitem);
if (!parent) if (!parent)
{ {
elm_box_pack_end(wd->bx, subitem->o); elm_box_pack_end(wd->bx, subitem->o);
@ -684,12 +635,10 @@ elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent)
} }
else else
{ {
if (!parent->bx) if (!parent->bx) _item_submenu_obj_create(parent);
_item_submenu_obj_create(parent);
elm_box_pack_end(parent->bx, subitem->o); elm_box_pack_end(parent->bx, subitem->o);
parent->items = eina_list_append(parent->items, subitem); parent->items = eina_list_append(parent->items, subitem);
} }
_sizing_eval(obj); _sizing_eval(obj);
return subitem; return subitem;
} }
@ -700,12 +649,9 @@ elm_menu_item_del(Elm_Menu_Item *item)
Elm_Menu_Item *_item; Elm_Menu_Item *_item;
if (!item) return; if (!item) return;
if (item->del_cb) item->del_cb((void*)item->data, item->o, item); if (item->del_cb) item->del_cb((void*)item->data, item->o, item);
EINA_LIST_FREE(item->items, _item) EINA_LIST_FREE(item->items, _item) elm_menu_item_del(_item);
elm_menu_item_del(_item);
if (item->label) eina_stringshare_del(item->label); if (item->label) eina_stringshare_del(item->label);
if (item->icon) evas_object_del(item->icon); if (item->icon) evas_object_del(item->icon);
if (item->hv) evas_object_del(item->hv); if (item->hv) evas_object_del(item->hv);
@ -734,23 +680,27 @@ elm_menu_item_del(Elm_Menu_Item *item)
EAPI void EAPI void
elm_menu_item_del_cb_set(Elm_Menu_Item *it, void (*func) (void *data, Evas_Object *obj, void *event_info)) elm_menu_item_del_cb_set(Elm_Menu_Item *it, void (*func) (void *data, Evas_Object *obj, void *event_info))
{ {
if (!it) return;
it->del_cb = func; it->del_cb = func;
} }
EAPI void * EAPI void *
elm_menu_item_data_get(const Elm_Menu_Item *it) elm_menu_item_data_get(const Elm_Menu_Item *it)
{ {
if (!it) return NULL;
return (void *)it->data; return (void *)it->data;
} }
EAPI void EAPI void
elm_menu_item_data_set(Elm_Menu_Item *item, const void *data) elm_menu_item_data_set(Elm_Menu_Item *item, const void *data)
{ {
if (!item) return;
item->data = data; item->data = data;
} }
EAPI const Eina_List * EAPI const Eina_List *
elm_menu_item_subitems_get(Elm_Menu_Item *item) elm_menu_item_subitems_get(Elm_Menu_Item *item)
{ {
if (!item) return NULL;
return item->items; return item->items;
} }

View File

@ -57,22 +57,18 @@ static int _timer_cb(void *data);
static void static void
_del_hook(Evas_Object *obj) _del_hook(Evas_Object *obj)
{ {
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
elm_slideshow_clear(obj); elm_slideshow_clear(obj);
_stringlist_free(wd->transitions); _stringlist_free(wd->transitions);
if (wd->timer) ecore_timer_del(wd->timer); if (wd->timer) ecore_timer_del(wd->timer);
free(wd); free(wd);
} }
static void static void
_theme_hook(Evas_Object *obj) _theme_hook(Evas_Object *obj)
{ {
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
_elm_theme_set(wd->slideshow, "slideshow", "base", "default"); _elm_theme_set(wd->slideshow, "slideshow", "base", "default");
edje_object_scale_set(wd->slideshow, elm_widget_scale_get(obj) * edje_object_scale_set(wd->slideshow, elm_widget_scale_get(obj) *
@ -83,10 +79,9 @@ _theme_hook(Evas_Object *obj)
static void static void
_sizing_eval(Evas_Object *obj) _sizing_eval(Evas_Object *obj)
{ {
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
Evas_Coord minw = -1, minh = -1; Evas_Coord minw = -1, minh = -1;
if (!wd) return;
edje_object_size_min_calc(wd->slideshow, &minw, &minh); edje_object_size_min_calc(wd->slideshow, &minw, &minh);
evas_object_size_hint_min_set(obj, minw, minh); evas_object_size_hint_min_set(obj, minw, minh);
evas_object_size_hint_max_set(obj, minw, minh); evas_object_size_hint_max_set(obj, minw, minh);
@ -108,9 +103,8 @@ static void
_end(void *data, Evas_Object *obj, const char *emission, const char *source) _end(void *data, Evas_Object *obj, const char *emission, const char *source)
{ {
Elm_Slideshow_Item *item; Elm_Slideshow_Item *item;
Widget_Data *wd = elm_widget_data_get(data); Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
item = wd->previous; item = wd->previous;
if (item && item->o) if (item && item->o)
{ {
@ -132,9 +126,8 @@ static int
_timer_cb(void *data) _timer_cb(void *data)
{ {
Evas_Object *obj = data; Evas_Object *obj = data;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return 0;
wd->timer = NULL; wd->timer = NULL;
elm_slideshow_next(obj); elm_slideshow_next(obj);
return 0; return 0;
@ -145,10 +138,10 @@ _item_realize(Elm_Slideshow_Item *item)
{ {
Elm_Slideshow_Item *_item; Elm_Slideshow_Item *_item;
Evas_Object *obj = item->obj; Evas_Object *obj = item->obj;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
Evas_Coord w, h; Evas_Coord w, h;
if (!wd) return;
if (!item->o && item->itc->func.get) if (!item->o && item->itc->func.get)
{ {
item->o = item->itc->func.get((void*)item->data, obj); item->o = item->itc->func.get((void*)item->data, obj);
@ -264,11 +257,10 @@ EAPI Elm_Slideshow_Item*
elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data) elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, const void *data)
{ {
Elm_Slideshow_Item *item; Elm_Slideshow_Item *item;
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL; if (!wd) return NULL;
item = calloc(1, sizeof(Elm_Slideshow_Item)); item = calloc(1, sizeof(Elm_Slideshow_Item));
item->data = data; item->data = data;
item->itc = itc; item->itc = itc;
@ -277,8 +269,7 @@ elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, co
wd->items = eina_list_merge(wd->items, item->l); wd->items = eina_list_merge(wd->items, item->l);
if(!wd->current) if (!wd->current) elm_slideshow_show(item);
elm_slideshow_show(item);
return item; return item;
} }
@ -293,7 +284,6 @@ EAPI void
elm_slideshow_show(Elm_Slideshow_Item *item) elm_slideshow_show(Elm_Slideshow_Item *item)
{ {
Widget_Data *wd = elm_widget_data_get(item->obj); Widget_Data *wd = elm_widget_data_get(item->obj);
if (!wd) return; if (!wd) return;
if (item == wd->current) return; if (item == wd->current) return;
@ -401,9 +391,8 @@ elm_slideshow_previous(Evas_Object *obj)
const Eina_List * const Eina_List *
elm_slideshow_transitions_get(Evas_Object *obj) elm_slideshow_transitions_get(Evas_Object *obj)
{ {
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL; if (!wd) return NULL;
return wd->transitions; return wd->transitions;
} }
@ -419,7 +408,6 @@ elm_slideshow_transition_set(Evas_Object *obj, const char *transition)
{ {
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
eina_stringshare_del(wd->transition); eina_stringshare_del(wd->transition);
wd->transition = eina_stringshare_add(transition); wd->transition = eina_stringshare_add(transition);
@ -437,7 +425,6 @@ elm_slideshow_timeout_set(Evas_Object *obj ,int timeout)
{ {
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
wd->timeout = timeout; wd->timeout = timeout;
if (wd->timer) ecore_timer_del(wd->timer); if (wd->timer) ecore_timer_del(wd->timer);
@ -455,9 +442,8 @@ elm_slideshow_timeout_set(Evas_Object *obj ,int timeout)
EAPI int EAPI int
elm_slideshow_timeout_get(Evas_Object *obj) elm_slideshow_timeout_get(Evas_Object *obj)
{ {
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype) -1;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return -1; if (!wd) return -1;
return wd->timeout; return wd->timeout;
} }
@ -473,7 +459,6 @@ elm_slideshow_loop_set(Evas_Object *obj, int loop)
{ {
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
wd->loop = loop; wd->loop = loop;
} }
@ -489,12 +474,9 @@ elm_slideshow_clear(Evas_Object *obj)
Elm_Slideshow_Item *item; Elm_Slideshow_Item *item;
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return; if (!wd) return;
wd->previous = NULL; wd->previous = NULL;
wd->current = NULL; wd->current = NULL;
EINA_LIST_FREE(wd->items_built, item) EINA_LIST_FREE(wd->items_built, item)
{ {
if (item->itc->func.del) if (item->itc->func.del)
@ -519,15 +501,14 @@ elm_slideshow_clear(Evas_Object *obj)
elm_slideshow_item_del(Elm_Slideshow_Item *item) elm_slideshow_item_del(Elm_Slideshow_Item *item)
{ {
if (!item) return; if (!item) return;
Widget_Data *wd = elm_widget_data_get(item->obj); Widget_Data *wd = elm_widget_data_get(item->obj);
if (!wd) return;
if (wd->previous == item) wd->previous = NULL; if (wd->previous == item) wd->previous = NULL;
if (wd->current == item) if (wd->current == item)
{ {
wd->current = NULL;
Eina_List *l = eina_list_data_find_list(wd->items, item); Eina_List *l = eina_list_data_find_list(wd->items, item);
Eina_List *l2 = eina_list_next(l); Eina_List *l2 = eina_list_next(l);
wd->current = NULL;
if (!l2) if (!l2)
l2 = eina_list_nth_list(wd->items, eina_list_count(wd->items) - 1); l2 = eina_list_nth_list(wd->items, eina_list_count(wd->items) - 1);
if (l2) if (l2)
@ -541,7 +522,6 @@ elm_slideshow_item_del(Elm_Slideshow_Item *item)
item->itc->func.del((void*)item->data, wd->previous->o); item->itc->func.del((void*)item->data, wd->previous->o);
else if (item->o) else if (item->o)
evas_object_del(item->o); evas_object_del(item->o);
free(item); free(item);
} }
@ -553,9 +533,8 @@ elm_slideshow_item_del(Elm_Slideshow_Item *item)
EAPI const Eina_List * EAPI const Eina_List *
elm_slideshow_items_get(const Evas_Object *obj) elm_slideshow_items_get(const Evas_Object *obj)
{ {
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL; if (!wd) return NULL;
return wd->items; return wd->items;
} }
@ -570,9 +549,8 @@ elm_slideshow_items_get(const Evas_Object *obj)
EAPI Elm_Slideshow_Item * EAPI Elm_Slideshow_Item *
elm_slideshow_item_current_get(Evas_Object *obj) elm_slideshow_item_current_get(Evas_Object *obj)
{ {
ELM_CHECK_WIDTYPE(obj, widtype); ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj); Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL; if (!wd) return NULL;
return wd->current; return wd->current;
} }