Item* prev_it;
Item* it;
Eina_Bool pop;
+ Eina_Bool first_page;
};
static const char *widtype = NULL;
}
if (it)
{
+ if(!cb->first_page)
+ {
+ if(cb->pop)
+ {
+ edje_object_signal_emit(wd->base, "elm,action,pop", "elm");
+ }
+ else
+ {
+ edje_object_signal_emit(wd->base, "elm,action,push", "elm");
+ }
+ }
if (it->title_obj)
{
edje_object_part_swallow(wd->base, "elm.swallow.title", it->title_obj);
}
else
edje_object_signal_emit(wd->base, "elm,state,item,reset,rightpad2", "elm");
-
-
+
if((it->title_obj)&&(it->title))
{
edje_object_signal_emit(wd->base, "elm,state,extend,title", "elm");
}
+
content = it->content;
}
edje_object_message_signal_process(wd->base);
elm_widget_resize_object_set(obj, wd->base);
wd->pager = elm_pager_add(obj);
+ elm_object_style_set(wd->pager, "navigationbar");
elm_widget_sub_object_add(obj, wd->pager);
edje_object_part_swallow(wd->base, "elm.swallow.content", wd->pager);
evas_object_smart_callback_add(wd->pager, "hide,finished", _hide_finished, obj);
cb->prev_it = prev_it;
cb->it = it;
cb->pop = EINA_FALSE;
+ cb->first_page = EINA_FALSE;
if (prev_it->title_obj) edje_object_part_unswallow(wd->base, prev_it->title_obj);
if (prev_it->fn_btn1) edje_object_part_unswallow(wd->base, prev_it->fn_btn1);
else if (prev_it->back_btn) edje_object_part_unswallow(wd->base, prev_it->back_btn);
cb->prev_it = NULL;
cb->it = it;
cb->pop = EINA_FALSE;
+ cb->first_page = EINA_TRUE;
}
_transition_complete_cb(cb);
free(cb);
cb->prev_it = prev_it;
cb->it = NULL;
cb->pop = EINA_TRUE;
+ cb->first_page = EINA_FALSE;
}
_transition_complete_cb(cb);
//pop content from pager
cb->prev_it = prev_it;
cb->it = it;
cb->pop = EINA_TRUE;
+ cb->first_page = EINA_FALSE;
if (prev_it->title_obj) edje_object_part_unswallow(wd->base, prev_it->title_obj);
if (prev_it->fn_btn1) edje_object_part_unswallow(wd->base, prev_it->fn_btn1);
else if (prev_it->back_btn) edje_object_part_unswallow(wd->base, prev_it->back_btn);
}
static void
-_eval_top(Evas_Object *obj)
+_eval_top(Evas_Object *obj, Eina_Bool push)
{
Widget_Data *wd = elm_widget_data_get(obj);
Eina_Bool animate=EINA_TRUE;
wd->top = ittop;
o = wd->top->base;
evas_object_show(o);
- if (!animate)
- edje_object_signal_emit(o, "elm,action,show,noanimate", "elm");
- else if (wd->oldtop && wd->oldtop->popme)
+
+ if (wd->oldtop && wd->oldtop->popme)
edje_object_signal_emit(o, "elm,action,show", "elm");
else
edje_object_signal_emit(o, "elm,action,push", "elm");
+ if (!animate)
+ edje_object_signal_emit(o, "elm,action,show,noanimate", "elm");
+ else
+ {
+ if(push)
+ {
+ edje_object_signal_emit(o, "elm,action,show,push", "elm");
+ }
+ else
+ {
+ edje_object_signal_emit(o, "elm,action,show,pop", "elm");
+ }
+ }
onshow = edje_object_data_get(o, "onshow");
if (onshow)
{
evas_object_event_callback_del_full
(sub, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, it);
evas_object_del(it->base);
- _eval_top(it->obj);
+ _eval_top(it->obj, EINA_FALSE);
free(it);
return;
}
edje_object_size_min_calc(it->base, &it->minw, &it->minh);
evas_object_show(it->content);
wd->stack = eina_list_append(wd->stack, it);
- _eval_top(obj);
+ _eval_top(obj, EINA_TRUE);
_sizing_eval(obj);
}
ll = ll->prev;
}
}
- _eval_top(it->obj);
+ _eval_top(it->obj, EINA_FALSE);
}
/**
{
wd->stack = eina_list_remove_list(wd->stack, l);
wd->stack = eina_list_append(wd->stack, it);
- _eval_top(obj);
+ _eval_top(obj, EINA_FALSE);
return;
}
}