aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/elementary/src/edje_externals/elm_calendar.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/elementary/src/edje_externals/elm_calendar.c')
-rw-r--r--libraries/elementary/src/edje_externals/elm_calendar.c200
1 files changed, 0 insertions, 200 deletions
diff --git a/libraries/elementary/src/edje_externals/elm_calendar.c b/libraries/elementary/src/edje_externals/elm_calendar.c
deleted file mode 100644
index d3a3ea2..0000000
--- a/libraries/elementary/src/edje_externals/elm_calendar.c
+++ /dev/null
@@ -1,200 +0,0 @@
1#include <assert.h>
2
3#include "private.h"
4
5typedef struct _Elm_Params_Calendar
6{
7 Elm_Params base;
8 int year_min;
9 int year_max;
10 const char *select_mode;
11
12} Elm_Params_Calendar;
13
14#define SELECT_MODE_GET(CHOICES, STR) \
15 unsigned int i; \
16 for (i = 0; i < (sizeof(CHOICES) / sizeof(CHOICES[0])); ++i) \
17 if (!strcmp(STR, CHOICES[i])) \
18 return i;
19
20
21static const char *_calendar_select_modes[] = {"default", "always", "none",
22 "ondemand", NULL};
23
24static Elm_Calendar_Select_Mode
25_calendar_select_mode_get(const char *select_mode)
26{
27 assert(sizeof(_calendar_select_modes) /
28 sizeof(_calendar_select_modes[0])
29 == ELM_CALENDAR_SELECT_MODE_ONDEMAND + 2);
30 SELECT_MODE_GET(_calendar_select_modes, select_mode);
31 return -1;
32}
33
34static void
35external_calendar_state_set(void *data __UNUSED__, Evas_Object *obj,
36 const void *from_params, const void *to_params,
37 float pos __UNUSED__)
38{
39 const Elm_Params_Calendar *p;
40 Elm_Calendar_Select_Mode select_mode;
41 int min,max;
42
43 if (to_params) p = to_params;
44 else if (from_params) p = from_params;
45 else return;
46
47 if (p->year_min)
48 {
49 elm_calendar_min_max_year_get(obj, NULL, &max);
50 elm_calendar_min_max_year_set(obj, p->year_min, max);
51 }
52 if (p->year_max)
53 {
54 elm_calendar_min_max_year_get(obj, &min, NULL);
55 elm_calendar_min_max_year_set(obj, min, p->year_max);
56 }
57 if (p->select_mode)
58 {
59 select_mode = _calendar_select_mode_get(p->select_mode);
60 elm_calendar_select_mode_set(obj, select_mode);
61 }
62}
63
64static Eina_Bool
65external_calendar_param_set(void *data __UNUSED__, Evas_Object *obj,
66 const Edje_External_Param *param)
67{
68 int min,max;
69
70 if (!strcmp(param->name, "year_min"))
71 {
72 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
73 {
74 elm_calendar_min_max_year_get(obj, NULL, &max);
75 elm_calendar_min_max_year_set(obj, param->i, max);
76 return EINA_TRUE;
77 }
78 }
79 else if (!strcmp(param->name, "year_max"))
80 {
81 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
82 {
83 elm_calendar_min_max_year_get(obj, &min, NULL);
84 elm_calendar_min_max_year_set(obj, min,param->i);
85 return EINA_TRUE;
86 }
87 }
88 else if (!strcmp(param->name, "select_mode"))
89 {
90 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
91 {
92 Elm_Calendar_Select_Mode select_mode;
93 select_mode = _calendar_select_mode_get(param->s);
94 elm_calendar_select_mode_set(obj, select_mode);
95 return EINA_TRUE;
96 }
97 }
98
99 ERR("unknown parameter '%s' of type '%s'",
100 param->name, edje_external_param_type_str(param->type));
101
102 return EINA_FALSE;
103}
104
105static Eina_Bool
106external_calendar_param_get(void *data __UNUSED__, const Evas_Object *obj,
107 Edje_External_Param *param)
108{
109 int min, max;
110
111 if (!strcmp(param->name, "year_min"))
112 {
113 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
114 {
115 elm_calendar_min_max_year_get(obj, &(param->i) ,&max);
116 return EINA_TRUE;
117 }
118 }
119 else if (!strcmp(param->name, "year_max"))
120 {
121 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT)
122 {
123 elm_calendar_min_max_year_get(obj, &min,&(param->i));
124 return EINA_TRUE;
125 }
126 }
127 else if (!strcmp(param->name, "select_mode"))
128 {
129 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
130 {
131 Elm_Calendar_Select_Mode mode;
132 mode = elm_calendar_select_mode_get(obj);
133 param->s = _calendar_select_modes[mode];
134 return EINA_TRUE;
135 }
136 }
137
138
139 ERR("unknown parameter '%s' of type '%s'",
140 param->name, edje_external_param_type_str(param->type));
141
142 return EINA_FALSE;
143}
144
145static void *
146external_calendar_params_parse(void *data __UNUSED__,
147 Evas_Object *obj __UNUSED__,
148 const Eina_List *params)
149{
150 Elm_Params_Calendar *mem;
151 Edje_External_Param *param;
152 const Eina_List *l;
153
154 mem = calloc(1, sizeof(Elm_Params_Calendar));
155 if (!mem)
156 return NULL;
157
158 EINA_LIST_FOREACH(params, l, param)
159 {
160 if (!strcmp(param->name, "year_min"))
161 mem->year_min = param->i;
162
163 else if (!strcmp(param->name, "year_max"))
164 mem->year_max = param->i;
165
166 else if (!strcmp(param->name, "select_mode"))
167 mem->select_mode = eina_stringshare_add(param->s);
168 }
169
170 return mem;
171}
172
173static Evas_Object *
174external_calendar_content_get(void *data __UNUSED__,
175 const Evas_Object *obj __UNUSED__,
176 const char *content __UNUSED__)
177{
178 ERR("No content.");
179 return NULL;
180}
181
182static void
183external_calendar_params_free(void *params)
184{
185 Elm_Params_Calendar *mem = params;
186 if (mem->select_mode)
187 eina_stringshare_del(mem->select_mode);
188 free(params);
189}
190
191static Edje_External_Param_Info external_calendar_params[] = {
192 DEFINE_EXTERNAL_COMMON_PARAMS,
193 EDJE_EXTERNAL_PARAM_INFO_INT("year_min"),
194 EDJE_EXTERNAL_PARAM_INFO_INT("year_max"),
195 EDJE_EXTERNAL_PARAM_INFO_STRING("select_mode"),
196 EDJE_EXTERNAL_PARAM_INFO_SENTINEL
197};
198
199DEFINE_EXTERNAL_ICON_ADD(calendar, "calendar");
200DEFINE_EXTERNAL_TYPE_SIMPLE(calendar, "Calendar");