[genlist] no scale at theme_hook
[framework/uifw/elementary.git] / src / edje_externals / elm_colorpicker.c
1 /*
2  * elm_colorpicker.c
3  *
4  *  Created on: Nov 12, 2010
5  *      Author: Amit
6  */
7
8
9 #include "private.h"
10
11 typedef struct _Elm_Params_colorpicker
12 {
13    unsigned int r, g, b;
14 } Elm_Params_colorpicker ;
15
16 static void
17 external_colorpicker_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
18 {
19    const Elm_Params_colorpicker *p;
20    if (to_params) p = to_params;
21    else if (from_params) p = from_params;
22    else return;
23
24    if((p->r >= 0)&&( p->g >= 0)&& (p->b >= 0))
25    elm_colorpicker_color_set(obj, p->r, p->g, p->b) ;
26 }
27
28 static Eina_Bool
29 external_colorpicker_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
30 {
31         //Cannot set particular parameter
32    ERR("unknown parameter '%s' of type '%s'",
33        param->name, edje_external_param_type_str(param->type));
34    return EINA_FALSE;
35 }
36
37 static Eina_Bool
38 external_colorpicker_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
39 {
40    if (!strcmp(param->name, "r"))
41      {
42         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
43           {
44              elm_colorpicker_color_get( obj,&(param->i),NULL, NULL) ;
45              return EINA_TRUE;
46           }
47      }
48
49    if (!strcmp(param->name, "g"))
50        {
51         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
52           {
53              elm_colorpicker_color_get( obj,NULL,&(param->i), NULL) ;
54              return EINA_TRUE;
55           }
56        }
57    if (!strcmp(param->name, "b"))
58          {
59         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
60           {
61              elm_colorpicker_color_get( obj,NULL, NULL,&(param->i)) ;
62              return EINA_TRUE;
63           }
64          }
65
66    ERR("unknown parameter '%s' of type '%s'",
67        param->name, edje_external_param_type_str(param->type));
68
69    return EINA_FALSE;
70 }
71
72 static void *
73 external_colorpicker_params_parse(void *data __UNUSED__, Evas_Object *obj, const Eina_List *params)
74 {
75    Elm_Params_colorpicker *mem;
76    Edje_External_Param *param;
77    const Eina_List *l;
78    mem = calloc(1, sizeof(Elm_Params_colorpicker));
79            if (!mem)
80              return NULL;
81
82            EINA_LIST_FOREACH(params, l, param)
83              {
84                 if (!strcmp(param->name, "r"))
85                   {
86                      mem->r = param->i;
87                   }
88                 else if (!strcmp(param->name, "g"))
89                   {
90                      mem->g = param->i;
91                   }
92                 else if (!strcmp(param->name, "b"))
93                   {
94                      mem->b = param->i;
95                   }
96
97              }
98
99            return mem;
100         }
101
102 static Evas_Object *external_colorpicker_content_get(void *data __UNUSED__,
103                 const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
104 {
105         ERR("No content.");
106         return NULL;
107 }
108
109 static void
110 external_colorpicker_params_free(void *params)
111 {
112         Elm_Params_colorpicker *mem = params;
113
114    free(mem);
115 }
116
117 static Edje_External_Param_Info external_colorpicker_params[] = {
118    DEFINE_EXTERNAL_COMMON_PARAMS,
119    EDJE_EXTERNAL_PARAM_INFO_INT("r"),
120    EDJE_EXTERNAL_PARAM_INFO_INT("g"),
121    EDJE_EXTERNAL_PARAM_INFO_INT("b"),
122    EDJE_EXTERNAL_PARAM_INFO_SENTINEL
123 };
124
125 DEFINE_EXTERNAL_ICON_ADD(colorpicker, "colorpicker");
126 DEFINE_EXTERNAL_TYPE_SIMPLE(colorpicker, "colorpicker");
127