From b2d43d4cf400c9e5a79d7c7f9072cca1bf22c132 Mon Sep 17 00:00:00 2001 From: Shilpa Singh Date: Fri, 7 Feb 2014 23:30:01 +0900 Subject: [PATCH] Colorselector: Palette_items_get API added. Summary: Summary: Issue:Colorselector adds default palette items by reading colors from config, application do not have any way to get that color list. Solution: API added to get the palette's item list. Signed-off by: Shilpa Singh(shilpa.singh@samsung.com) Test Plan: Test Plan: Create a list pointer and call palette_items_get API to get the list of color items. Change the color of any item to confirm whether the list has been returned correctly. Eina_List *list = elm_colorselector_palette_items_get(cs); Eina_List *list2 = eina_list_last(list); Elm_Object_Item *color_item = eina_list_data_get(list2); elm_colorselector_palette_item_color_set(color_item, 0, 0, 0, 255); Reviewers: seoz, Hermet, raster CC: govi, myoungwoon Differential Revision: https://phab.enlightenment.org/D503 --- .../elementary/src/bin/test_colorselector.c | 7 +++++++ legacy/elementary/src/lib/elm_colorselector.c | 19 +++++++++++++++++++ .../elementary/src/lib/elm_colorselector_eo.h | 13 +++++++++++++ .../src/lib/elm_colorselector_legacy.h | 15 +++++++++++++++ 4 files changed, 54 insertions(+) diff --git a/legacy/elementary/src/bin/test_colorselector.c b/legacy/elementary/src/bin/test_colorselector.c index fe1157f88b..411d7a037b 100644 --- a/legacy/elementary/src/bin/test_colorselector.c +++ b/legacy/elementary/src/bin/test_colorselector.c @@ -81,6 +81,8 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx2, *cs, *fr, *re, *bt; + const Eina_List *item_list, *last_item_list; + Elm_Object_Item *color_item; int r, g, b, a; win = elm_win_util_standard_add("colorselector", "ColorSelector"); @@ -124,6 +126,11 @@ test_colorselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, elm_colorselector_palette_color_add(cs, 255, 255, 119, 255); elm_colorselector_palette_color_add(cs, 133, 100, 255, 255); + item_list = elm_colorselector_palette_items_get(cs); + last_item_list = eina_list_last(item_list); + color_item = eina_list_data_get(last_item_list); + elm_colorselector_palette_item_color_set(color_item, 255, 0, 0, 255); + a = 180; r = 255; g = 160; diff --git a/legacy/elementary/src/lib/elm_colorselector.c b/legacy/elementary/src/lib/elm_colorselector.c index 0809689322..714cd79412 100644 --- a/legacy/elementary/src/lib/elm_colorselector.c +++ b/legacy/elementary/src/lib/elm_colorselector.c @@ -2149,6 +2149,23 @@ _palette_clear(Eo *obj, void *_pd, va_list *list EINA_UNUSED) sd->focused = ELM_COLORSELECTOR_COMPONENTS; } +EAPI const Eina_List * +elm_colorselector_palette_items_get(const Evas_Object *obj) +{ + 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; +} + EAPI void elm_colorselector_palette_name_set(Evas_Object *obj, const char *palette_name) @@ -2213,6 +2230,7 @@ _class_constructor(Eo_Class *klass) 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_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 @@ -2231,6 +2249,7 @@ static const Eo_Op_Description op_desc[] = { 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_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 diff --git a/legacy/elementary/src/lib/elm_colorselector_eo.h b/legacy/elementary/src/lib/elm_colorselector_eo.h index 93ddc4ce3e..b7ac81a251 100644 --- a/legacy/elementary/src/lib/elm_colorselector_eo.h +++ b/legacy/elementary/src/lib/elm_colorselector_eo.h @@ -12,6 +12,7 @@ enum ELM_OBJ_COLORSELECTOR_SUB_ID_MODE_GET, ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_COLOR_ADD, ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_CLEAR, + ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_ITEMS_GET, ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_SET, ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_NAME_GET, ELM_OBJ_COLORSELECTOR_SUB_ID_LAST @@ -113,6 +114,18 @@ enum */ #define elm_obj_colorselector_palette_clear() ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_CLEAR) +/** + * @def elm_obj_colorselector_palette_items_get + * @since 1.9 + * + * Get list of palette items. + * + * @param[out] ret + * + * @ingroup Colorselector + */ +#define elm_obj_colorselector_palette_items_get(ret) ELM_OBJ_COLORSELECTOR_ID(ELM_OBJ_COLORSELECTOR_SUB_ID_PALETTE_ITEMS_GET), EO_TYPECHECK(const Eina_List **, ret) + /** * @def elm_obj_colorselector_palette_name_set * @since 1.8 diff --git a/legacy/elementary/src/lib/elm_colorselector_legacy.h b/legacy/elementary/src/lib/elm_colorselector_legacy.h index 5165fa4a13..b366056efa 100644 --- a/legacy/elementary/src/lib/elm_colorselector_legacy.h +++ b/legacy/elementary/src/lib/elm_colorselector_legacy.h @@ -79,6 +79,21 @@ EAPI Elm_Object_Item *elm_colorselector_palette_color_add(Evas_Object *obj, int */ EAPI void elm_colorselector_palette_clear(Evas_Object *obj); +/** + * Get list of palette items. + * + * @param obj The Colorselector object + * @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 + */ +EAPI const Eina_List *elm_colorselector_palette_items_get(const Evas_Object *obj); + /** * Set current palette's name *