typedef struct _Elm_Params_Scroller
{
Elm_Params base;
- const char *policy;
+ const char *h_policy;
+ const char *v_policy;
Eina_Bool bounce_exist: 1;
Eina_Bool h_bounce:1;
Eina_Bool h_bounce_exists:1;
Eina_Bool v_bounce_exists:1;
}Elm_Params_Scroller;
-static const char* list_policy_choices[] = {"auto", "on", "off", NULL};
+static const char* scroller_policy_choices[] = {"auto", "on", "off", NULL};
static Elm_Scroller_Policy
-_scroller_horizontal_policy_setting_get(const char *horizontal_policy_str)
+_scroller_policy_setting_get(const char *policy_str)
{
unsigned int i;
- assert(sizeof(list_policy_choices)/sizeof(list_policy_choices[0]) == ELM_SCROLLER_POLICY_LAST + 1);
+ assert(sizeof(scroller_policy_choices)/sizeof(scroller_policy_choices[0]) == ELM_SCROLLER_POLICY_LAST + 1);
- for (i = 0; i < sizeof(list_policy_choices); i++)
+ for (i = 0; i < sizeof(scroller_policy_choices); i++)
{
- if (!strcmp(horizontal_policy_str, list_policy_choices[i]))
+ if (!strcmp(policy_str, scroller_policy_choices[i]))
return i;
}
return ELM_SCROLLER_POLICY_LAST;
}
-static Elm_Scroller_Policy
-_scroller_vertical_policy_setting_get(const char *vertical_policy_str)
-{
- unsigned int i;
-
- assert(sizeof(list_policy_choices)/sizeof(list_policy_choices[0]) == ELM_SCROLLER_POLICY_LAST + 1);
-
- for (i = 0; i < sizeof(list_policy_choices); i++)
- {
- if (!strcmp(vertical_policy_str, list_policy_choices[i]))
- return i;
- }
- return ELM_SCROLLER_POLICY_LAST;
-}
static void
external_scroller_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
{
const Elm_Params_Scroller *p;
+ Elm_Scroller_Policy policy_h, policy_v;
+ Eina_Bool h_bounce, v_bounce;
if (to_params) p = to_params;
else if (from_params) p = from_params;
else return;
- if (p->policy)
+ if ((p->h_policy) && (p->v_policy))
{
- Elm_Scroller_Policy h_policy;
- Elm_Scroller_Policy v_policy;
-
- h_policy = _scroller_horizontal_policy_setting_get(p->policy);
- v_policy = _scroller_vertical_policy_setting_get(p->policy);
-
- if (h_policy != ELM_LIST_LAST && v_policy != ELM_LIST_LAST)
- elm_scroller_policy_set(obj, h_policy, v_policy);
- else
- {
- Elm_Scroller_Policy /*unsigned int*/ policy_h, policy_v;
-
- elm_scroller_policy_get(obj, &policy_h, &policy_v);
-
- if (h_policy != ELM_LIST_LAST && v_policy == ELM_LIST_LAST)
- elm_scroller_policy_set(obj, h_policy, policy_v);
- else if(v_policy != ELM_LIST_LAST && h_policy == ELM_LIST_LAST)
- elm_scroller_policy_set(obj, policy_h, v_policy);
- else
- elm_scroller_policy_set(obj, policy_h, policy_v);
- }
+ policy_h = _scroller_policy_setting_get(p->h_policy);
+ policy_v = _scroller_policy_setting_get(p->v_policy);
+
+ elm_scroller_policy_set(obj, policy_h, policy_v);
+ }
+ else if ((p->h_policy) || (p->v_policy))
+ {
+ elm_scroller_policy_get(obj, &policy_h, &policy_v);
+
+ if (p->h_policy)
+ policy_h = _scroller_policy_setting_get(p->h_policy);
+ else
+ policy_v = _scroller_policy_setting_get(p->v_policy);
+ elm_scroller_policy_set(obj, policy_h, policy_v);
}
if ((p->h_bounce_exists) && (p->v_bounce_exists))
elm_scroller_bounce_set(obj, p->h_bounce, p->v_bounce);
- else if ((p->h_bounce_exists) || (p->v_bounce_exists))
- {
- Eina_Bool h_bounce, v_bounce;
-
- elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
- if (p->h_bounce_exists)
- elm_scroller_bounce_set(obj, p->h_bounce, v_bounce);
- else
- elm_scroller_bounce_set(obj, h_bounce, p->v_bounce);
- }
+ else if ((p->h_bounce_exists) || (p->v_bounce_exists))
+ {
+ elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
+ if (p->h_bounce_exists)
+ elm_scroller_bounce_set(obj, p->h_bounce, v_bounce);
+ else
+ elm_scroller_bounce_set(obj, h_bounce, p->v_bounce);
+ }
}
static Eina_Bool
external_scroller_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
- {
- if (!strcmp(param->name, "horizontal policy"))
- {
- if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
- {
- Elm_Scroller_Policy h_policy;
- Elm_Scroller_Policy policy_h, policy_v;
-
- elm_scroller_policy_get(obj, &policy_h, &policy_v);
-
- h_policy = _scroller_horizontal_policy_setting_get(param->s);
-
- if (h_policy == ELM_LIST_LAST) return EINA_FALSE;
- elm_scroller_policy_set(obj, h_policy, policy_v);
- return EINA_TRUE;
- }
- }
- else if (!strcmp(param->name, "vertical policy"))
- {
- if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
- {
- Elm_Scroller_Policy v_policy;
- Elm_Scroller_Policy policy_h, policy_v;
-
- elm_scroller_policy_get(obj, &policy_h, &policy_v);
-
- v_policy = _scroller_vertical_policy_setting_get(param->s);
-
- if (v_policy == ELM_LIST_LAST) return EINA_FALSE;
- elm_scroller_policy_set(obj, policy_h, v_policy);
- return EINA_TRUE;
- }
- }
- else if (!strcmp(param->name, "horizontal bounce"))
- {
- if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
- {
- Eina_Bool h_bounce, v_bounce;
- elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
- elm_scroller_bounce_set(obj, param->i, v_bounce);
- return EINA_TRUE;
- }
- }
- else if (!strcmp(param->name, "vertical bounce"))
- {
- if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
- {
- Eina_Bool h_bounce, v_bounce;
- elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
- elm_scroller_bounce_set(obj, h_bounce, param->i);
- return EINA_TRUE;
- }
- }
+{
+ Elm_Scroller_Policy policy_h, policy_v, h_policy, v_policy;
+ Eina_Bool h_bounce, v_bounce;
+
+ if (!strcmp(param->name, "horizontal policy"))
+ {
+ if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
+ {
+ elm_scroller_policy_get(obj, &policy_h, &policy_v);
+ h_policy = _scroller_policy_setting_get(param->s);
+
+ if (h_policy == ELM_SCROLLER_POLICY_LAST) return EINA_FALSE;
+ elm_scroller_policy_set(obj, h_policy, policy_v);
+ return EINA_TRUE;
+ }
+ }
+ else if (!strcmp(param->name, "vertical policy"))
+ {
+ if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
+ {
+ elm_scroller_policy_get(obj, &policy_h, &policy_v);
+ v_policy = _scroller_vertical_policy_setting_get(param->s);
+
+ if (v_policy == ELM_SCROLLER_POLICY_LAST) return EINA_FALSE;
+ elm_scroller_policy_set(obj, policy_h, v_policy);
+ return EINA_TRUE;
+ }
+ }
+ else if (!strcmp(param->name, "horizontal bounce"))
+ {
+ if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+ {
+ elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
+ elm_scroller_bounce_set(obj, param->i, v_bounce);
+ return EINA_TRUE;
+ }
+ }
+ else if (!strcmp(param->name, "vertical bounce"))
+ {
+ if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+ {
+ elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
+ elm_scroller_bounce_set(obj, h_bounce, param->i);
+ return EINA_TRUE;
+ }
+ }
ERR("unknown parameter '%s' of type '%s'",
param->name, edje_external_param_type_str(param->type));
static Eina_Bool
external_scroller_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
{
+ Elm_Scroller_Policy h_policy, v_policy;
+ Eina_Bool h_bounce, v_bounce;
+
if (!strcmp(param->name, "horizontal policy"))
- {
+ {
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
{
- Elm_Scroller_Policy h_policy, v_policy;
elm_scroller_policy_get(obj, &h_policy, &v_policy);
- if (h_policy == ELM_LIST_LAST)
+ if (h_policy == ELM_SCROLLER_POLICY_LAST)
return EINA_FALSE;
- param->s = list_policy_choices[h_policy];
+ param->s = scroller_policy_choices[h_policy];
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
{
- Elm_Scroller_Policy h_policy, v_policy;
elm_scroller_policy_get(obj, &h_policy, &v_policy);
- if (v_policy == ELM_LIST_LAST)
+ if (v_policy == ELM_SCROLLER_POLICY_LAST)
return EINA_FALSE;
- param->s = list_policy_choices[v_policy];
+ param->s = scroller_policy_choices[v_policy];
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
- Eina_Bool h_bounce, v_bounce;
elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
param->i = h_bounce;
return EINA_TRUE;
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
- Eina_Bool h_bounce, v_bounce;
elm_scroller_bounce_get(obj, &h_bounce, &v_bounce);
param->i = v_bounce;
return EINA_TRUE;
EINA_LIST_FOREACH(params, l, param)
{
if (!strcmp(param->name, "horizontal policy"))
- mem->policy = eina_stringshare_add(param->s);
+ mem->h_policy = eina_stringshare_add(param->s);
else if (!strcmp(param->name, "vertical policy"))
- mem->policy = eina_stringshare_add(param->s);
+ mem->v_policy = eina_stringshare_add(param->s);
else if (!strcmp(param->name, "horizontal bounce"))
{
mem->h_bounce = param->i;
{
Elm_Params_Scroller *mem = params;
- if (mem->policy)
- eina_stringshare_del(mem->policy);
+ if (mem->h_policy)
+ eina_stringshare_del(mem->h_policy);
+ if (mem->v_policy)
+ eina_stringshare_del(mem->v_policy);
external_common_params_free(params);
}
static Edje_External_Param_Info external_scroller_params[] = {
- EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("horizontal policy", "auto", list_policy_choices),
- EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("vertical policy", "auto", list_policy_choices),
+ EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("horizontal policy", "auto", scroller_policy_choices),
+ EDJE_EXTERNAL_PARAM_INFO_CHOICE_FULL("vertical policy", "auto", scroller_policy_choices),
EDJE_EXTERNAL_PARAM_INFO_BOOL("horizontal bounce"),
EDJE_EXTERNAL_PARAM_INFO_BOOL("vertical bounce"),
EDJE_EXTERNAL_PARAM_INFO_SENTINEL