widget_option: used hoversel for popup orient option.

This commit is contained in:
Daniel Juyung Seo 2013-08-30 18:15:48 +09:00
parent 9e6c219537
commit 3ea332fdc6
1 changed files with 38 additions and 23 deletions

View File

@ -308,6 +308,25 @@ _widget_option_genlist_create(Evas_Object *box)
}
// popup
struct _Popup_Orient
{
const char *name;
Elm_Popup_Orient orient;
};
struct _Popup_Orient _popup_orient[ELM_POPUP_ORIENT_LAST] =
{
{ "Top", ELM_POPUP_ORIENT_TOP },
{ "Center", ELM_POPUP_ORIENT_CENTER },
{ "Bottom", ELM_POPUP_ORIENT_BOTTOM },
{ "Left", ELM_POPUP_ORIENT_LEFT },
{ "Right", ELM_POPUP_ORIENT_RIGHT },
{ "Top Left", ELM_POPUP_ORIENT_TOP_LEFT },
{ "Top Right", ELM_POPUP_ORIENT_TOP_RIGHT },
{ "Bottom Left", ELM_POPUP_ORIENT_BOTTOM_LEFT },
{ "Bottom Right", ELM_POPUP_ORIENT_BOTTOM_RIGHT }
};
static void
_popup_button_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
void *event_info EINA_UNUSED)
@ -344,18 +363,20 @@ _popup_content_changed_cb(void *data EINA_UNUSED,
}
static void
_popup_orient_changed_cb(void *data EINA_UNUSED,
Evas_Object *obj,
_popup_orient_changed_cb(void *data, Evas_Object *obj,
void *event_info EINA_UNUSED)
{
wod->pop_orient = elm_radio_value_get(obj);
wod->pop_orient = (int)(uintptr_t)data;
gui_preview_update();
elm_object_text_set(obj, _popup_orient[wod->pop_orient].name);
}
static void
_widget_option_popup_create(Evas_Object *box)
{
Evas_Object *o = NULL, *rdg = NULL;
int i = 0;
// number of buttons
WIDGET_OPTION_LABEL_ADD(" < Number of Buttons > ");
@ -397,26 +418,20 @@ _widget_option_popup_create(Evas_Object *box)
WIDGET_OPTION_SEPARATOR_ADD();
// orient set
WIDGET_OPTION_LABEL_ADD(" < Orient Set > ");
WIDGET_OPTION_RADIO_ADD("Top", 0, _popup_orient_changed_cb);
rdg = o;
WIDGET_OPTION_RADIO_ADD("Center", 1, _popup_orient_changed_cb);
elm_radio_group_add(o, rdg);
WIDGET_OPTION_RADIO_ADD("Bottom", 2, _popup_orient_changed_cb);
elm_radio_group_add(o, rdg);
WIDGET_OPTION_RADIO_ADD("Left", 3, _popup_orient_changed_cb);
elm_radio_group_add(o, rdg);
WIDGET_OPTION_RADIO_ADD("Right", 4, _popup_orient_changed_cb);
elm_radio_group_add(o, rdg);
WIDGET_OPTION_RADIO_ADD("Top Left", 5, _popup_orient_changed_cb);
elm_radio_group_add(o, rdg);
WIDGET_OPTION_RADIO_ADD("Top Right", 6, _popup_orient_changed_cb);
elm_radio_group_add(o, rdg);
WIDGET_OPTION_RADIO_ADD("Bottom Left", 7, _popup_orient_changed_cb);
elm_radio_group_add(o, rdg);
WIDGET_OPTION_RADIO_ADD("Bottom Right", 8, _popup_orient_changed_cb);
elm_radio_group_add(o, rdg);
elm_radio_value_set(rdg, wod->pop_orient);
WIDGET_OPTION_LABEL_ADD(" < Popup Orient > ");
o = elm_hoversel_add(box);
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); ALIGN(o, 0.0, 0.0);
elm_hoversel_hover_parent_set(o, gd->win);
elm_object_text_set(o, _popup_orient[wod->pop_orient].name);
for (i = 0; i < ELM_POPUP_ORIENT_LAST; i++)
{
elm_hoversel_item_add(o, _popup_orient[i].name, NULL, ELM_ICON_NONE,
_popup_orient_changed_cb,
(void *)(uintptr_t)_popup_orient[i].orient);
}
elm_box_pack_end(box, o);
evas_object_show(o);
}
// progressbar