patch from <jihoon48.kim@samsung.com> - horizontal context menu option.

SVN revision: 45105
This commit is contained in:
Carsten Haitzler 2010-01-14 03:47:28 +00:00
parent 15e801e3d3
commit 658583e309
4 changed files with 23 additions and 0 deletions

View File

@ -196,6 +196,7 @@ test_entry_scrolled(void *data, Evas_Object *obj, void *event_info)
elm_box_pack_end(bx, sc);
en = elm_entry_add(win);
elm_entry_context_menu_horizontal_set(en, 1);
elm_entry_context_menu_item_add(en, "Hello", NULL, ELM_ICON_NONE, NULL, NULL);
elm_entry_context_menu_item_add(en, "World", NULL, ELM_ICON_NONE, NULL, NULL);
elm_entry_entry_set(en,

View File

@ -560,6 +560,7 @@ extern "C" {
EAPI void elm_entry_selection_copy(Evas_Object *obj);
EAPI void elm_entry_selection_paste(Evas_Object *obj);
EAPI void elm_entry_context_menu_clear(Evas_Object *obj);
EAPI void elm_entry_context_menu_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
EAPI void elm_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data);
EAPI void elm_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled);
EAPI Eina_Bool elm_entry_context_menu_disabled_get(Evas_Object *obj);
@ -665,6 +666,7 @@ extern "C" {
*/
EAPI Evas_Object *elm_hoversel_add(Evas_Object *parent);
EAPI void elm_hoversel_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
EAPI void elm_hoversel_hover_parent_set(Evas_Object *obj, Evas_Object *parent);
EAPI void elm_hoversel_label_set(Evas_Object *obj, const char *label);
EAPI const char *elm_hoversel_label_get(Evas_Object *obj);

View File

@ -26,6 +26,7 @@ struct _Widget_Data
Evas_Object *btn, *hover;
Evas_Object *hover_parent;
Eina_List *items;
Eina_Bool horizontal:1;
};
struct _Elm_Hoversel_Item
@ -151,6 +152,7 @@ _activate(Evas_Object *obj)
bx = elm_box_add(wd->hover);
elm_box_homogenous_set(bx, 1);
elm_box_horizontal_set(bx, wd->horizontal);
snprintf(buf, sizeof(buf), "hoversel_vertical_entry/%s",
elm_widget_style_get(obj));
@ -185,6 +187,8 @@ _activate(Evas_Object *obj)
evas_object_show(wd->hover);
evas_object_smart_callback_call(obj, "clicked", NULL);
if(wd->horizontal)evas_object_hide(wd->btn);
}
static void
@ -282,6 +286,13 @@ elm_hoversel_label_set(Evas_Object *obj, const char *label)
elm_button_label_set(wd->btn, label);
}
EAPI void
elm_hoversel_horizontal_set(Evas_Object *obj, Eina_Bool horizontal)
{
Widget_Data *wd = elm_widget_data_get(obj);
wd->horizontal = !!horizontal;
}
/**
* Get the hoversel button label
*

View File

@ -33,6 +33,7 @@ struct _Widget_Data
Eina_Bool deferred_cur : 1;
Eina_Bool disabled : 1;
Eina_Bool context_menu : 1;
Eina_Bool horizontal : 1;
};
struct _Elm_Entry_Context_Menu_Item
@ -387,6 +388,7 @@ _long_press(void *data)
if (wd->hoversel) evas_object_del(wd->hoversel);
else elm_widget_scroll_freeze_push(data);
wd->hoversel = elm_hoversel_add(data);
elm_hoversel_horizontal_set(wd->hoversel, wd->horizontal);
elm_object_style_set(wd->hoversel, "entry");
elm_widget_sub_object_add(data, wd->hoversel);
elm_hoversel_label_set(wd->hoversel, "Text");
@ -1457,6 +1459,13 @@ elm_entry_context_menu_clear(Evas_Object *obj)
}
}
EAPI void
elm_entry_context_menu_horizontal_set(Evas_Object *obj, Eina_Bool horizontal)
{
Widget_Data *wd = elm_widget_data_get(obj);
wd->horizontal = !!horizontal;
}
EAPI void
elm_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data)
{