length[1] = (hover_area.y + hover_area.h) - pos.y;
if (length[0] > length[1])
- idx = ELM_CTXPOPUP_DIRECTION_DOWN;
- else
idx = ELM_CTXPOPUP_DIRECTION_UP;
+ else
+ idx = ELM_CTXPOPUP_DIRECTION_DOWN;
//TODO 2: determine x , y
switch (idx)
void *event_info __UNUSED__)
{
Widget_Data *wd;
+ Eina_List *elist;
+ Elm_Ctxpopup_Item *item;
+ int idx = 0;
wd = elm_widget_data_get(obj);
if (!wd)
edje_object_signal_emit(wd->bg, "elm,state,show", "elm");
+ EINA_LIST_FOREACH(wd->items, elist, item)
+ {
+ if (idx++ == 0)
+ edje_object_signal_emit(item->base.view, "elm,state,default", "elm");
+ else
+ {
+ if(!wd->horizontal)
+ edje_object_signal_emit(item->base.view, "elm,state,vertical", "elm");
+ else
+ edje_object_signal_emit(item->base.view, "elm,state,horizontal", "elm");
+ }
+ }
+
_sizing_eval(obj);
}
elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal)
{
ELM_CHECK_WIDTYPE(obj, widtype);
-
+
Widget_Data *wd;
Eina_List *elist;
Elm_Ctxpopup_Item *item;
+ int idx = 0;
wd = elm_widget_data_get(obj);
if (!wd)
elm_box_horizontal_set(wd->box, EINA_FALSE);
elm_scroller_bounce_set(wd->scr, EINA_FALSE, EINA_TRUE);
- edje_object_signal_emit(wd->base, "elm,state,vertical", "elm");
- EINA_LIST_FOREACH(wd->items, elist, item)
- {
- edje_object_signal_emit(item->base.view, "elm,state,vertical", "elm");
- }
+ EINA_LIST_FOREACH(wd->items, elist, item)
+ {
+ if (idx++ == 0)
+ edje_object_signal_emit(item->base.view, "elm,state,default", "elm");
+ else
+ edje_object_signal_emit(item->base.view, "elm,state,vertical", "elm");
+ }
}
else
{
elm_box_horizontal_set(wd->box, EINA_TRUE);
elm_scroller_bounce_set(wd->scr, EINA_TRUE, EINA_FALSE);
-
- edje_object_signal_emit(wd->base, "elm,state,horizontal", "elm");
- EINA_LIST_FOREACH(wd->items, elist, item)
- {
- edje_object_signal_emit(item->base.view, "elm,state,horizontal", "elm");
- }
- }
+
+ EINA_LIST_FOREACH(wd->items, elist, item)
+ {
+ if (idx++ == 0)
+ edje_object_signal_emit(item->base.view, "elm,state,default", "elm");
+ else
+ edje_object_signal_emit(item->base.view, "elm,state,horizontal", "elm");
+ }
+ }
if (wd->visible)
_sizing_eval(obj);