Merge branch 'intefl/svn_merge' of ssh://165.213.149.219:29418/slp/pkgs/e/elementary...
[framework/uifw/elementary.git] / src / edje_externals / elm_calendar.c
1 #include "private.h"
2
3 typedef struct _Elm_Params_Calendar
4 {
5    Elm_Params base;
6    int year_min;
7    int year_max;
8    Eina_Bool sel_enable;
9    Eina_Bool sel_exists:1;
10 } Elm_Params_Calendar;
11
12 static void
13 external_calendar_state_set(void *data __UNUSED__, Evas_Object *obj,
14                             const void *from_params, const void *to_params,
15                             float pos __UNUSED__)
16 {
17    const Elm_Params_Calendar *p;
18    int min,max;
19
20    if (to_params) p = to_params;
21    else if (from_params) p = from_params;
22    else return;
23
24    if (p->year_min)
25      {
26         elm_calendar_min_max_year_get(obj, NULL, &max);
27         elm_calendar_min_max_year_set(obj, p->year_min, max);
28      }
29    if (p->year_max)
30      {
31         elm_calendar_min_max_year_get(obj, &min, NULL);
32         elm_calendar_min_max_year_set(obj, min, p->year_max);
33      }
34    if (p->sel_exists)
35 <<<<<<< HEAD
36      elm_calendar_day_selection_enabled_set(obj, p->sel_enable);
37 =======
38      elm_calendar_day_selection_disabled_set(obj, !p->sel_enable);
39 >>>>>>> remotes/origin/upstream
40 }
41
42 static Eina_Bool
43 external_calendar_param_set(void *data __UNUSED__, Evas_Object *obj,
44                             const Edje_External_Param *param)
45 {
46    int min,max;
47
48    if (!strcmp(param->name, "year_min"))
49      {
50 <<<<<<< HEAD
51         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
52           {
53              elm_calendar_min_max_year_get(obj, NULL, &max);
54              elm_calendar_min_max_year_set(obj, param->i, max);
55              return EINA_TRUE;
56           }
57      }
58    else if (!strcmp(param->name, "year_max"))
59      {
60         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
61           {
62              elm_calendar_min_max_year_get(obj, &min, NULL);
63              elm_calendar_min_max_year_set(obj, min,param->i);
64              return EINA_TRUE;
65           }
66      }
67    else if (!strcmp(param->name, "sel_enable"))
68      {
69         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
70           {
71              elm_calendar_day_selection_enabled_set(obj,param->i );
72              return EINA_TRUE;
73           }
74 =======
75         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
76           {
77              elm_calendar_min_max_year_get(obj, NULL, &max);
78              elm_calendar_min_max_year_set(obj, param->i, max);
79              return EINA_TRUE;
80           }
81      }
82    else if (!strcmp(param->name, "year_max"))
83      {
84         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
85           {
86              elm_calendar_min_max_year_get(obj, &min, NULL);
87              elm_calendar_min_max_year_set(obj, min,param->i);
88              return EINA_TRUE;
89           }
90      }
91    else if (!strcmp(param->name, "sel_enable"))
92      {
93         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
94           {
95              elm_calendar_day_selection_disabled_set(obj,!param->i );
96              return EINA_TRUE;
97           }
98 >>>>>>> remotes/origin/upstream
99      }
100
101    ERR("unknown parameter '%s' of type '%s'",
102        param->name, edje_external_param_type_str(param->type));
103
104    return EINA_FALSE;
105 }
106
107 static Eina_Bool
108 external_calendar_param_get(void *data __UNUSED__, const Evas_Object *obj,
109                             Edje_External_Param *param)
110 {
111    int min, max;
112
113    if (!strcmp(param->name, "year_min"))
114      {
115 <<<<<<< HEAD
116         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
117           {
118               elm_calendar_min_max_year_get(obj, &(param->i) ,&max);
119              return EINA_TRUE;
120           }
121      }
122    else if (!strcmp(param->name, "year_max"))
123      {
124         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
125           {
126               elm_calendar_min_max_year_get(obj, &min,&(param->i));
127              return EINA_TRUE;
128           }
129      }
130    else if (!strcmp(param->name, "sel_enable"))
131      {
132         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
133           {
134              param->i = elm_calendar_day_selection_enabled_get(obj);
135              return EINA_TRUE;
136           }
137 =======
138         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
139           {
140              elm_calendar_min_max_year_get(obj, &(param->i) ,&max);
141              return EINA_TRUE;
142           }
143      }
144    else if (!strcmp(param->name, "year_max"))
145      {
146         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
147           {
148              elm_calendar_min_max_year_get(obj, &min,&(param->i));
149              return EINA_TRUE;
150           }
151      }
152    else if (!strcmp(param->name, "sel_enable"))
153      {
154         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
155           {
156              param->i = !elm_calendar_day_selection_disabled_get(obj);
157              return EINA_TRUE;
158           }
159 >>>>>>> remotes/origin/upstream
160      }
161
162    ERR("unknown parameter '%s' of type '%s'",
163        param->name, edje_external_param_type_str(param->type));
164
165    return EINA_FALSE;
166 }
167
168 static void *
169 external_calendar_params_parse(void *data __UNUSED__,
170                                Evas_Object *obj __UNUSED__,
171                                const Eina_List *params)
172 {
173    Elm_Params_Calendar *mem;
174    Edje_External_Param *param;
175    const Eina_List *l;
176
177    mem = calloc(1, sizeof(Elm_Params_Calendar));
178    if (!mem)
179      return NULL;
180
181    EINA_LIST_FOREACH(params, l, param)
182      {
183         if (!strcmp(param->name, "year_min"))
184 <<<<<<< HEAD
185           mem->year_min = param->i;
186
187         else if(!strcmp(param->name, "year_max"))
188           mem->year_max = param->i;
189
190         else if (!strcmp(param->name, "sel_enable"))
191           {
192              mem->sel_enable = param->i;
193              mem->sel_exists = EINA_TRUE;
194 =======
195           mem->year_min = param->i;
196
197         else if(!strcmp(param->name, "year_max"))
198           mem->year_max = param->i;
199
200         else if (!strcmp(param->name, "sel_enable"))
201           {
202              mem->sel_enable = param->i;
203              mem->sel_exists = EINA_TRUE;
204 >>>>>>> remotes/origin/upstream
205           }
206      }
207
208    return mem;
209 }
210
211 static Evas_Object *
212 external_calendar_content_get(void *data __UNUSED__,
213                               const Evas_Object *obj __UNUSED__,
214                               const char *content __UNUSED__)
215 {
216    ERR("No content.");
217    return NULL;
218 }
219
220 static void
221 external_calendar_params_free(void *params)
222 {
223    free(params);
224 }
225
226 static Edje_External_Param_Info external_calendar_params[] = {
227    DEFINE_EXTERNAL_COMMON_PARAMS,
228    EDJE_EXTERNAL_PARAM_INFO_INT("year_min"),
229    EDJE_EXTERNAL_PARAM_INFO_INT("year_max"),
230    EDJE_EXTERNAL_PARAM_INFO_BOOL("sel_enable"),
231    EDJE_EXTERNAL_PARAM_INFO_SENTINEL
232 };
233
234 DEFINE_EXTERNAL_ICON_ADD(calendar, "calendar");
235 DEFINE_EXTERNAL_TYPE_SIMPLE(calendar, "Calendar");