a bunch of adds and improvements around gnelist

SVN revision: 40323
This commit is contained in:
Carsten Haitzler 2009-04-23 08:51:07 +00:00
parent f1bd3ad572
commit af12fa8bb2
4 changed files with 62 additions and 36 deletions

View File

@ -7097,6 +7097,15 @@ collections {
image: "ilist_item_shadow.png" COMP;
}
parts {
part {
name: "event";
type: RECT;
repeat_events: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
}
}
part {
name: "base_sh";
mouse_events: 0;
@ -7303,15 +7312,6 @@ collections {
color: 255 255 255 64;
}
}
part {
name: "event";
type: RECT;
repeat_events: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
}
}
}
programs {
// signal: elm,state,%s,active
@ -7370,6 +7370,14 @@ collections {
image: "ilist_2.png" COMP;
}
parts {
part { name: "event";
type: RECT;
repeat_events: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
}
}
part {
name: "base";
mouse_events: 0;
@ -7552,14 +7560,6 @@ collections {
color: 255 255 255 64;
}
}
part { name: "event";
type: RECT;
repeat_events: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
}
}
}
programs {
// signal: elm,state,%s,active
@ -7622,6 +7622,15 @@ collections {
image: "icon_arrow_down.png" COMP;
}
parts {
part {
name: "event";
type: RECT;
repeat_events: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
}
}
part {
name: "base_sh";
mouse_events: 0;
@ -7852,15 +7861,6 @@ collections {
color: 255 255 255 64;
}
}
part {
name: "event";
type: RECT;
repeat_events: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
}
}
}
programs {
// signal: elm,state,%s,active
@ -7941,6 +7941,15 @@ collections {
image: "icon_arrow_down.png" COMP;
}
parts {
part {
name: "event";
type: RECT;
repeat_events: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
}
}
part {
name: "base";
mouse_events: 0;
@ -8147,15 +8156,6 @@ collections {
color: 255 255 255 64;
}
}
part {
name: "event";
type: RECT;
repeat_events: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
}
}
}
programs {
// signal: elm,state,%s,active

View File

@ -2531,6 +2531,7 @@ Evas_Object *gl3_icon_get(const void *data, Evas_Object *obj, const char *part)
{
Evas_Object *ck;
ck = elm_check_add(obj);
evas_object_propagate_events_set(ck, 0);
elm_check_state_set(ck, tit->onoff);
evas_object_smart_callback_add(ck, "changed", my_gl_item_check_changed, data);
evas_object_show(ck);

View File

@ -641,6 +641,7 @@ extern "C" {
EAPI Elm_Genlist_Item *elm_genlist_item_insert_before(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *before, Elm_Genlist_Item_Flags flags, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *func_data);
EAPI Elm_Genlist_Item *elm_genlist_item_insert_after(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Genlist_Item *after, Elm_Genlist_Item_Flags flags, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *func_data);
EAPI void elm_genlist_clear(Evas_Object *obj);
EAPI void elm_genlist_multi_select_set(Evas_Object *obj, Evas_Bool multi);
EAPI Elm_Genlist_Item *elm_genlist_selected_item_get(const Evas_Object *obj);
EAPI const Eina_List *elm_genlist_selected_items_get(const Evas_Object *obj);
EAPI Elm_Genlist_Item *elm_genlist_first_item_get(const Evas_Object *obj);
@ -661,6 +662,8 @@ extern "C" {
EAPI const void *elm_genlist_item_data_get(const Elm_Genlist_Item *item);
EAPI void elm_genlist_item_update(Elm_Genlist_Item *item);
EAPI void elm_genlist_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode);
EAPI void elm_genlist_always_select_mode_set(Evas_Object *obj, Evas_Bool always_select);
EAPI void elm_genlist_multi_select_set(Evas_Object *obj, Evas_Bool multi);
/* smart callbacks called:
* "clicked" - when the user double-clicked an item
* "selected" - when the user selected an item

View File

@ -24,6 +24,8 @@ struct _Widget_Data
Evas_Bool multi : 1;
Evas_Bool min_w : 1;
Evas_Bool min_h : 1;
Evas_Bool always_select : 1;
Evas_Bool no_select : 1;
};
struct _Item_Block
@ -196,14 +198,20 @@ static void
_item_select(Elm_Genlist_Item *it)
{
const char *selectraise;
if (it->wd->no_select) return;
if (it->delete_me) return;
if (it->selected) return;
if (it->selected)
{
if (it->wd->always_select) goto call;
return;
}
edje_object_signal_emit(it->base, "elm,state,selected", "elm");
selectraise = edje_object_data_get(it->base, "selectraise");
if ((selectraise) && (!strcmp(selectraise, "on")))
evas_object_raise(it->base);
it->selected = 1;
it->wd->selected = eina_list_append(it->wd->selected, it);
call:
if (it->func.func) it->func.func((void *)it->func.data, it->wd->obj, it);
evas_object_smart_callback_call(it->wd->obj, "selected", it);
}
@ -1442,3 +1450,17 @@ elm_genlist_horizontal_mode_set(Evas_Object *obj, Elm_List_Mode mode)
else
elm_scroller_content_min_limit(wd->scr, 0, 0);
}
EAPI void
elm_genlist_always_select_mode_set(Evas_Object *obj, Evas_Bool always_select)
{
Widget_Data *wd = elm_widget_data_get(obj);
wd->always_select = always_select;
}
EAPI void
elm_genlist_no_select_mode_set(Evas_Object *obj, Evas_Bool no_select)
{
Widget_Data *wd = elm_widget_data_get(obj);
wd->no_select = no_select;
}