[genlist] no scale at theme_hook
[framework/uifw/elementary.git] / src / edje_externals / elm_timepicker.c
1 #include <assert.h>
2
3 #include "private.h"
4
5 typedef struct _Elm_Params_Timepicker
6 {
7    Eina_Bool show_am_pm:1;
8    Eina_Bool show_am_pm_exists:1;
9    Eina_Bool show_seconds:1;
10    Eina_Bool show_seconds_exists:1;
11 } Elm_Params_Timepicker;
12
13 static unsigned int page_count_bk;
14
15 static void
16 external_timepicker_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
17 {
18    const Elm_Params_Timepicker *p;
19
20    if (to_params) p = to_params;
21    else if (from_params) p = from_params;
22    else return;
23
24    if (p->show_am_pm_exists)
25      elm_timepicker_show_am_pm_set(obj, p->show_am_pm);
26    if (p->show_seconds_exists)
27      elm_timepicker_show_seconds_set(obj, p->show_seconds);
28
29 }
30
31 static Eina_Bool
32 external_timepicker_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
33 {
34    if (!strcmp(param->name, "show am_pm"))
35      {
36         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
37           {
38              elm_timepicker_show_am_pm_set(obj, param->i);
39              return EINA_TRUE;
40           }
41      }
42    else if (!strcmp(param->name, "show seconds"))
43      {
44         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
45           {
46              elm_timepicker_show_seconds_set(obj, param->i);
47              return EINA_TRUE;
48           }
49      }
50
51    ERR("unknown parameter '%s' of type '%s'",
52        param->name, edje_external_param_type_str(param->type));
53
54    return EINA_FALSE;
55 }
56
57 static Eina_Bool
58 external_timepicker_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
59 {
60
61    ERR("unknown parameter '%s' of type '%s'",
62                    param->name, edje_external_param_type_str(param->type));
63
64    return EINA_FALSE;
65 }
66
67 static void *
68 external_timepicker_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
69 {
70    Elm_Params_Timepicker *mem;
71    Edje_External_Param *param;
72    const Eina_List *l;
73
74    mem = calloc(1, sizeof(Elm_Params_Timepicker));
75    if (!mem)
76      return NULL;
77
78    EINA_LIST_FOREACH(params, l, param)
79      {
80         if (!strcmp(param->name, "show am_pm"))
81           {
82              mem->show_am_pm = !!param->i;
83              mem->show_am_pm_exists = EINA_TRUE;
84           }
85         else if (!strcmp(param->name, "show seconds"))
86           {
87              mem->show_seconds = !!param->i;
88              mem->show_seconds_exists = EINA_TRUE;
89           }
90      }
91
92    return mem;
93 }
94
95 static Evas_Object *external_timepicker_content_get(void *data __UNUSED__,
96                 const Evas_Object *obj, const char *content)
97 {
98    ERR("so content");
99    return NULL;
100 }
101
102 static void
103 external_timepicker_params_free(void *params)
104 {
105    Elm_Params_Timepicker *mem = params;
106
107    free(mem);
108 }
109
110 static Edje_External_Param_Info external_timepicker_params[] = {
111     EDJE_EXTERNAL_PARAM_INFO_BOOL("show am_pm"),
112     EDJE_EXTERNAL_PARAM_INFO_BOOL("show seconds"),
113     EDJE_EXTERNAL_PARAM_INFO_SENTINEL
114 };
115
116 DEFINE_EXTERNAL_ICON_ADD(timepicker, "timepicker");
117 DEFINE_EXTERNAL_TYPE_SIMPLE(timepicker, "Picker");
118