elm_ctxpopup: Implemented elm_widget_item_part_content_unset for elm_ctxpopup_item
Summary: ctxpopup item have elm_list item internally. item_part_content_unset need to pass on content part to elm_list item. Test Plan: 1. launch elementary_test - ctxpopup 2. click Ctxpopup with part text & content function 3. press "Icon Set" and press "Icon Unset" Reviewers: jpeg, woohyun, herb, Blackmole Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5018
This commit is contained in:
parent
bf0b3e0b75
commit
8546ff727f
|
@ -373,6 +373,69 @@ _list_item_cb8(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_U
|
|||
_print_current_dir(ctxpopup);
|
||||
}
|
||||
|
||||
static void
|
||||
_ctxpopup_item_select_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
const char *text = NULL;
|
||||
Evas_Object *icon = NULL;
|
||||
Elm_Object_Item *it = (Elm_Object_Item *)data;
|
||||
|
||||
text = elm_object_item_part_text_get((Elm_Object_Item *)event_info, "default");
|
||||
|
||||
if (!strcmp(text, "Text NULL"))
|
||||
{
|
||||
elm_object_item_part_text_set(it, "default", NULL);
|
||||
}
|
||||
else if (!strcmp(text, "Text Set"))
|
||||
{
|
||||
elm_object_item_part_text_set(it, "default", "Save file");
|
||||
}
|
||||
else if (!strcmp(text, "Icon NULL"))
|
||||
{
|
||||
elm_object_item_part_content_set(it, "icon", NULL);
|
||||
}
|
||||
else if (!strcmp(text, "Icon Set"))
|
||||
{
|
||||
icon = elm_icon_add(obj);
|
||||
elm_icon_standard_set(icon, "file");
|
||||
elm_image_resizable_set(icon, EINA_FALSE, EINA_FALSE);
|
||||
|
||||
elm_object_item_part_content_set(it, "icon", icon);
|
||||
}
|
||||
else
|
||||
{
|
||||
icon = elm_object_item_part_content_unset(it, "icon");
|
||||
if (icon) evas_object_del(icon);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_list_item_cb9(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||
{
|
||||
Evas_Object *ctxpopup;
|
||||
Elm_Object_Item *it = NULL;
|
||||
Evas_Coord x,y;
|
||||
|
||||
if (list_mouse_down > 0) return;
|
||||
|
||||
ctxpopup = elm_ctxpopup_add(obj);
|
||||
evas_object_smart_callback_add(ctxpopup, "dismissed", _dismissed, NULL);
|
||||
evas_object_smart_callback_add(ctxpopup, "geometry,update", _geometry_update, NULL);
|
||||
|
||||
it = elm_ctxpopup_item_append(ctxpopup, NULL, NULL, _ctxpopup_item_cb, NULL);
|
||||
elm_ctxpopup_item_append(ctxpopup, "Text NULL", NULL, _ctxpopup_item_select_cb, it);
|
||||
elm_ctxpopup_item_append(ctxpopup, "Text Set", NULL, _ctxpopup_item_select_cb, it);
|
||||
elm_ctxpopup_item_append(ctxpopup, "Icon NULL", NULL, _ctxpopup_item_select_cb, it);
|
||||
elm_ctxpopup_item_append(ctxpopup, "Icon Set", NULL, _ctxpopup_item_select_cb, it);
|
||||
elm_ctxpopup_item_append(ctxpopup, "Icon Unset", NULL, _ctxpopup_item_select_cb, it);
|
||||
|
||||
evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
|
||||
evas_object_size_hint_max_set(ctxpopup, 240, 240);
|
||||
evas_object_move(ctxpopup, x, y);
|
||||
evas_object_show(ctxpopup);
|
||||
_print_current_dir(ctxpopup);
|
||||
}
|
||||
|
||||
static void
|
||||
_list_clicked(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||
{
|
||||
|
@ -432,6 +495,8 @@ test_ctxpopup(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
|
|||
_list_item_cb7, NULL);
|
||||
elm_list_item_append(list, "Ctxpopup with auto hide disabled mode", NULL, NULL,
|
||||
_list_item_cb8, NULL);
|
||||
elm_list_item_append(list, "Ctxpopup with part text & content function", NULL, NULL,
|
||||
_list_item_cb9, NULL);
|
||||
evas_object_show(list);
|
||||
elm_list_go(list);
|
||||
|
||||
|
|
|
@ -899,6 +899,31 @@ _elm_ctxpopup_item_elm_widget_item_part_content_get(Eo *eo_ctxpopup_it EINA_UNUS
|
|||
return elm_object_item_part_content_get(ctxpopup_it->list_item, "start");
|
||||
}
|
||||
|
||||
EOLIAN static Evas_Object *
|
||||
_elm_ctxpopup_item_elm_widget_item_part_content_unset(Eo *eo_ctxpopup_it EINA_UNUSED,
|
||||
Elm_Ctxpopup_Item_Data *ctxpopup_it,
|
||||
const char *part)
|
||||
{
|
||||
Evas_Object *content = NULL;
|
||||
|
||||
if ((part) && (strcmp(part, "icon"))
|
||||
&& (strcmp(part, "start"))
|
||||
&& (strcmp(part, "end"))) return NULL;
|
||||
|
||||
ELM_CTXPOPUP_DATA_GET(WIDGET(ctxpopup_it), sd);
|
||||
|
||||
if ((part) && (!strcmp(part, "end")))
|
||||
content = elm_object_item_part_content_unset(ctxpopup_it->list_item, "end");
|
||||
else
|
||||
content = elm_object_item_part_content_unset(ctxpopup_it->list_item, "start");
|
||||
|
||||
sd->dir = ELM_CTXPOPUP_DIRECTION_UNKNOWN;
|
||||
|
||||
if (sd->visible) elm_layout_sizing_eval(WIDGET(ctxpopup_it));
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_ctxpopup_item_elm_widget_item_disable(Eo *eo_ctxpopup_it,
|
||||
Elm_Ctxpopup_Item_Data *ctxpopup_it)
|
||||
|
|
|
@ -20,6 +20,7 @@ class Elm.Ctxpopup.Item(Elm.Widget.Item, Efl.Ui.Item)
|
|||
Elm.Widget.Item.del_pre;
|
||||
Elm.Widget.Item.part_text { get; set; }
|
||||
Elm.Widget.Item.part_content { get; set; }
|
||||
Elm.Widget.Item.part_content_unset;
|
||||
Elm.Widget.Item.focus { get; set; }
|
||||
Efl.Ui.Item.selected { get; set; }
|
||||
Efl.Ui.Item.prev { get; }
|
||||
|
|
Loading…
Reference in New Issue