e17/evry: allow theme to set min size of thumb view icons

- cleanup list swallow functions... thought there was a bug


SVN revision: 62599
This commit is contained in:
Hannes Janetzek 2011-08-19 22:11:09 +00:00
parent 4bb85a2b3b
commit 7e553786d5
2 changed files with 80 additions and 61 deletions

View File

@ -156,7 +156,7 @@ evry_show(E_Zone *zone, E_Zone_Edge edge, const char *params, Eina_Bool popup)
_evry_time = ecore_time_get();
DBG("_____evry_show______");
#endif
E_OBJECT_CHECK_RETURN(zone, 0);
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, 0);
@ -170,7 +170,7 @@ evry_show(E_Zone *zone, E_Zone_Edge edge, const char *params, Eina_Bool popup)
ECORE_X_WINDOW_TYPE_UTILITY);
ecore_evas_name_class_set(win->ewin->ecore_evas, "E", "everything");
ecore_evas_show(win->ewin->ecore_evas);
if (e_grabinput_get(win->ewin->evas_win, 0, win->ewin->evas_win))
@ -178,7 +178,7 @@ evry_show(E_Zone *zone, E_Zone_Edge edge, const char *params, Eina_Bool popup)
else
ERR("could not acquire grab");
}
evry_history_load();
if (params)
@ -538,7 +538,7 @@ _evry_selector_update_actions(Evry_Selector *sel)
if (sel->action_timer)
ecore_timer_del(sel->action_timer);
_evry_selector_item_clear(sel);
_evry_selector_item_clear(sel);
sel->action_timer = ecore_timer_add(0.2, _evry_timer_cb_actions_get, sel);
}
@ -1262,7 +1262,7 @@ _evry_selector_thumb(Evry_Selector *sel, const Evry_Item *it)
{
e_thumb_icon_file_set(sel->o_thumb, file->path, "e/desktop/background");
e_thumb_icon_size_set(sel->o_thumb, 128, 80);
}
}
else
e_thumb_icon_file_set(sel->o_thumb, file->path, NULL);
@ -1326,7 +1326,7 @@ _evry_selector_item_update(Evry_Selector *sel)
if (!_evry_selector_thumb(sel, it))
{
o = evry_util_icon_get(it, win->evas);
if ((!o) && it->plugin)
o = evry_util_icon_get(EVRY_ITEM(it->plugin), win->evas);
}
@ -1481,13 +1481,13 @@ _evry_state_pop(Evry_Selector *sel, int immediate)
ecore_timer_del(sel->update_timer);
sel->update_timer = NULL;
}
if (sel->action_timer)
{
ecore_timer_del(sel->action_timer);
sel->action_timer = NULL;
}
if (s->view)
{
if (immediate)
@ -1691,8 +1691,8 @@ evry_browse_item(Evry_Item *it)
if (s->view)
{
s->view->state = s;
_evry_view_show(win, s->view, SLIDE_LEFT);
s->view->update(s->view);
_evry_view_show(win, s->view, SLIDE_LEFT);
}
}
@ -1704,17 +1704,21 @@ evry_browse_item(Evry_Item *it)
int
evry_browse_back(Evry_Selector *sel)
{
Evry_Window *win = sel->win;
Evry_Window *win;
Evry_State *s;
if (!sel) sel = CUR_SEL;
if (!sel) return 0;
Evry_State *s = sel->state;
DBG("%p", sel);
if (!s || !sel->states->next)
if ((!sel) || !(win = sel->win))
return 0;
if (!(s = sel->state) || (!sel->states->next))
return 0;
/* next = eina_list_data_get(sel->states->next);
* edje_object_part_unswallow(win->o_main, next->view->o_list); */
_evry_state_pop(sel, 0);
s = sel->state;
@ -2299,7 +2303,7 @@ _evry_action_do(Evry_Action *act)
{
Evry_Event_Action_Performed *ev;
int ret;
if ((ret = act->action(act)))
{
ev = E_NEW(Evry_Event_Action_Performed, 1);
@ -2333,7 +2337,7 @@ _evry_plugin_action(Evry_Selector *sel, int finished)
Evry_Window *win = sel->win;
Eina_List *l;
int ret = 0;
if ((SUBJ_SEL)->update_timer)
{
_evry_matches_update(SUBJ_SEL, 0);
@ -2389,7 +2393,7 @@ _evry_plugin_action(Evry_Selector *sel, int finished)
if (SUBJ_SEL == CUR_SEL)
_evry_selectors_switch(win, 1);
if (ACTN_SEL == CUR_SEL)
_evry_selectors_switch(win, 1);
_evry_selectors_switch(win, 1);
return;
}
@ -2462,6 +2466,22 @@ _evry_plugin_action(Evry_Selector *sel, int finished)
}
}
static void
_evry_view_list_swallow_set(Evas_Object *obj, const char *part, Evas_Object *swallow)
{
Evas_Object *o;
o = edje_object_part_swallow_get(obj, part);
if (o != swallow)
{
evas_object_hide(o);
edje_object_part_unswallow(obj, o);
edje_object_part_unswallow(obj, swallow);
edje_object_part_swallow(obj, part, swallow);
evas_object_show(swallow);
}
}
static void
_evry_view_show(Evry_Window *win, Evry_View *v, int slide)
@ -2479,24 +2499,21 @@ _evry_view_show(Evry_Window *win, Evry_View *v, int slide)
if (slide == SLIDE_LEFT)
{
edje_object_part_swallow(win->o_main, "list:e.swallow.list2", v->o_list);
evas_object_show(v->o_list);
_evry_view_list_swallow_set(win->o_main, "list:e.swallow.list2", v->o_list);
edje_object_signal_emit(win->o_main, "list:e,action,slide,left", "e");
edje_object_signal_emit(v->o_list, "e,action,show,list", "e");
}
else if (slide == SLIDE_RIGHT)
{
edje_object_part_swallow(win->o_main, "list:e.swallow.list", v->o_list);
evas_object_show(v->o_list);
_evry_view_list_swallow_set(win->o_main, "list:e.swallow.list", v->o_list);
edje_object_signal_emit(win->o_main, "list:e,action,slide,right", "e");
edje_object_signal_emit(v->o_list, "e,action,show,list", "e");
}
else
{
edje_object_part_swallow(win->o_main, "list:e.swallow.list", v->o_list);
evas_object_show(v->o_list);
_evry_view_list_swallow_set(win->o_main, "list:e.swallow.list", v->o_list);
edje_object_signal_emit(win->o_main, "list:e,action,slide,default", "e");
edje_object_signal_emit(v->o_list, "e,action,show,list", "e");
@ -2540,8 +2557,8 @@ _evry_state_clear(Evry_Window *win)
if (v->o_list)
{
edje_object_part_unswallow(win->o_main, v->o_list);
evas_object_hide(v->o_list);
edje_object_part_unswallow(win->o_main, v->o_list);
}
}
@ -2559,32 +2576,26 @@ _evry_view_hide(Evry_Window *win, Evry_View *v, int slide)
if (slide && v->o_list)
{
evas_object_hide(v->o_list);
edje_object_part_unswallow(win->o_main, v->o_list);
win->state_clearing = v->state;
if (slide == SLIDE_RIGHT)
{
edje_object_part_swallow(win->o_main, "list:e.swallow.list2",
v->o_list);
win->state_clearing = v->state;
_evry_view_list_swallow_set(win->o_main, "list:e.swallow.list2", v->o_list);
}
else /* if (slide == SLIDE_LEFT) */
{
edje_object_part_swallow(win->o_main, "list:e.swallow.list",
v->o_list);
win->state_clearing = v->state;
_evry_view_list_swallow_set(win->o_main, "list:e.swallow.list", v->o_list);
}
evas_object_show(v->o_list);
edje_object_signal_emit(v->o_list, "e,action,hide,list", "e");
/* FIXME get signal from theme when anim finished */
v->state->clear_timer = ecore_timer_add(0.5, _clear_timer, win);
v->state->clear_timer = ecore_timer_add(1.5, _clear_timer, win);
if (v->o_bar)
{
edje_object_part_unswallow(win->o_main, v->o_bar);
evas_object_hide(v->o_bar);
edje_object_part_unswallow(win->o_main, v->o_bar);
}
return;
@ -2594,14 +2605,14 @@ _evry_view_hide(Evry_Window *win, Evry_View *v, int slide)
if (v->o_list)
{
edje_object_part_unswallow(win->o_main, v->o_list);
evas_object_hide(v->o_list);
edje_object_part_unswallow(win->o_main, v->o_list);
}
if (v->o_bar)
{
edje_object_part_unswallow(win->o_main, v->o_bar);
evas_object_hide(v->o_bar);
edje_object_part_unswallow(win->o_main, v->o_bar);
}
}
@ -2612,14 +2623,14 @@ _evry_view_create(Evry_State *s)
if (s->view)
return 1;
if (s->plugin && s->plugin->view)
view = s->plugin->view;
else
view = eina_list_data_get(evry_conf->views);
s->view = view->create(view, s, s->selector->win->o_main);
if (s->view)
{
s->view->state = s;
@ -2640,7 +2651,7 @@ _evry_view_update(Evry_Window *win, Evry_State *s)
s->view->update(s->view);
return 0;
}
if (_evry_view_create(s))
{
s->view->update(s->view);
@ -2748,7 +2759,7 @@ _evry_matches_update(Evry_Selector *sel, int async)
#ifdef CHECK_TIME
DBG("matches update %f", ecore_time_get() - _evry_time);
#endif
if (sel->update_timer)
{
ecore_timer_del(sel->update_timer);
@ -2942,7 +2953,7 @@ _evry_plugin_select(Evry_State *s, Evry_Plugin *p)
_evry_view_show(s->selector->win, s->view, 0);
s->view->update(s->view);
}
}
}

View File

@ -89,7 +89,7 @@ _thumb_gen(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
e_icon_size_get(it->thumb, &w, &h);
edje_extern_object_aspect_set(it->thumb, EDJE_ASPECT_CONTROL_BOTH, w, h);
edje_object_part_unswallow(it->frame, it->image);
edje_object_part_unswallow(it->frame, it->image);
edje_object_part_swallow(it->frame, "e.swallow.thumb", it->thumb);
evas_object_show(it->thumb);
edje_object_signal_emit(it->frame, "e,action,thumb,show_delayed", "e");
@ -136,7 +136,7 @@ _thumb_idler(void *data)
char *suffix;
int w, h;
int cnt = 0;
sd->queue = eina_list_sort(sd->queue, -1, _sort_pos_cb);
EINA_LIST_FOREACH_SAFE(sd->queue, l, ll, it)
@ -171,7 +171,7 @@ _thumb_idler(void *data)
evas_object_smart_callback_add(it->thumb, "e_thumb_gen", _thumb_gen, it);
e_thumb_icon_size_set(it->thumb, it->w, it->h);
if (it->item->icon && it->item->icon[0])
e_thumb_icon_file_set(it->thumb, it->item->icon, NULL);
else if ((suffix = strrchr(file->path, '.')) && (!strncmp(suffix, ".edj", 4)))
@ -187,7 +187,7 @@ _thumb_idler(void *data)
}
edje_object_signal_emit(it->frame, "e,action,thumb,show", "e");
sd->queue = eina_list_remove_list(sd->queue, l);
if (cnt++ > 10)
@ -419,12 +419,20 @@ _e_smart_reconfigure_do(void *data)
}
else
{
if (sd->view->zoom == 0)
ww = 96;
else if (sd->view->zoom == 1)
ww = 128;
else
ww = 192;
Evas_Object *o = edje_object_add(sd->view->evas);
e_theme_edje_object_set(o, "base/theme/modules/everything",
"e/modules/everything/thumbview/item/thumb");
edje_object_size_min_get(o, &ww, &hh);
evas_object_del(o);
if (!ww)
{
if (sd->view->zoom == 0)
ww = 96;
else if (sd->view->zoom == 1)
ww = 128;
else
ww = 192;
}
div = sd->w / ww;
if (div < 1) div = 1;
@ -451,7 +459,7 @@ _e_smart_reconfigure_do(void *data)
if (x <= (sd->w - ww))
continue;
x = 0;
y += hh;
}
@ -1412,24 +1420,24 @@ _cb_action_performed(void *data, int type __UNUSED__, void *event)
Eina_List *l;
Item *it;
Smart_Data *sd;
sd = evas_object_smart_data_get(v->span);
if (!sd) return ECORE_CALLBACK_PASS_ON;
EINA_LIST_FOREACH(sd->items, l, it)
{
if ((it->item == ev->it1) ||
(it->item == ev->it2))
break;
}
if (it && it->visible)
{
evas_object_raise(it->frame);
evas_object_raise(it->frame);
edje_object_signal_emit(it->frame, "e,action,go", "e");
}
return ECORE_CALLBACK_PASS_ON;
}
@ -1632,7 +1640,7 @@ _view_create(Evry_View *view, const Evry_State *s, const Evas_Object *swallow)
v->handlers = eina_list_append(v->handlers, h);
h = evry_event_handler_add(EVRY_EVENT_ACTION_PERFORMED, _cb_action_performed, v);
v->handlers = eina_list_append(v->handlers, h);
return EVRY_VIEW(v);
}