b91fe89f9b53128e02c8dc3026afbbb6bfbcbde3
[framework/uifw/elementary.git] / src / edje_externals / elm_pager.c
1 #include <assert.h>
2
3 #include "private.h"
4
5 typedef struct _Elm_Params_Pager
6 {
7    Eina_Bool disable_animation_exists:1;
8    Eina_Bool disable_animation:1;
9 } Elm_Params_Pager;
10
11
12 static void
13 external_pager_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
14 {
15    const Elm_Params_Pager *p;
16
17    if (to_params) p = to_params;
18    else if (from_params) p = from_params;
19    else return;
20
21   if(p->disable_animation_exists) elm_pager_animation_disabled_set(obj, p->disable_animation);
22 }
23
24 static Eina_Bool
25 external_pager_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
26 {
27    if (!strcmp(param->name, "disable animation"))
28      {
29         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
30           {
31              elm_pager_animation_disabled_set(obj, param->i);
32              return EINA_TRUE;
33           }
34      }
35    ERR("unknown parameter '%s' of type '%s'",
36        param->name, edje_external_param_type_str(param->type));
37
38    return EINA_FALSE;
39 }
40
41 static Eina_Bool
42 external_pager_param_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, Edje_External_Param *param)
43 {
44    ERR("unknown parameter '%s' of type '%s'",
45        param->name, edje_external_param_type_str(param->type));
46
47    return EINA_FALSE;
48 }
49
50 static void *
51 external_pager_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
52 {
53    Elm_Params_Pager *mem;
54    Edje_External_Param *param;
55    const Eina_List *l;
56
57    mem = calloc(1, sizeof(Elm_Params_Pager));
58    if (!mem)
59      return NULL;
60
61    EINA_LIST_FOREACH(params, l, param)
62      {
63         if (!strcmp(param->name, "disable animation"))
64                 {
65              mem->disable_animation = !!param->i;
66                   mem->disable_animation_exists = EINA_TRUE;
67                 }
68      }
69
70    return mem;
71 }
72
73 static Evas_Object *external_pager_content_get(void *data __UNUSED__,
74                 const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
75 {
76    ERR("No content.");
77    return NULL;
78 }
79
80 static void
81 external_pager_params_free(void *params)
82 {
83    Elm_Params_Pager *mem = params;
84
85    free(mem);
86 }
87
88 static Edje_External_Param_Info external_pager_params[] = {
89    EDJE_EXTERNAL_PARAM_INFO_BOOL("disable animation"),
90    EDJE_EXTERNAL_PARAM_INFO_SENTINEL
91 };
92
93 DEFINE_EXTERNAL_ICON_ADD(pager, "pager")
94 DEFINE_EXTERNAL_TYPE_SIMPLE(pager, "Pager");