Elm_Dialoguegroup_Item_Style style;
const char *location;
Eina_Bool press;
+ Eina_Bool line_show;
};
static void _disable_hook(Evas_Object *obj);
static void _remove_all(Evas_Object *obj);
+static void _set_item_theme(Dialogue_Item *item, const char *location);
static void _change_item_bg(Dialogue_Item *item, const char *location);
static Dialogue_Item* _create_item(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style style, const char *location);
}
}
}
+
static void _set_item_theme(Dialogue_Item *item, const char *location)
{
if (!item) return;
elm_layout_theme_set(item->bg_layout, "dialoguegroup", "editfield", location);
}
+static void _set_line_show(Dialogue_Item *item, Dialogue_Item *after)
+{
+ if(!item || !after) return;
+
+ if (item->style == ELM_DIALOGUEGROUP_ITEM_STYLE_DEFAULT) {
+ if (after->style == ELM_DIALOGUEGROUP_ITEM_STYLE_DEFAULT) {
+ item->line_show = EINA_TRUE;
+ edje_object_signal_emit(elm_layout_edje_get(item->bg_layout), "elm,state,line,show", "elm");
+ }
+ else if (after->style == ELM_DIALOGUEGROUP_ITEM_STYLE_EDITFIELD) {
+ item->line_show = EINA_FALSE;
+ edje_object_signal_emit(elm_layout_edje_get(item->bg_layout), "elm,state,line,hide", "elm");
+ }
+ }
+ else if (item->style == ELM_DIALOGUEGROUP_ITEM_STYLE_EDITFIELD)
+ item->line_show = EINA_TRUE;
+}
+
static void _change_item_bg(Dialogue_Item *item, const char *location)
{
if (!item) return;
edje_object_signal_emit(elm_layout_edje_get(item->bg_layout), "elm,state,press,on", "elm");
else
edje_object_signal_emit(elm_layout_edje_get(item->bg_layout), "elm,state,press,off", "elm");
+
+ if(item->line_show == EINA_FALSE)
+ edje_object_signal_emit(elm_layout_edje_get(item->bg_layout), "elm,state,line,hide", "elm");
+
}
static Dialogue_Item* _create_item(Evas_Object *obj, Evas_Object *subobj, Elm_Dialoguegroup_Item_Style style, const char *location)
item->content = subobj;
item->press = EINA_TRUE;
item->style = style;
+ item->line_show = EINA_TRUE;
eina_stringshare_replace(&item->location, location);
item->bg_layout = elm_layout_add(wd->parent);
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
- Dialogue_Item *item;
+ Dialogue_Item *item, *new_item;
if (!wd || !subobj) return NULL;
- if (!wd->items) {
- item = _create_item(obj, subobj, style, "default");
- elm_box_pack_end(wd->box, item->bg_layout);
- wd->items = eina_list_append(wd->items, item);
- }
+ if (!wd->items)
+ new_item = _create_item(obj, subobj, style, "default");
else {
if (wd->num == 1) {
item = eina_list_data_get( eina_list_last(wd->items) );
_change_item_bg(item, "middle");
}
- item = _create_item(obj, subobj, style, "bottom");
- elm_box_pack_end(wd->box, item->bg_layout);
- wd->items = eina_list_append(wd->items, item);
+ new_item = _create_item(obj, subobj, style, "bottom");
+ _set_line_show(item, new_item);
}
-
+ elm_box_pack_end(wd->box, new_item->bg_layout);
+ wd->items = eina_list_append(wd->items, new_item);
wd->num++;
_sizing_eval(obj);
- return item;
+ return new_item;
}
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
- Dialogue_Item *item;
+ Dialogue_Item *item, *new_item;
if (!wd || !subobj) return NULL;
- if (!wd->items) {
- item = _create_item(obj, subobj, style, "default");
- if(wd->title_layout)
- elm_box_pack_after(wd->box, item->bg_layout, wd->title_layout);
- else
- elm_box_pack_start(wd->box, item->bg_layout);
- wd->items = eina_list_prepend(wd->items, item);
- }
+ if (!wd->items)
+ new_item = _create_item(obj, subobj, style, "default");
else {
if (wd->num == 1) {
item = eina_list_data_get(wd->items);
_change_item_bg(item, "middle");
}
- item = _create_item(obj, subobj, style, "top");
- if(wd->title_layout)
- elm_box_pack_after(wd->box, item->bg_layout, wd->title_layout);
- else
- elm_box_pack_start(wd->box, item->bg_layout);
- wd->items = eina_list_prepend(wd->items, item);
+ new_item = _create_item(obj, subobj, style, "top");
+ _set_line_show(new_item, item);
}
-
+ if(wd->title_layout)
+ elm_box_pack_after(wd->box, item->bg_layout, wd->title_layout);
+ else
+ elm_box_pack_start(wd->box, item->bg_layout);
+ wd->items = eina_list_prepend(wd->items, item);
wd->num++;
_sizing_eval(obj);
return item;
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
- Dialogue_Item *after_item, *item;
+ Dialogue_Item *after_item, *item = NULL;
Eina_List *l;
if (!wd || !subobj || !after || !wd->items) return NULL;
elm_box_pack_after(wd->box, item->bg_layout, after_item->bg_layout);
wd->items = eina_list_append_relative(wd->items, item, after_item);
+ _set_line_show(item, after);
}
}
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
- Dialogue_Item *before_item, *item;
+ Dialogue_Item *before_item, *item = NULL;
Eina_List *l;
if (!wd || !subobj || !before || !wd->items) return NULL;
elm_box_pack_before(wd->box, item->bg_layout, before_item->bg_layout);
wd->items = eina_list_prepend_relative(wd->items, item, before_item);
+ _set_line_show(before, item);
}
}