Merge "remove warning"
[framework/uifw/elementary.git] / src / edje_externals / elm_colorpalette.c
1
2
3 #include "private.h"
4
5 typedef struct _Elm_Params_colorpalette
6 {
7    unsigned int row, col;
8    Elm_Colorpalette_Color *color;
9    char *color_set ;
10    int color_num ;
11
12 } Elm_Params_colorpalette;
13
14 static void
15 external_colorpalette_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
16 {
17    const Elm_Params_colorpalette *p;
18    if (to_params) p = to_params;
19    else if (from_params) p = from_params;
20    else return;
21    if((p->row > 0)&&( p->col > 0))
22            elm_colorpalette_row_column_set(obj,p->row,p->col) ;
23    if(p->color_num)
24    elm_colorpalette_color_set(obj,p->color_num, p->color) ;
25 }
26
27 static Eina_Bool
28 external_colorpalette_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
29 {
30    if (!strcmp(param->name, "row"))
31      {
32         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
33           {
34                 //No EAPI for row set
35              return EINA_FALSE;
36           }
37      }
38    else if (!strcmp(param->name, "col"))
39      {
40         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
41           {
42                 //No EAPI for column set
43                 return EINA_FALSE;
44           }
45      }
46    else if (!strcmp(param->name,"color_num"))
47      {
48         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
49           {
50                 //No EAPI for colour_number set
51                 return EINA_FALSE;
52           }
53         }
54    ERR("unknown parameter '%s' of type '%s'",
55        param->name, edje_external_param_type_str(param->type));
56
57    return EINA_FALSE;
58 }
59
60 static Eina_Bool
61 external_colorpalette_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
62 {
63         return EINA_FALSE;
64    //FIX ME:getter functions not provided
65 }
66
67 static void *
68 external_colorpalette_params_parse(void *data __UNUSED__, Evas_Object *obj, const Eina_List *params)
69 {
70    Elm_Params_colorpalette *mem;
71    Edje_External_Param *param;
72    const Eina_List *l;
73    int k,m,ll ;
74    k = m = ll = 0;
75    char test[5] ;
76    int d = 0;
77    char *s = NULL ;
78    mem = calloc(1, sizeof(Elm_Params_colorpalette));
79    if (!mem)
80      return NULL;
81
82    EINA_LIST_FOREACH(params, l, param)
83      {
84         if (!strcmp(param->name, "row"))
85           {
86              mem->row = param->i;
87           }
88        else if (!strcmp(param->name, "col"))
89              {
90                 mem->col = param->i;
91              }
92            else if (!strcmp(param->name, "color_num"))
93              {
94                 mem->color_num = param->i ;
95              }
96
97            else if (!strcmp(param->name, "color_set"))
98          {
99            mem->color = (Elm_Colorpalette_Color*) calloc (mem->color_num, sizeof(Elm_Colorpalette_Color));
100            s = (char*)param->i;
101            while(k <(mem->color_num) && (ll <= strlen(s)))
102              {
103                   if(d == 0)
104                    {
105                       while(s[ll]!=':')
106                             test[m++] = s[ll++];
107                       test[m]= 0 ;
108                       ll++ ;
109                       m = 0 ;
110                       mem->color[k].r = atoi(test) ;
111                       d++ ;
112                    }
113                   if(d == 1)
114                    {
115                      while(s[ll]!=':')
116                            test[m++] = s[ll++];
117                      test[m]= 0 ;
118                      ll++ ;
119                      m = 0 ;
120                      mem->color[k].g = atoi(test) ;
121                      d++ ;
122                    }
123                   if(d == 2)
124                    {
125                       while(s[ll]!='/' &&  m<3)
126                             test[m++] = s[ll++];
127                       test[m]= 0 ;
128                       ll++ ;
129                       m = 0 ;
130                       mem->color[k].b = atoi(test) ;
131                       d = 0 ;
132                    }
133                 }
134            k++;
135          }
136        }
137     return mem;
138 }
139
140 static Evas_Object *external_colorpalette_content_get(void *data __UNUSED__,
141                 const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
142 {
143         ERR("No content.");
144         return NULL;
145 }
146
147 static void
148 external_colorpalette_params_free(void *params)
149 {
150         Elm_Params_colorpalette *mem = params;
151     if(mem->color)free(mem->color);
152         if(mem->color_set)free(mem->color_set) ;
153         if(mem)free(mem);
154 }
155
156 static Edje_External_Param_Info external_colorpalette_params[] = {
157    DEFINE_EXTERNAL_COMMON_PARAMS,
158    EDJE_EXTERNAL_PARAM_INFO_INT("row"),
159    EDJE_EXTERNAL_PARAM_INFO_INT("col"),
160    EDJE_EXTERNAL_PARAM_INFO_INT("r"),
161    EDJE_EXTERNAL_PARAM_INFO_INT("g"),
162    EDJE_EXTERNAL_PARAM_INFO_INT("b"),
163    EDJE_EXTERNAL_PARAM_INFO_STRING("color_set"),
164    EDJE_EXTERNAL_PARAM_INFO_INT("color_num"),
165    EDJE_EXTERNAL_PARAM_INFO_SENTINEL
166 };
167
168 DEFINE_EXTERNAL_ICON_ADD(colorpalette, "colorpalette");
169 DEFINE_EXTERNAL_TYPE_SIMPLE(colorpalette, "colorpalette");