From: yoz Date: Mon, 31 Oct 2011 15:05:04 +0000 (+0000) Subject: elementary: adding actionslider to edje_external X-Git-Tag: REL_F_I9500_20120323_1~17^2~1444 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6715dc4ef628d584fb6b473635592bc48a40c1a2;p=framework%2Fuifw%2Felementary.git elementary: adding actionslider to edje_external git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@64568 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/edje_externals/Makefile.am b/src/edje_externals/Makefile.am index 63ced97..ccc0a4c 100644 --- a/src/edje_externals/Makefile.am +++ b/src/edje_externals/Makefile.am @@ -29,6 +29,7 @@ pkg_LTLIBRARIES = module.la module_la_SOURCES = private.h \ modules.inc \ elm.c \ +elm_actionslider.c \ elm_anchorblock.c \ elm_anchorview.c \ elm_bubble.c \ diff --git a/src/edje_externals/elm_actionslider.c b/src/edje_externals/elm_actionslider.c new file mode 100644 index 0000000..aeef27e --- /dev/null +++ b/src/edje_externals/elm_actionslider.c @@ -0,0 +1,99 @@ +#include "private.h" + +typedef struct _Elm_Params_Actionslider +{ + Elm_Params base; + const char *label; +} Elm_Params_Actionslider; + +static void +external_actionslider_state_set(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const void *from_params, const void *to_params, float pos __UNUSED__) +{ + const Elm_Params_Actionslider *p; + + if (to_params) p = to_params; + else if (from_params) p = from_params; + else return; + + if (p->label) + elm_object_text_set(obj, p->label); +} + +static Eina_Bool +external_actionslider_param_set(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Edje_External_Param *param) +{ + if ((param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING) + && (!strcmp(param->name, "label"))) + { + elm_object_text_set(obj, param->s); + return EINA_TRUE; + } + + ERR("unknown parameter '%s' of type '%s'", + param->name, edje_external_param_type_str(param->type)); + + return EINA_FALSE; +} + +static Eina_Bool +external_actionslider_param_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, Edje_External_Param *param) +{ + if ((param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING) + && (!strcmp(param->name, "label"))) + { + param->s = elm_object_text_get(obj); + return EINA_TRUE; + } + + ERR("unknown parameter '%s' of type '%s'", + param->name, edje_external_param_type_str(param->type)); + + return EINA_FALSE; +} + +static void * +external_actionslider_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params) +{ + Elm_Params_Actionslider *mem; + Edje_External_Param *param; + const Eina_List *l; + + mem = ELM_NEW(Elm_Params_Actionslider); + if (!mem) + return NULL; + + EINA_LIST_FOREACH(params, l, param) + { + if (!strcmp(param->name, "label")) + { + mem->label = eina_stringshare_add(param->s); + break; + } + } + + return mem; +} + +static Evas_Object *external_actionslider_content_get(void *data __UNUSED__, + const Evas_Object *obj __UNUSED__, const char *content __UNUSED__) +{ + ERR("No content."); + return NULL; +} + +static void +external_actionslider_params_free(void *params) +{ + Elm_Params_Actionslider *mem = params; + if (mem->label) + eina_stringshare_del(mem->label); + free(mem); +} + +static Edje_External_Param_Info external_actionslider_params[] = { + DEFINE_EXTERNAL_COMMON_PARAMS, + EDJE_EXTERNAL_PARAM_INFO_SENTINEL +}; + +DEFINE_EXTERNAL_ICON_ADD(actionslider, "actionslider") +DEFINE_EXTERNAL_TYPE_SIMPLE(actionslider, "Actionslider"); diff --git a/src/edje_externals/modules.inc b/src/edje_externals/modules.inc index 0499345..d1b4149 100644 --- a/src/edje_externals/modules.inc +++ b/src/edje_externals/modules.inc @@ -1,3 +1,4 @@ +DEFINE_TYPE(actionslider) DEFINE_TYPE(anchorblock) DEFINE_TYPE(anchorview) DEFINE_TYPE(bubble)