From 9a240dfedc89e78c21b149b40b873779c352485d Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Thu, 20 Mar 2014 14:29:12 +0200 Subject: [PATCH] Eolian: Integration of Color Selector --- legacy/elementary/src/lib/Makefile.am | 10 +- legacy/elementary/src/lib/elm_colorselector.c | 365 ++++-------------- .../elementary/src/lib/elm_colorselector.eo | 149 +++++++ .../elementary/src/lib/elm_colorselector_eo.h | 3 + .../src/lib/elm_widget_colorselector.h | 6 +- 5 files changed, 244 insertions(+), 289 deletions(-) create mode 100644 legacy/elementary/src/lib/elm_colorselector.eo diff --git a/legacy/elementary/src/lib/Makefile.am b/legacy/elementary/src/lib/Makefile.am index b18fc9f010..67842c07a0 100644 --- a/legacy/elementary/src/lib/Makefile.am +++ b/legacy/elementary/src/lib/Makefile.am @@ -569,7 +569,9 @@ BUILT_SOURCES = \ elm_check.eo.c \ elm_check.eo.h \ elm_clock.eo.c \ - elm_clock.eo.h + elm_clock.eo.h \ + elm_colorselector.eo.c \ + elm_colorselector.eo.h EXTRA_DIST += \ elm_widget.eo \ @@ -594,7 +596,8 @@ EXTRA_DIST += \ elm_button.eo \ elm_calendar.eo \ elm_check.eo \ - elm_clock.eo + elm_clock.eo \ + elm_colorselector.eo nodist_includesunstable_HEADERS = \ elm_widget.eo.h \ @@ -619,5 +622,6 @@ nodist_includesunstable_HEADERS = \ elm_button.eo.h \ elm_calendar.eo.h \ elm_check.eo.h \ - elm_clock.eo.h + elm_clock.eo.h \ + elm_colorselector.eo.h diff --git a/legacy/elementary/src/lib/elm_colorselector.c b/legacy/elementary/src/lib/elm_colorselector.c index 6d8de75b08..bf7c38f760 100644 --- a/legacy/elementary/src/lib/elm_colorselector.c +++ b/legacy/elementary/src/lib/elm_colorselector.c @@ -6,8 +6,6 @@ #include "elm_priv.h" #include "elm_widget_colorselector.h" -EAPI Eo_Op ELM_OBJ_COLORSELECTOR_BASE_ID = EO_NOOP; - #define MY_CLASS ELM_OBJ_COLORSELECTOR_CLASS #define MY_CLASS_NAME "Elm_Colorselector" @@ -43,7 +41,7 @@ enum Palette_Box_Direction }; static void -_items_del(Elm_Colorselector_Smart_Data *sd) +_items_del(Elm_Colorselector_Data *sd) { Elm_Color_Item *item; @@ -60,7 +58,7 @@ _items_del(Elm_Colorselector_Smart_Data *sd) } static void -_color_with_saturation(Elm_Colorselector_Smart_Data *sd, int *sr, int *sg, int *sb) +_color_with_saturation(Elm_Colorselector_Data *sd, int *sr, int *sg, int *sb) { if (sd->er > 127) *sr = 127 + (int)((double)(sd->er - 127) * sd->s); @@ -79,7 +77,7 @@ _color_with_saturation(Elm_Colorselector_Smart_Data *sd, int *sr, int *sg, int * } static void -_color_with_lightness(Elm_Colorselector_Smart_Data *sd, int *lr, int *lg, int *lb) +_color_with_lightness(Elm_Colorselector_Data *sd, int *lr, int *lg, int *lb) { if (sd->l > 0.5) { @@ -102,7 +100,7 @@ _color_with_lightness(Elm_Colorselector_Smart_Data *sd, int *lr, int *lg, int *l } static void -_color_picker_init(Elm_Colorselector_Smart_Data *sd) +_color_picker_init(Elm_Colorselector_Data *sd) { char buf[12]; unsigned int *pixels; @@ -156,7 +154,7 @@ _color_picker_init(Elm_Colorselector_Smart_Data *sd) } static void -_rgb_to_hsl(Elm_Colorselector_Smart_Data *sd) +_rgb_to_hsl(Elm_Colorselector_Data *sd) { double r2, g2, b2; double v, m, vm; @@ -203,7 +201,7 @@ _rgb_to_hsl(Elm_Colorselector_Smart_Data *sd) } static Eina_Bool -_hsl_to_rgb(Elm_Colorselector_Smart_Data *sd) +_hsl_to_rgb(Elm_Colorselector_Data *sd) { double sv, vsf, f, p, q, t, v; double r = 0, g = 0, b = 0; @@ -295,7 +293,7 @@ _hsl_to_rgb(Elm_Colorselector_Smart_Data *sd) } static void -_update_ergb(Elm_Colorselector_Smart_Data *sd, double x) +_update_ergb(Elm_Colorselector_Data *sd, double x) { double one_six = 1.0 / 6.0; @@ -338,7 +336,7 @@ _update_ergb(Elm_Colorselector_Smart_Data *sd, double x) } static void -_update_colorbars(Elm_Colorselector_Smart_Data *sd) +_update_colorbars(Elm_Colorselector_Data *sd) { int r, g, b; evas_object_color_set @@ -457,7 +455,7 @@ _entry_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { - Elm_Colorselector_Smart_Data *sd = data; + Elm_Colorselector_Data *sd = data; Evas_Object *parent; const char *text; int i, v; @@ -657,7 +655,7 @@ _mouse_out_canvas(void *data, Evas *e EINA_UNUSED, void *event_info EINA_UNUSED) } static void -_color_picker_add(Evas_Object *obj, Elm_Colorselector_Smart_Data *sd) +_color_picker_add(Evas_Object *obj, Elm_Colorselector_Data *sd) { Evas_Object *ed; Evas_Object *im; @@ -1064,8 +1062,8 @@ _color_bars_add(Evas_Object *obj) } } -static void -_elm_colorselector_smart_theme(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_colorselector_elm_widget_theme_apply(Eo *obj, Elm_Colorselector_Data *sd) { int i; Eina_List *elist; @@ -1074,16 +1072,13 @@ _elm_colorselector_smart_theme(Eo *obj, void *_pd, va_list *list) unsigned int h_pad = DEFAULT_HOR_PAD; unsigned int v_pad = DEFAULT_VER_PAD; - Elm_Colorselector_Smart_Data *sd = _pd; - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; + ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); Eina_Bool int_ret = EINA_FALSE; eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret)); - if (!int_ret) return; + if (!int_ret) return EINA_FALSE; - if (!sd->col_bars_area) return; + if (!sd->col_bars_area) return EINA_FALSE; elm_widget_theme_object_set (obj, sd->col_bars_area, "colorselector", "bg", @@ -1131,7 +1126,7 @@ _elm_colorselector_smart_theme(Eo *obj, void *_pd, va_list *list) elm_layout_sizing_eval(obj); - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } static void @@ -1210,12 +1205,11 @@ _full_sizing_eval(Evas_Object *obj) _component_sizing_eval(obj); } -static void -_elm_colorselector_smart_sizing_eval(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_colorselector_elm_layout_sizing_eval(Eo *obj, Elm_Colorselector_Data *sd) { Evas_Coord minw = -1, minh = -1; - Elm_Colorselector_Smart_Data *sd = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); elm_coords_finger_size_adjust(1, &minw, 1, &minh); @@ -1486,14 +1480,13 @@ _palette_colors_load(Evas_Object *obj) sd->config_load = EINA_TRUE; } -static void -_elm_colorselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_colorselector_evas_smart_add(Eo *obj, Elm_Colorselector_Data *priv) { const char *hpadstr, *vpadstr; unsigned int h_pad = DEFAULT_HOR_PAD; unsigned int v_pad = DEFAULT_VER_PAD; - Elm_Colorselector_Smart_Data *priv = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); eo_do_super(obj, MY_CLASS, evas_obj_smart_add()); @@ -1578,13 +1571,12 @@ _elm_colorselector_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) elm_widget_can_focus_set(obj, EINA_TRUE); } -static void -_elm_colorselector_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_colorselector_evas_smart_del(Eo *obj, Elm_Colorselector_Data *sd) { int i = 0; void *tmp[4]; - Elm_Colorselector_Smart_Data *sd = _pd; evas_event_callback_del_full(evas_object_evas_get(obj), EVAS_CALLBACK_CANVAS_FOCUS_IN, _mouse_in_canvas, obj); evas_event_callback_del_full(evas_object_evas_get(obj), EVAS_CALLBACK_CANVAS_FOCUS_OUT, _mouse_out_canvas, obj); @@ -1664,25 +1656,20 @@ _palette_box_vertical_item_get(Eina_List* ref_item, enum Palette_Box_Direction d return res; } -static void -_elm_colorselector_smart_event(Eo *obj, void *_pd, va_list *list) +EOLIAN static Eina_Bool +_elm_colorselector_elm_widget_event(Eo *obj, Elm_Colorselector_Data *sd, Evas_Object *src, Evas_Callback_Type type, void *event_info) { - Evas_Object *src = va_arg(*list, Evas_Object *); - Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type); - Evas_Event_Key_Down *ev = va_arg(*list, void *); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - Elm_Colorselector_Smart_Data *sd = _pd; + Evas_Event_Key_Down *ev = event_info; Eina_List *cl = NULL; Elm_Color_Item *item = NULL; char colorbar_s[128]; - if (ret) *ret = EINA_FALSE; (void) src; - if (elm_widget_disabled_get(obj)) return; - if (type != EVAS_CALLBACK_KEY_DOWN) return; - if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return; - if (!sd) return; + if (elm_widget_disabled_get(obj)) return EINA_FALSE; + if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE; + if (!sd) return EINA_FALSE; if (!sd->selected) sd->selected = sd->items; if ((!strcmp(ev->key, "Left")) || @@ -1692,7 +1679,7 @@ _elm_colorselector_smart_event(Eo *obj, void *_pd, va_list *list) cl = eina_list_prev(sd->selected); else if (sd->focused == ELM_COLORSELECTOR_COMPONENTS) _button_clicked_cb(sd->cb_data[sd->sel_color_type], sd->cb_data[sd->sel_color_type]->lbt, NULL); - else return; + else return EINA_FALSE; } else if ((!strcmp(ev->key, "Right")) || ((!strcmp(ev->key, "KP_Right")) && (!ev->string))) @@ -1701,7 +1688,7 @@ _elm_colorselector_smart_event(Eo *obj, void *_pd, va_list *list) cl = eina_list_next(sd->selected); else if (sd->focused == ELM_COLORSELECTOR_COMPONENTS) _button_clicked_cb(sd->cb_data[sd->sel_color_type], sd->cb_data[sd->sel_color_type]->rbt, NULL); - else return; + else return EINA_FALSE; } else if ((!strcmp(ev->key, "Up")) || ((!strcmp(ev->key, "KP_Up")) && (!ev->string))) @@ -1722,7 +1709,7 @@ _elm_colorselector_smart_event(Eo *obj, void *_pd, va_list *list) else { sd->sel_color_type = HUE; - return; + return EINA_FALSE; } } } @@ -1753,10 +1740,10 @@ _elm_colorselector_smart_event(Eo *obj, void *_pd, va_list *list) /*Append color type only if next color bar is available*/ if (edje_object_part_swallow_get(sd->col_bars_area, colorbar_s)) sd->sel_color_type = sd->sel_color_type + 1; - else return; + else return EINA_FALSE; } } - else return; + else return EINA_FALSE; if (cl) { item = eina_list_data_get(cl); @@ -1769,46 +1756,37 @@ _elm_colorselector_smart_event(Eo *obj, void *_pd, va_list *list) sd->selected = cl; } else if (!cl && sd->focused == ELM_COLORSELECTOR_PALETTE) - return; + return EINA_FALSE; ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; - if (ret) *ret = EINA_TRUE; + return EINA_TRUE; } static Eina_Bool _elm_colorselector_smart_focus_next_enable = EINA_FALSE; -static void -_elm_colorselector_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_colorselector_elm_widget_focus_direction_manager_is(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *_pd EINA_UNUSED) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - *ret = EINA_FALSE; + return EINA_FALSE; } -static void -_elm_colorselector_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_colorselector_elm_widget_focus_next_manager_is(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *_pd EINA_UNUSED) { - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - *ret = _elm_colorselector_smart_focus_next_enable; + return _elm_colorselector_smart_focus_next_enable; } -static void -_elm_colorselector_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static Eina_Bool +_elm_colorselector_elm_widget_focus_next(Eo *obj, Elm_Colorselector_Data *sd, Elm_Focus_Direction dir, Evas_Object **next) { - Elm_Focus_Direction dir = va_arg(*list, Elm_Focus_Direction); - Evas_Object **next = va_arg(*list, Evas_Object **); - Eina_Bool *ret = va_arg(*list, Eina_Bool *); - if (ret) *ret = EINA_FALSE; - Eina_Bool int_ret; - Eina_List *items = NULL; Eina_List *l; Elm_Widget_Item *item; int i = 0; - Elm_Colorselector_Smart_Data *sd = _pd; - if (!sd) return; + if (!sd) return EINA_FALSE; - if (!sd->items) return; + if (!sd->items) return EINA_FALSE; EINA_LIST_FOREACH(sd->items, l, item) items = eina_list_append(items, item->access_obj); @@ -1820,9 +1798,8 @@ _elm_colorselector_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *lis items = eina_list_append(items, sd->cb_data[i]->rbt); } - int_ret = elm_widget_focus_list_next_get + return elm_widget_focus_list_next_get (obj, items, eina_list_data_get, dir, next); - if (ret) *ret = int_ret; } static void @@ -1852,10 +1829,10 @@ _access_obj_process(Evas_Object *obj, Eina_Bool is_access) } } -static void -_elm_colorselector_smart_access(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +EOLIAN static void +_elm_colorselector_elm_widget_access(Eo *obj, Elm_Colorselector_Data *_pd EINA_UNUSED, Eina_Bool access) { - _elm_colorselector_smart_focus_next_enable = va_arg(*list, int); + _elm_colorselector_smart_focus_next_enable = access; _access_obj_process(obj, _elm_colorselector_smart_focus_next_enable); } @@ -1868,8 +1845,8 @@ elm_colorselector_add(Evas_Object *parent) return obj; } -static void -_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) +EOLIAN static void +_elm_colorselector_eo_base_constructor(Eo *obj, Elm_Colorselector_Data *_pd EINA_UNUSED) { eo_do_super(obj, MY_CLASS, eo_constructor()); eo_do(obj, @@ -1877,66 +1854,24 @@ _constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED) evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL)); } -EAPI void -elm_colorselector_color_set(Evas_Object *obj, - int r, - int g, - int b, - int a) +EOLIAN static void +_elm_colorselector_color_set(Eo *obj, Elm_Colorselector_Data *_pd EINA_UNUSED, int r, int g, int b, int a) { - ELM_COLORSELECTOR_CHECK(obj); - eo_do(obj, elm_obj_colorselector_color_set(r, g, b, a)); -} - -static void -_color_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list) -{ - int r = va_arg(*list, int); - int g = va_arg(*list, int); - int b = va_arg(*list, int); - int a = va_arg(*list, int); _colors_set(obj, r, g, b, a); } -EAPI void -elm_colorselector_color_get(const Evas_Object *obj, - int *r, - int *g, - int *b, - int *a) +EOLIAN static void +_elm_colorselector_color_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd, int *r, int *g, int *b, int *a) { - ELM_COLORSELECTOR_CHECK(obj); - eo_do((Eo *) obj, elm_obj_colorselector_color_get(r, g, b, a)); -} - -static void -_color_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - int *r = va_arg(*list, int *); - int *g = va_arg(*list, int *); - int *b = va_arg(*list, int *); - int *a = va_arg(*list, int *); - Elm_Colorselector_Smart_Data *sd = _pd; - if (r) *r = sd->r; if (g) *g = sd->g; if (b) *b = sd->b; if (a) *a = sd->a; } -EAPI void -elm_colorselector_mode_set(Evas_Object *obj, - Elm_Colorselector_Mode mode) +EOLIAN static void +_elm_colorselector_mode_set(Eo *obj, Elm_Colorselector_Data *sd, Elm_Colorselector_Mode mode) { - ELM_COLORSELECTOR_CHECK(obj); - eo_do(obj, elm_obj_colorselector_mode_set(mode)); -} - -static void -_mode_set(Eo *obj, void *_pd, va_list *list) -{ - Elm_Colorselector_Mode mode = va_arg(*list, Elm_Colorselector_Mode); - Elm_Colorselector_Smart_Data *sd = _pd; ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); Evas_Object *o; @@ -2011,21 +1946,10 @@ _mode_set(Eo *obj, void *_pd, va_list *list) elm_layout_sizing_eval(obj); } -EAPI Elm_Colorselector_Mode -elm_colorselector_mode_get(const Evas_Object *obj) +EOLIAN static Elm_Colorselector_Mode +_elm_colorselector_mode_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd) { - ELM_COLORSELECTOR_CHECK(obj) ELM_COLORSELECTOR_BOTH; - Elm_Colorselector_Mode ret = ELM_COLORSELECTOR_BOTH; - eo_do((Eo *) obj, elm_obj_colorselector_mode_get(&ret)); - return ret; -} - -static void -_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - Elm_Colorselector_Mode *ret = va_arg(*list, Elm_Colorselector_Mode *); - Elm_Colorselector_Smart_Data *sd = _pd; - *ret = sd->mode; + return sd->mode; } EAPI void @@ -2073,43 +1997,21 @@ elm_colorselector_palette_item_color_set(Elm_Object_Item *it, _colors_save(WIDGET(it)); } -EAPI Elm_Object_Item * -elm_colorselector_palette_color_add(Evas_Object *obj, - int r, - int g, - int b, - int a) +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_COLORSELECTOR_CHECK(obj) NULL; - Elm_Object_Item *ret = NULL; - eo_do(obj, elm_obj_colorselector_palette_color_add(r, g, b, a, &ret)); - return ret; -} - -static void -_palette_color_add(Eo *obj, void *_pd, va_list *list) -{ - int r = va_arg(*list, int); - int g = va_arg(*list, int); - int b = va_arg(*list, int); - int a = va_arg(*list, int); - Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **); - if (ret) *ret = NULL; - Elm_Color_Item *item; - Elm_Colorselector_Smart_Data *sd = _pd; - if (sd->config_load) { _items_del(sd); sd->config_load = EINA_FALSE; } item = _item_new(obj); - if (!item) return; + if (!item) return NULL; item->color = ELM_NEW(Elm_Color_RGBA); - if (!item->color) return; + if (!item->color) return NULL; item->color->r = r; item->color->g = g; @@ -2127,41 +2029,22 @@ _palette_color_add(Eo *obj, void *_pd, va_list *list) elm_layout_sizing_eval(obj); - if (ret) *ret = (Elm_Object_Item *)item; + return (Elm_Object_Item *)item; } -EAPI void -elm_colorselector_palette_clear(Evas_Object *obj) +EOLIAN static void +_elm_colorselector_palette_clear(Eo *obj, Elm_Colorselector_Data *sd) { - ELM_COLORSELECTOR_CHECK(obj); - eo_do(obj, elm_obj_colorselector_palette_clear()); -} - -static void -_palette_clear(Eo *obj, void *_pd, va_list *list EINA_UNUSED) -{ - Elm_Colorselector_Smart_Data *sd = _pd; _colors_remove(obj); if (sd->mode == ELM_COLORSELECTOR_BOTH) sd->focused = ELM_COLORSELECTOR_COMPONENTS; } -EAPI const Eina_List * -elm_colorselector_palette_items_get(const Evas_Object *obj) +EOLIAN static const Eina_List* +_elm_colorselector_palette_items_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd) { - ELM_COLORSELECTOR_CHECK(obj) NULL; - const Eina_List *color_list = NULL; - eo_do((Eo *) obj, elm_obj_colorselector_palette_items_get(&color_list)); - return color_list; -} - -static void -_palette_items_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) -{ - const Eina_List **ret = va_arg(*list, const Eina_List **); - Elm_Colorselector_Smart_Data *sd = _pd; - *ret = sd->items; + return sd->items; } EAPI void @@ -2208,36 +2091,15 @@ elm_colorselector_palette_item_selected_get(const Elm_Object_Item *it) else return EINA_FALSE; } -EAPI Elm_Object_Item * -elm_colorselector_palette_selected_item_get(const Evas_Object *obj) +EOLIAN static Elm_Object_Item* +_elm_colorselector_palette_selected_item_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd) { - ELM_COLORSELECTOR_CHECK(obj) NULL; - Elm_Object_Item *ret = NULL; - eo_do((Eo *) obj, elm_obj_colorselector_palette_selected_item_get(&ret)); - return ret; + return eina_list_data_get(sd->selected); } -static void -_palette_selected_item_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +EOLIAN static void +_elm_colorselector_palette_name_set(Eo *obj, Elm_Colorselector_Data *sd, const char *palette_name) { - Elm_Object_Item **ret = va_arg(*list, Elm_Object_Item **); - Elm_Colorselector_Smart_Data *sd = _pd; - *ret = eina_list_data_get(sd->selected); -} - -EAPI void -elm_colorselector_palette_name_set(Evas_Object *obj, - const char *palette_name) -{ - ELM_COLORSELECTOR_CHECK(obj); - eo_do(obj, elm_obj_colorselector_palette_name_set(palette_name)); -} - -static void -_palette_name_set(Eo *obj, void *_pd, va_list *list) -{ - const char *palette_name = va_arg(*list, const char *); - Elm_Colorselector_Smart_Data *sd = _pd; EINA_SAFETY_ON_NULL_RETURN(palette_name); if (!strcmp(sd->palette_name, palette_name)) return; @@ -2247,82 +2109,19 @@ _palette_name_set(Eo *obj, void *_pd, va_list *list) _palette_colors_load(obj); } -EAPI const char * -elm_colorselector_palette_name_get(const Evas_Object *obj) +EOLIAN static const char* +_elm_colorselector_palette_name_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd) { - ELM_COLORSELECTOR_CHECK(obj) NULL; - const char *ret = NULL; - eo_do((Eo *) obj, elm_obj_colorselector_palette_name_get(&ret)); - return ret; + return sd->palette_name; } static void -_palette_name_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +_elm_colorselector_class_constructor(Eo_Class *klass) { - const char **ret = va_arg(*list, const char **); - Elm_Colorselector_Smart_Data *sd = _pd; - *ret = sd->palette_name; -} - -static void -_class_constructor(Eo_Class *klass) -{ - const Eo_Op_Func_Description func_desc[] = { - - EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor), - - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_colorselector_smart_add), - EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_colorselector_smart_del), - - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_colorselector_smart_theme), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), _elm_colorselector_smart_event), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_colorselector_smart_focus_next_manager_is), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_colorselector_smart_focus_direction_manager_is), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_FOCUS_NEXT), _elm_colorselector_smart_focus_next), - EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ACCESS), _elm_colorselector_smart_access), - - EO_OP_FUNC(ELM_OBJ_LAYOUT_ID(ELM_OBJ_LAYOUT_SUB_ID_SIZING_EVAL), _elm_colorselector_smart_sizing_eval), - - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_COLOR_SET), _color_set), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_COLOR_GET), _color_get), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_SET), _mode_set), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_GET), _mode_get), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_COLOR_ADD), _palette_color_add), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_CLEAR), _palette_clear), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_SELECTED_ITEM_GET), _palette_selected_item_get), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_ITEMS_GET), _palette_items_get), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_SET), _palette_name_set), - EO_OP_FUNC(ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_GET), _palette_name_get), - EO_OP_FUNC_SENTINEL - }; - eo_class_funcs_set(klass, func_desc); - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); if (_elm_config->access_mode == ELM_ACCESS_MODE_ON) _elm_colorselector_smart_focus_next_enable = EINA_TRUE; } -static const Eo_Op_Description op_desc[] = { - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_COLOR_SET, "Set color to colorselector."), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_COLOR_GET, "Get current color from colorselector."), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_SET, "Set Colorselector's mode."), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_GET, "Get Colorselector's mode."), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_COLOR_ADD, "Add a new color item to palette."), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_CLEAR, "Clear the palette items."), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_SELECTED_ITEM_GET, "Get Palette's current selected item"), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_ITEMS_GET, "Get palette's item list"), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_SET, "Set current palette's name."), - EO_OP_DESCRIPTION(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_GET, "Get current palette's name."), - EO_OP_DESCRIPTION_SENTINEL -}; -static const Eo_Class_Description class_desc = { - EO_VERSION, - MY_CLASS_NAME, - EO_CLASS_TYPE_REGULAR, - EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_COLORSELECTOR_BASE_ID, op_desc, ELM_OBJ_COLORSELECTOR_SUB_ID_LAST), - NULL, - sizeof(Elm_Colorselector_Smart_Data), - _class_constructor, - NULL -}; -EO_DEFINE_CLASS(elm_obj_colorselector_class_get, &class_desc, ELM_OBJ_LAYOUT_CLASS, NULL); + +#include "elm_colorselector.eo.c" diff --git a/legacy/elementary/src/lib/elm_colorselector.eo b/legacy/elementary/src/lib/elm_colorselector.eo new file mode 100644 index 0000000000..bbe97c5008 --- /dev/null +++ b/legacy/elementary/src/lib/elm_colorselector.eo @@ -0,0 +1,149 @@ +class Elm_Colorselector (Elm_Layout) +{ + eo_prefix: elm_obj_colorselector; + properties { + color { + set { + /*@ + Set color to colorselector + + @ingroup Colorselector */ + } + get { + /*@ + Get current color from colorselector + + @ingroup Colorselector */ + } + values { + int r; /*@ r-value of color */ + int g; /*@ g-value of color */ + int b; /*@ b-value of color */ + int a; /*@ a-value of color */ + } + } + palette_name { + set { + /*@ + Set current palette's name + + When colorpalette name is set, colors will be loaded from and saved to config + using the set name. If no name is set then colors will be loaded from or + saved to "default" config. + + @ingroup Colorselector */ + } + get { + /*@ + Get current palette's name + + @return Name of palette + + Returns the currently set palette name using which colors will be + saved/loaded in to config. + + @ingroup Colorselector */ + } + values { + const char *palette_name; /*@ Name of palette */ + } + } + mode { + set { + /*@ + Set Colorselector's mode. + + Colorselector supports three modes palette only, selector only and both. + + @ingroup Colorselector */ + } + get { + /*@ + Get Colorselector's mode. + + @return mode The current mode of colorselector + + @ingroup Colorselector */ + } + values { + Elm_Colorselector_Mode mode; /*@ Elm_Colorselector_Mode */ + } + } + palette_items { + get { + /*@ + Get list of palette items. + + @return The list of color palette items. + + Note That palette item list is internally managed by colorselector widget and + it should not be freed/modified by application. + + @since 1.9 + + @ingroup Colorselector */ + return const Eina_List *; + } + } + palette_selected_item { + get { + /*@ + Get the selected item in colorselector palette. + + @return The selected item, or NULL if none is selected. + + @since 1.9 + @ingroup Colorselector */ + return Elm_Object_Item *; + } + } + } + methods { + palette_color_add { + /*@ + Add a new color item to palette. + + @return A new color palette Item. + + @ingroup Colorselector */ + + return Elm_Object_Item *; + params { + @in int r; /*@ r-value of color */ + @in int g; /*@ g-value of color */ + @in int b; /*@ b-value of color */ + @in int a; /*@ a-value of color */ + } + } + palette_clear { + /*@ + Clear the palette items. + + @ingroup Colorselector */ + + } + } + implements { + class::constructor; + Eo_Base::constructor; + Evas_Smart::add; + Evas_Smart::del; + Elm_Widget::theme_apply; + Elm_Widget::focus_next_manager_is; + Elm_Widget::focus_next; + Elm_Widget::focus_direction_manager_is; + Elm_Widget::access; + Elm_Widget::event; + Elm_Layout::sizing_eval; + } + events { + color,item,selected; + color,item,longpressed; + changed; + language,changed; + access,changed; + focused; + unfocused; + } + +} diff --git a/legacy/elementary/src/lib/elm_colorselector_eo.h b/legacy/elementary/src/lib/elm_colorselector_eo.h index b8cc88e9a9..844d4862a9 100644 --- a/legacy/elementary/src/lib/elm_colorselector_eo.h +++ b/legacy/elementary/src/lib/elm_colorselector_eo.h @@ -1,3 +1,5 @@ +#include "elm_colorselector.eo.h" +#if 0 #define ELM_OBJ_COLORSELECTOR_CLASS elm_obj_colorselector_class_get() const Eo_Class *elm_obj_colorselector_class_get(void) EINA_CONST; @@ -166,3 +168,4 @@ enum * @ingroup Colorselector */ #define elm_obj_colorselector_palette_name_get(ret) ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_GET), EO_TYPECHECK(const char **, ret) +#endif diff --git a/legacy/elementary/src/lib/elm_widget_colorselector.h b/legacy/elementary/src/lib/elm_widget_colorselector.h index 7b1c5ed28c..2170882ac4 100644 --- a/legacy/elementary/src/lib/elm_widget_colorselector.h +++ b/legacy/elementary/src/lib/elm_widget_colorselector.h @@ -19,8 +19,8 @@ typedef struct _Color_Bar_Data Color_Bar_Data; /** * Base layout smart data extended with colorselector instance data. */ -typedef struct _Elm_Colorselector_Smart_Data Elm_Colorselector_Smart_Data; -struct _Elm_Colorselector_Smart_Data +typedef struct _Elm_Colorselector_Data Elm_Colorselector_Data; +struct _Elm_Colorselector_Data { /* for the 3 displaying modes of the widget */ Evas_Object *col_bars_area; @@ -95,7 +95,7 @@ struct _Elm_Color_Item */ #define ELM_COLORSELECTOR_DATA_GET(o, sd) \ - Elm_Colorselector_Smart_Data * sd = eo_data_scope_get(o, ELM_OBJ_COLORSELECTOR_CLASS) + Elm_Colorselector_Data * sd = eo_data_scope_get(o, ELM_OBJ_COLORSELECTOR_CLASS) #define ELM_COLORSELECTOR_DATA_GET_OR_RETURN(o, ptr) \ ELM_COLORSELECTOR_DATA_GET(o, ptr); \