summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Zaoui <daniel.zaoui@samsung.com>2014-09-28 08:13:38 +0300
committerDaniel Zaoui <daniel.zaoui@samsung.com>2014-11-12 11:56:02 +0200
commite9676f1bee1b468f1f32df6872c0178eea850c23 (patch)
tree8d506e329e8263a81380b42983a0725807537713
parent1d1df758b370c91d43f8634d4038e469b575a3c1 (diff)
downloadelementary-e9676f1bee1b468f1f32df6872c0178eea850c23.tar.gz
Elm Colorselector Item: Migrate to Eo
-rw-r--r--src/lib/Makefile.am7
-rw-r--r--src/lib/elm_color_item.eo56
-rw-r--r--src/lib/elm_colorselector.c246
-rw-r--r--src/lib/elm_colorselector_common.h40
-rw-r--r--src/lib/elm_widget_colorselector.h24
5 files changed, 226 insertions, 147 deletions
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 81faaa344..db95c403e 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -604,7 +604,8 @@ elm_video.eo \
elm_web.eo \
elm_widget.eo \
elm_win.eo \
-elm_widget_item.eo
+elm_widget_item.eo \
+elm_color_item.eo
elm_eolian_c = $(elm_eolian_files:%.eo=%.eo.c)
elm_eolian_h = $(elm_eolian_files:%.eo=%.eo.h)
@@ -716,11 +717,13 @@ elementaryeolianfiles_DATA = \
elm_video.eo \
elm_web.eo \
elm_win.eo \
- elm_widget_item.eo
+ elm_widget_item.eo \
+ elm_color_item.eo
EXTRA_DIST += ${elementaryeolianfiles_DATA}
includecxxbindingsdir = $(includedir)/elementary-cxx-@VMAJ@
+
if HAVE_CXX11
nodist_includecxxbindings_HEADERS = Elementary.hh $(elm_eolian_hh)
CLEANFILES += Elementary.hh $(nodist_includecxxbindings_HEADERS)
diff --git a/src/lib/elm_color_item.eo b/src/lib/elm_color_item.eo
new file mode 100644
index 000000000..8739059f3
--- /dev/null
+++ b/src/lib/elm_color_item.eo
@@ -0,0 +1,56 @@
+class Elm_Color_Item(Elm_Widget_Item)
+{
+ legacy_prefix: null;
+ eo_prefix: elm_obj_color_item;
+ properties {
+ color {
+ get {
+ /*@
+ Get Palette item's color.
+
+ @ingroup Colorselector
+ */
+ }
+ set {
+ /*@
+ Set Palette item's color.
+
+ @ingroup Colorselector
+ */
+ }
+ values {
+ int r; /*@ red-value of color */
+ int g; /*@ green-value of color */
+ int b; /*@ blue-value of color */
+ int a; /*@ alpha-value of color */
+ }
+ }
+ selected {
+ get {
+ /*@
+ Get the selected state of color palette item
+
+ @since 1.9
+ @ingroup Colorselector
+ */
+ }
+ set {
+ /*@
+ Set the selected state of color palette item
+
+ @since 1.9
+ @ingroup Colorselector
+ */
+ }
+ values {
+ Eina_Bool selected; /*@ @c EINA_TRUE if selected @c EINA_FALSE otherwise */
+ }
+ }
+ }
+ implements {
+ Eo.Base.constructor;
+ Eo.Base.destructor;
+ Elm_Widget_Item.access_register;
+ Elm_Widget_Item.signal_emit;
+ }
+}
diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c
index cc679fc9e..3d8b7fe98 100644
--- a/src/lib/elm_colorselector.c
+++ b/src/lib/elm_colorselector.c
@@ -53,14 +53,13 @@ enum Palette_Box_Direction
static void
_items_del(Elm_Colorselector_Data *sd)
{
- Elm_Color_Item *item;
+ Elm_Object_Item *item;
if (!sd->items) return;
EINA_LIST_FREE(sd->items, item)
{
- free(item->color);
- elm_widget_item_free(item);
+ eo_del ((Eo *)item);
}
sd->items = NULL;
@@ -1077,7 +1076,7 @@ _elm_colorselector_elm_widget_theme_apply(Eo *obj, Elm_Colorselector_Data *sd)
{
int i;
Eina_List *elist;
- Elm_Color_Item *item;
+ Elm_Object_Item *eo_item;
const char *hpadstr, *vpadstr;
unsigned int h_pad = DEFAULT_HOR_PAD;
unsigned int v_pad = DEFAULT_VER_PAD;
@@ -1106,8 +1105,9 @@ _elm_colorselector_elm_widget_theme_apply(Eo *obj, Elm_Colorselector_Data *sd)
(h_pad * elm_widget_scale_get(obj) * elm_config_scale_get()),
(v_pad * elm_widget_scale_get(obj) * elm_config_scale_get()));
- EINA_LIST_FOREACH(sd->items, elist, item)
+ EINA_LIST_FOREACH(sd->items, elist, eo_item)
{
+ ELM_COLOR_ITEM_DATA_GET(eo_item, item);
if (!elm_layout_theme_set
(VIEW(item), "colorselector", "item", elm_widget_style_get(obj)))
CRI("Failed to set layout!");
@@ -1154,7 +1154,7 @@ _sub_obj_size_hints_set(Evas_Object *sobj,
}
static void
-_item_sizing_eval(Elm_Color_Item *item)
+_item_sizing_eval(Elm_Color_Item_Data *item)
{
Evas_Coord minw = -1, minh = -1;
Evas_Object *edje;
@@ -1173,12 +1173,15 @@ static void
_palette_sizing_eval(Evas_Object *obj)
{
Eina_List *elist;
- Elm_Color_Item *item;
+ Elm_Object_Item *eo_item;
ELM_COLORSELECTOR_DATA_GET(obj, sd);
- EINA_LIST_FOREACH(sd->items, elist, item)
- _item_sizing_eval(item);
+ EINA_LIST_FOREACH(sd->items, elist, eo_item)
+ {
+ ELM_COLOR_ITEM_DATA_GET(eo_item, item);
+ _item_sizing_eval(item);
+ }
}
static void
@@ -1272,14 +1275,14 @@ _on_resize(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
static Eina_Bool
_on_color_long_press(void *data)
{
- Elm_Color_Item *item = (Elm_Color_Item *)data;
+ Elm_Color_Item_Data *item = (Elm_Color_Item_Data *)data;
ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd);
sd->longpress_timer = NULL;
evas_object_smart_callback_call
- (WIDGET(item), SIG_COLOR_ITEM_LONGPRESSED, item);
+ (WIDGET(item), SIG_COLOR_ITEM_LONGPRESSED, EO_OBJ(item));
return ECORE_CALLBACK_CANCEL;
}
@@ -1290,7 +1293,7 @@ _on_color_pressed(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
- Elm_Color_Item *item = (Elm_Color_Item *)data;
+ Elm_Color_Item_Data *item = (Elm_Color_Item_Data *)data;
Evas_Event_Mouse_Down *ev = event_info;
if (!item) return;
@@ -1310,9 +1313,9 @@ _on_color_released(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
- Elm_Color_Item *item = (Elm_Color_Item *)data;
+ Elm_Color_Item_Data *item = (Elm_Color_Item_Data *)data;
Eina_List *l;
- Elm_Color_Item *temp_item;
+ Elm_Object_Item *eo_temp_item;
Evas_Event_Mouse_Down *ev = event_info;
if (!item) return;
@@ -1325,14 +1328,20 @@ _on_color_released(void *data,
elm_colorselector_color_set(WIDGET(item), item->color->r, item->color->g,
item->color->b, item->color->a);
evas_object_smart_callback_call(WIDGET(item), SIG_COLOR_ITEM_SELECTED,
- item);
+ EO_OBJ(item));
- temp_item = eina_list_data_get(sd->selected);
- if (temp_item && (temp_item != item))
- elm_object_signal_emit(VIEW(temp_item), "elm,state,unselected", "elm");
+ eo_temp_item = eina_list_data_get(sd->selected);
+ if (eo_temp_item && (eo_temp_item != EO_OBJ(item)))
+ {
+ ELM_COLOR_ITEM_DATA_GET(eo_temp_item, temp_item);
+ elm_object_signal_emit(VIEW(temp_item), "elm,state,unselected", "elm");
+ }
- EINA_LIST_FOREACH(sd->items, l, temp_item)
- if (item == temp_item) sd->selected = l;
+ EINA_LIST_FOREACH(sd->items, l, eo_temp_item)
+ {
+ ELM_COLOR_ITEM_DATA_GET(eo_temp_item, temp_item);
+ if (item == temp_item) sd->selected = l;
+ }
sd->focused = ELM_COLORSELECTOR_PALETTE;
}
@@ -1343,10 +1352,10 @@ _access_info_cb(void *data, Evas_Object *obj EINA_UNUSED)
Eina_Strbuf *buf;
int r = 0, g = 0, b = 0 ,a = 0;
- Elm_Color_Item *it = data;
+ Elm_Color_Item_Data *it = data;
ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it, NULL);
- elm_colorselector_palette_item_color_get((Elm_Object_Item *)it, &r, &g, &b, &a);
+ elm_colorselector_palette_item_color_get((Elm_Object_Item *)EO_OBJ(it), &r, &g, &b, &a);
buf = eina_strbuf_new();
eina_strbuf_append_printf(buf, "red %d, green %d, blue %d, alpha %d", r, g, b, a);
@@ -1355,17 +1364,20 @@ _access_info_cb(void *data, Evas_Object *obj EINA_UNUSED)
return ret;
}
-static void
-_access_widget_item_register(Elm_Color_Item *it)
+EOLIAN static Evas_Object*
+_elm_color_item_elm_widget_item_access_register(Eo *eo_it, Elm_Color_Item_Data *it)
{
Elm_Access_Info *ai;
- _elm_access_widget_item_register((Elm_Widget_Item_Data *)it);
+ Evas_Object *res;
+ eo_do_super(eo_it, ELM_COLOR_ITEM_CLASS, res = elm_wdg_item_access_register());
- ai = _elm_access_info_get(it->base.access_obj);
+ ai = _elm_access_info_get(it->base->access_obj);
_elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("color selector palette item"));
- _elm_access_callback_set(ai, ELM_ACCESS_INFO, _access_info_cb, it);
+ _elm_access_callback_set(ai, ELM_ACCESS_INFO, _access_info_cb, eo_it);
+
+ return res;
}
static void
@@ -1377,21 +1389,22 @@ _item_resize(void *data EINA_UNUSED,
elm_layout_sizing_eval(obj);
}
-static void
-_item_signal_emit_hook(Elm_Object_Item *it,
+EOLIAN static void
+_elm_color_item_elm_widget_item_signal_emit(Eo *eo_it EINA_UNUSED, Elm_Color_Item_Data *it,
const char *emission,
const char *source)
{
elm_object_signal_emit(VIEW(it), emission, source);
}
-static Elm_Color_Item *
-_item_new(Evas_Object *obj)
+EOLIAN static void
+_elm_color_item_eo_base_constructor(Eo *eo_item, Elm_Color_Item_Data *item)
{
- Elm_Color_Item *item;
+ eo_do_super(eo_item, ELM_COLOR_ITEM_CLASS, eo_constructor());
+ item->base = eo_data_scope_get(eo_item, ELM_WIDGET_ITEM_CLASS);
- item = elm_widget_item_new(obj, Elm_Color_Item);
- if (!item) return NULL;
+ Evas_Object *obj;
+ eo_do (eo_item, obj = eo_parent_get());
VIEW(item) = elm_layout_add(obj);
if (!elm_layout_theme_set
@@ -1417,16 +1430,19 @@ _item_new(Evas_Object *obj)
(item->color_obj, EVAS_CALLBACK_MOUSE_UP, _on_color_released, item);
elm_object_part_content_set(VIEW(item), "color_obj", item->color_obj);
- elm_widget_item_signal_emit_hook_set(item, _item_signal_emit_hook);
-
_item_sizing_eval(item);
evas_object_show(VIEW(item));
// ACCESS
if (_elm_config->access_mode == ELM_ACCESS_MODE_ON)
- _access_widget_item_register(item);
+ eo_do(obj, elm_wdg_item_access_register());
+}
- return item;
+EOLIAN static void
+_elm_color_item_eo_base_destructor(Eo *obj, Elm_Color_Item_Data *item)
+{
+ free(item->color);
+ eo_do_super(obj, ELM_COLOR_ITEM_CLASS, eo_destructor());
}
static void
@@ -1442,21 +1458,24 @@ static void
_colors_save(Evas_Object *obj)
{
Eina_List *elist;
- Elm_Color_Item *item;
+ Elm_Object_Item *eo_item;
ELM_COLORSELECTOR_DATA_GET(obj, sd);
_elm_config_colors_free(sd->palette_name);
- EINA_LIST_FOREACH(sd->items, elist, item)
- _elm_config_color_set(sd->palette_name, item->color->r, item->color->g,
- item->color->b, item->color->a);
+ EINA_LIST_FOREACH(sd->items, elist, eo_item)
+ {
+ ELM_COLOR_ITEM_DATA_GET(eo_item, item);
+ _elm_config_color_set(sd->palette_name, item->color->r, item->color->g,
+ item->color->b, item->color->a);
+ }
}
static void
_palette_colors_load(Evas_Object *obj)
{
Eina_List *elist;
- Elm_Color_Item *item;
+ Eo *eo_item;
Eina_List *color_list;
Elm_Color_RGBA *color;
@@ -1467,8 +1486,10 @@ _palette_colors_load(Evas_Object *obj)
EINA_LIST_FOREACH(color_list, elist, color)
{
- item = _item_new(obj);
- if (!item) return;
+ eo_item = eo_add(ELM_COLOR_ITEM_CLASS, obj);
+ if (!eo_item) return;
+
+ ELM_COLOR_ITEM_DATA_GET(eo_item, item);
item->color = ELM_NEW(Elm_Color_RGBA);
if (!item->color) return;
@@ -1484,7 +1505,7 @@ _palette_colors_load(Evas_Object *obj)
(item->color->b * item->color->a) / 255,
item->color->a);
- sd->items = eina_list_append(sd->items, item);
+ sd->items = eina_list_append(sd->items, EO_OBJ(item));
}
sd->config_load = EINA_TRUE;
@@ -1613,7 +1634,7 @@ static Eina_List*
_palette_box_vertical_item_get(Eina_List* ref_item, enum Palette_Box_Direction dir)
{
Evas_Coord basex, basey, x, y, dx, min_dx;
- Elm_Color_Item *item;
+ Elm_Object_Item *eo_item;
Eina_List* l;
Eina_List* res = NULL;
Eina_List* (*dir_func)(const Eina_List*);
@@ -1632,12 +1653,14 @@ _palette_box_vertical_item_get(Eina_List* ref_item, enum Palette_Box_Direction d
return NULL;
}
- item = eina_list_data_get(ref_item);
+ eo_item = eina_list_data_get(ref_item);
+ ELM_COLOR_ITEM_DATA_GET(eo_item, item);
evas_object_geometry_get(VIEW(item), &basex, &basey, NULL, NULL);
for (l = ref_item; l; l = dir_func(l))
{
- item = eina_list_data_get(l);
+ eo_item = eina_list_data_get(l);
+ item = eo_data_scope_get((Eo *)eo_item, ELM_COLOR_ITEM_CLASS);
evas_object_geometry_get(VIEW(item), &x, &y, NULL, NULL);
if (basey != y) break;
}
@@ -1647,7 +1670,8 @@ _palette_box_vertical_item_get(Eina_List* ref_item, enum Palette_Box_Direction d
for (; l; l = dir_func(l))
{
- item = eina_list_data_get(l);
+ eo_item = eina_list_data_get(l);
+ item = eo_data_scope_get((Eo *)eo_item, ELM_COLOR_ITEM_CLASS);
evas_object_geometry_get(VIEW(item), &x, &y, NULL, NULL);
if (basey != y) break;
@@ -1670,8 +1694,8 @@ static Eina_Bool
_key_action_move(Evas_Object *obj, const char *params)
{
ELM_COLORSELECTOR_DATA_GET(obj, sd);
+ Elm_Object_Item *eo_item = NULL;
Eina_List *cl = NULL;
- Elm_Color_Item *item = NULL;
char colorbar_s[128];
const char *dir = params;
@@ -1748,13 +1772,14 @@ _key_action_move(Evas_Object *obj, const char *params)
if (cl)
{
- item = eina_list_data_get(cl);
+ eo_item = eina_list_data_get(cl);
+ ELM_COLOR_ITEM_DATA_GET(eo_item, item);
elm_object_signal_emit(VIEW(item), "elm,anim,activate", "elm");
elm_colorselector_color_set
(WIDGET(item), item->color->r, item->color->g, item->color->b,
item->color->a);
evas_object_smart_callback_call
- (WIDGET(item), SIG_COLOR_ITEM_SELECTED, item);
+ (WIDGET(item), SIG_COLOR_ITEM_SELECTED, EO_OBJ(item));
sd->selected = cl;
}
else if (!cl && sd->focused == ELM_COLORSELECTOR_PALETTE)
@@ -1800,15 +1825,18 @@ _elm_colorselector_elm_widget_focus_next(Eo *obj, Elm_Colorselector_Data *sd, El
{
Eina_List *items = NULL;
Eina_List *l;
- Elm_Widget_Item_Data *item;
+ Elm_Object_Item *eo_item;
int i = 0;
if (!sd) return EINA_FALSE;
if (!sd->items) return EINA_FALSE;
- EINA_LIST_FOREACH(sd->items, l, item)
- items = eina_list_append(items, item->access_obj);
+ EINA_LIST_FOREACH(sd->items, l, eo_item)
+ {
+ Elm_Widget_Item_Data *witem = eo_data_scope_get((Eo *)eo_item, ELM_WIDGET_ITEM_CLASS);
+ items = eina_list_append(items, witem->access_obj);
+ }
for (i = 0; i < 4; i++)
{
@@ -1825,15 +1853,15 @@ static void
_access_obj_process(Evas_Object *obj, Eina_Bool is_access)
{
Eina_List *l;
- Elm_Color_Item *it;
+ Elm_Object_Item *eo_it;
int i = 0;
ELM_COLORSELECTOR_DATA_GET(obj, sd);
if (is_access)
{
- EINA_LIST_FOREACH(sd->items, l, it)
- _access_widget_item_register(it);
+ EINA_LIST_FOREACH(sd->items, l, eo_it)
+ eo_do((Eo *)eo_it, elm_wdg_item_access_register());
for (i = 0; i < 4; i++)
_access_colorbar_register(obj, sd->cb_data[i],
@@ -1841,8 +1869,8 @@ _access_obj_process(Evas_Object *obj, Eina_Bool is_access)
}
else
{
- EINA_LIST_FOREACH(sd->items, l, it)
- _elm_access_widget_item_unregister((Elm_Widget_Item_Data *)it);
+ EINA_LIST_FOREACH(sd->items, l, eo_it)
+ eo_do((Eo *)eo_it, elm_wdg_item_access_unregister());
//TODO: _elm_access_edje_object_part_object_unregister() ?
}
@@ -1978,18 +2006,21 @@ elm_colorselector_palette_item_color_get(const Elm_Object_Item *it,
int *b,
int *a)
{
- Elm_Color_Item *item;
-
- ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it);
+ eo_do((Eo *) it, elm_obj_color_item_color_get(r, g, b, a));
+}
- item = (Elm_Color_Item *)it;
- if (item)
- {
- if (r) *r = item->color->r;
- if (g) *g = item->color->g;
- if (b) *b = item->color->b;
- if (a) *a = item->color->a;
- }
+EOLIAN static void
+_elm_color_item_color_get(Eo *eo_item EINA_UNUSED,
+ Elm_Color_Item_Data *item,
+ int *r,
+ int *g,
+ int *b,
+ int *a)
+{
+ if (r) *r = item->color->r;
+ if (g) *g = item->color->g;
+ if (b) *b = item->color->b;
+ if (a) *a = item->color->a;
}
EAPI void
@@ -1999,11 +2030,17 @@ elm_colorselector_palette_item_color_set(Elm_Object_Item *it,
int b,
int a)
{
- Elm_Color_Item *item;
-
- ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it);
+ eo_do((Eo *) it, elm_obj_color_item_color_set(r, g, b, a));
+}
- item = (Elm_Color_Item *)it;
+EOLIAN static void
+_elm_color_item_color_set(Eo *eo_item EINA_UNUSED,
+ Elm_Color_Item_Data *item,
+ int r,
+ int g,
+ int b,
+ int a)
+{
item->color->r = r;
item->color->g = g;
item->color->b = b;
@@ -2013,22 +2050,23 @@ elm_colorselector_palette_item_color_set(Elm_Object_Item *it,
(item->color->g * item->color->a) / 255,
(item->color->b * item->color->a) / 255,
item->color->a);
- _colors_save(WIDGET(it));
+ _colors_save(WIDGET(item));
}
EOLIAN static Elm_Object_Item*
_elm_colorselector_palette_color_add(Eo *obj, Elm_Colorselector_Data *sd, int r, int g, int b, int a)
{
- Elm_Color_Item *item;
+ Eo *eo_item;
if (sd->config_load)
{
_items_del(sd);
sd->config_load = EINA_FALSE;
}
- item = _item_new(obj);
- if (!item) return NULL;
+ eo_item = eo_add(ELM_COLOR_ITEM_CLASS, obj);
+ if (!eo_item) return NULL;
+ ELM_COLOR_ITEM_DATA_GET(eo_item, item);
item->color = ELM_NEW(Elm_Color_RGBA);
if (!item->color) return NULL;
@@ -2044,11 +2082,11 @@ _elm_colorselector_palette_color_add(Eo *obj, Elm_Colorselector_Data *sd, int r,
(item->color->b * item->color->a) / 255,
item->color->a);
- sd->items = eina_list_append(sd->items, item);
+ sd->items = eina_list_append(sd->items, eo_item);
elm_layout_sizing_eval(obj);
- return (Elm_Object_Item *)item;
+ return EO_OBJ(item);
}
EOLIAN static void
@@ -2070,25 +2108,34 @@ EAPI void
elm_colorselector_palette_item_selected_set(Elm_Object_Item *it,
Eina_Bool selected)
{
- Elm_Color_Item *temp_item, *item;
- item = (Elm_Color_Item *)it;
+ eo_do((Eo *) it, elm_obj_color_item_selected_set(selected));
+}
+
+EOLIAN static void
+_elm_color_item_selected_set(Eo *eo_item,
+ Elm_Color_Item_Data *item,
+ Eina_Bool selected)
+{
+ Eo *eo_temp_item;
Eina_List *l;
ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd);
- ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it);
if (selected)
{
- temp_item = eina_list_data_get(sd->selected);
- if (item == temp_item) return;
+ eo_temp_item = eina_list_data_get(sd->selected);
+ if (eo_item == eo_temp_item) return;
elm_object_signal_emit(VIEW(item), "elm,state,selected", "elm");
elm_colorselector_color_set(WIDGET(item), item->color->r, item->color->g,
item->color->b, item->color->a);
- if (temp_item)
- elm_object_signal_emit(VIEW(temp_item), "elm,state,unselected", "elm");
+ if (eo_temp_item)
+ {
+ ELM_COLOR_ITEM_DATA_GET(eo_temp_item, temp_item);
+ elm_object_signal_emit(VIEW(temp_item), "elm,state,unselected", "elm");
+ }
- EINA_LIST_FOREACH(sd->items, l, temp_item)
- if (item == temp_item) sd->selected = l;
+ EINA_LIST_FOREACH(sd->items, l, eo_temp_item)
+ if (eo_item == eo_temp_item) sd->selected = l;
}
else
{
@@ -2100,13 +2147,18 @@ elm_colorselector_palette_item_selected_set(Elm_Object_Item *it,
EAPI Eina_Bool
elm_colorselector_palette_item_selected_get(const Elm_Object_Item *it)
{
- Elm_Color_Item *temp_item, *item;
- item = (Elm_Color_Item *)it;
- ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
+ return eo_do((Eo *) it, elm_obj_color_item_selected_get());
+}
+
+EOLIAN static Eina_Bool
+_elm_color_item_selected_get(Eo *eo_item EINA_UNUSED, Elm_Color_Item_Data *item)
+{
+ Eo *eo_temp_item;
+
ELM_COLORSELECTOR_DATA_GET(WIDGET(item), sd);
- temp_item = eina_list_data_get(sd->selected);
- if (item == temp_item) return EINA_TRUE;
+ eo_temp_item = eina_list_data_get(sd->selected);
+ if (eo_item == eo_temp_item) return EINA_TRUE;
else return EINA_FALSE;
}
@@ -2157,3 +2209,5 @@ _elm_colorselector_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EIN
}
#include "elm_colorselector.eo.c"
+#include "elm_color_item.eo.c"
+
diff --git a/src/lib/elm_colorselector_common.h b/src/lib/elm_colorselector_common.h
index 03935af54..00445bce5 100644
--- a/src/lib/elm_colorselector_common.h
+++ b/src/lib/elm_colorselector_common.h
@@ -30,50 +30,10 @@ typedef enum
ELM_COLORSELECTOR_ALL /**< all possible color selector is displayed */
} Elm_Colorselector_Mode;
-/**
- * Get Palette item's color.
- *
- * @param it The color palette item.
- * @param r integer pointer for r-value of color
- * @param g integer pointer for g-value of color
- * @param b integer pointer for b-value of color
- * @param a integer pointer for a-value of color
- *
- * @ingroup Colorselector
- */
EAPI void elm_colorselector_palette_item_color_get(const Elm_Object_Item *it, int *r, int *g, int *b, int *a);
-/**
- * Set palette item's color.
- *
- * @param it The color palette item.
- * @param r r-value of color
- * @param g g-value of color
- * @param b b-value of color
- * @param a a-value of color
- *
- * @ingroup Colorselector
- */
EAPI void elm_colorselector_palette_item_color_set(Elm_Object_Item *it, int r, int g, int b, int a);
-/**
- * Get the selected state of color palette item.
- *
- * @param it The Colorpalette item
- * @return @c EINA_TRUE if the item is selected, @c EINA_FALSE otherwise.
- *
- * @since 1.9
- * @ingroup Colorselector
- */
EAPI Eina_Bool elm_colorselector_palette_item_selected_get(const Elm_Object_Item *it);
-/**
- * Set the selected state of color palette item
- *
- * @param it The Colorpalette item
- * @param selected if it's @c EINA_TRUE, select the item otherwise, unselect the item
- *
- * @since 1.9
- * @ingroup Colorselector
- */
EAPI void elm_colorselector_palette_item_selected_set(Elm_Object_Item *it, Eina_Bool selected);
diff --git a/src/lib/elm_widget_colorselector.h b/src/lib/elm_widget_colorselector.h
index b55d59be0..3666fc8d9 100644
--- a/src/lib/elm_widget_colorselector.h
+++ b/src/lib/elm_widget_colorselector.h
@@ -2,6 +2,9 @@
#define ELM_WIDGET_COLORSELECTOR_H
#include "Elementary.h"
+#include "elm_color_item.eo.h"
+
+#include "elm_object_item_migration_temp.h"
/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
* CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
@@ -87,10 +90,10 @@ struct _Color_Bar_Data
Color_Type color_type;
};
-typedef struct _Elm_Color_Item Elm_Color_Item;
-struct _Elm_Color_Item
+typedef struct _Elm_Color_Item_Data Elm_Color_Item_Data;
+struct _Elm_Color_Item_Data
{
- ELM_WIDGET_ITEM;
+ Elm_Widget_Item_Data *base;
Evas_Object *color_obj;
Elm_Color_RGBA *color;
@@ -121,16 +124,19 @@ struct _Elm_Color_Item
return val; \
}
+#define ELM_COLOR_ITEM_DATA_GET(o, sd) \
+ Elm_Color_Item_Data * sd = eo_data_scope_get((Eo *)o, ELM_COLOR_ITEM_CLASS)
+
#define ELM_COLORSELECTOR_CHECK(obj) \
if (EINA_UNLIKELY(!eo_isa((obj), ELM_COLORSELECTOR_CLASS))) \
return
-#define ELM_COLORSELECTOR_ITEM_CHECK(it) \
- ELM_WIDGET_ITEM_CHECK_OR_RETURN((Elm_Widget_Item_Data *)it, ); \
- ELM_COLORSELECTOR_CHECK(it->base.widget);
+#define ELM_COLORSELECTOR_ITEM_CHECK(it) \
+ if (EINA_UNLIKELY(!eo_isa((Eo *)it->base->eo_obj, ELM_COLOR_ITEM_CLASS))) \
+ return
-#define ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it, ...) \
- ELM_WIDGET_ITEM_CHECK_OR_RETURN((Elm_Widget_Item_Data *)it, __VA_ARGS__); \
- ELM_COLORSELECTOR_CHECK(it->base.widget) __VA_ARGS__;
+#define ELM_COLORSELECTOR_ITEM_CHECK_OR_RETURN(it, ...) \
+ if (EINA_UNLIKELY(!eo_isa((Eo *)it->base->eo_obj, ELM_COLOR_ITEM_CLASS))) \
+ return __VA_ARGS__;
#endif