scale : 1;
description { state: "default" 0.0;
align: 0.0 0.0;
- visible: 0;
rel1.to: "elm.bg.action_area";
rel2.to: "elm.bg.action_area";
}
- description { state: "visible" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
}
}
programs {
else
set_state(PART:"elm.swallow.content", "show_action_area", 0.0);
set_state(PART:"elm.bg.action_area", "visible", 0.0);
- set_state(PART:"elm.swallow.action_area", "visible", 0.0);
}
}
program { name: hide_action_area;
else
set_state(PART:"elm.swallow.content", "default", 0.0);
set_state(PART:"elm.bg.action_area", "default", 0.0);
- set_state(PART:"elm.swallow.action_area", "default", 0.0);
}
}
} /* end of programs */
static Evas_Object *_action_button_unset(Evas_Object *obj, unsigned int idx);
static void _button_remove(Evas_Object *obj, Evas_Object *content,
Eina_Bool delete);
+static void _popup_show(void *data, Evas *e, Evas_Object *obj,
+ void *event_info);
static const char SIG_BLOCK_CLICKED[] = "block,clicked";
static const char SIG_TIMEOUT[] = "timeout";
static const Evas_Smart_Cb_Description _signals[] = {
evas_object_smart_callback_del(wd->notify, "timeout", _timeout);
evas_object_event_callback_del(wd->notify, EVAS_CALLBACK_RESIZE,
_notify_resize);
+ evas_object_event_callback_del(obj, EVAS_CALLBACK_SHOW, _popup_show);
wd->button_count = 0;
for (i = 0; i < ELM_POPUP_ACTION_BUTTON_MAX; i++)
if (wd->buttons[i])
wd->content_area);
elm_object_part_content_set(wd->content_area, "elm.swallow.content",
content);
+ evas_object_show(content);
}
_sizing_eval(obj);
}
elm_object_part_content_unset(wd->action_area, buf);
elm_object_part_content_set(wd->action_area, buf,
wd->buttons[i]->btn);
+ evas_object_show(wd->buttons[i]->btn);
wd->buttons[i]->delete_me = EINA_TRUE;
}
if (!wd->button_count)
{
_layout_set(obj);
+ elm_object_part_content_unset(wd->base, "elm.swallow.action_area");
+ evas_object_hide(wd->action_area);
edje_object_message_signal_process(elm_layout_edje_get(wd->base));
}
else
elm_object_part_content_unset(wd->action_area, buf);
elm_object_part_content_set(wd->action_area, buf,
wd->buttons[i]->btn);
+ evas_object_show(wd->buttons[i]->btn);
/* Setting delete_me to TRUE in order to let _sub_del handle it
if deleted externally and update the buttons array after freeing
action data allocated earlier.
}
elm_object_part_content_set(wd->base, "elm.swallow.action_area",
wd->action_area);
+ evas_object_show(wd->action_area);
if (wd->button_count == 1)
_layout_set(obj);
edje_object_message_signal_process(wd->base);
}
static Eina_Bool
-_focus_next_hook(const Evas_Object *obj __UNUSED__,
- Elm_Focus_Direction dir __UNUSED__,
- Evas_Object **next __UNUSED__)
+_focus_next_hook(const Evas_Object *obj,
+ Elm_Focus_Direction dir,
+ Evas_Object **next)
{
- //TODO: Implement Focus chanin Handling in Popup for action area buttons
- return EINA_FALSE;
+ Widget_Data *wd = elm_widget_data_get(obj);
+
+ if (!wd)
+ return EINA_FALSE;
+ return elm_widget_focus_next_get(wd->notify, dir, next);
}
+
static void
_item_text_set(Elm_Popup_Content_Item *item, const char *label)
{
elm_widget_content_set_hook_set(obj, _content_set_hook);
elm_widget_content_get_hook_set(obj, _content_get_hook);
elm_widget_content_unset_hook_set(obj,_content_unset_hook);
+ elm_widget_can_focus_set(obj, EINA_FALSE);
elm_widget_focus_next_hook_set(obj, _focus_next_hook);
evas_object_smart_callbacks_descriptions_set(obj, _signals);