[multibuttonentry/slider] updated the external interfaces
authorHyunsil <hyunsil.park@samsung.com>
Fri, 12 Nov 2010 12:44:56 +0000 (21:44 +0900)
committerHyunsil <hyunsil.park@samsung.com>
Fri, 12 Nov 2010 12:44:56 +0000 (21:44 +0900)
data/edje_externals/ico_multibuttonentry.png [new file with mode: 0644]
data/edje_externals/icons.edc
src/edje_externals/Makefile.am
src/edje_externals/elm_multibuttonentry.c [new file with mode: 0644]
src/edje_externals/elm_slider.c
src/edje_externals/modules.inc

diff --git a/data/edje_externals/ico_multibuttonentry.png b/data/edje_externals/ico_multibuttonentry.png
new file mode 100644 (file)
index 0000000..443e4c2
Binary files /dev/null and b/data/edje_externals/ico_multibuttonentry.png differ
index 450ebdf..7a3a888 100644 (file)
@@ -26,6 +26,7 @@ ICON("hoversel")
 ICON("icon")
 ICON("list")
 ICON("map")
+ICON("multibuttonentry")
 ICON("nocontents")
 ICON("notepad")
 ICON("page_control")
index 94b09c0..f9ec915 100644 (file)
@@ -43,6 +43,7 @@ elm_hoversel.c \
 elm_icon.c \
 elm_list.c \
 elm_map.c \
+elm_multibuttonentry.c \
 elm_nocontents.c \
 elm_notepad.c \
 elm_page_control.c \
diff --git a/src/edje_externals/elm_multibuttonentry.c b/src/edje_externals/elm_multibuttonentry.c
new file mode 100644 (file)
index 0000000..6902fee
--- /dev/null
@@ -0,0 +1,126 @@
+#include "private.h"
+
+typedef struct _Elm_Params_Multibuttonentry
+{
+   const char *label;
+   const char *guide_text;
+} Elm_Params_Multibuttonentry;
+
+static void
+external_multibuttonentry_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
+{
+   const Elm_Params_Multibuttonentry *p;
+
+   if (to_params) p = to_params;
+   else if (from_params) p = from_params;
+   else return;
+
+   if (p->label)
+     elm_multibuttonentry_label_set(obj, p->label);
+   if (p->guide_text)
+     elm_multibuttonentry_guide_text_set(obj, p->guide_text);   
+}
+
+static Eina_Bool
+external_multibuttonentry_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
+{
+   if (!strcmp(param->name, "label"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+         {
+            elm_multibuttonentry_label_set(obj, param->s);
+            return EINA_TRUE;
+         }
+     }
+   else if (!strcmp(param->name, "guide text"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+         {
+            elm_multibuttonentry_guide_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_multibuttonentry_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
+{
+   if (!strcmp(param->name, "label"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+         {
+            param->s = elm_multibuttonentry_label_get(obj);
+            return EINA_TRUE;
+         }
+     }
+   else if (!strcmp(param->name, "guide text"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+         {
+            param->s = elm_multibuttonentry_guide_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_multibuttonentry_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
+{
+   Elm_Params_Multibuttonentry *mem;
+   Edje_External_Param *param;
+   const Eina_List *l;
+
+   mem = external_common_params_parse(Elm_Params_Multibuttonentry, data, obj, params);
+   if (!mem)
+     return NULL;
+
+   EINA_LIST_FOREACH(params, l, param)
+     {
+       if (!strcmp(param->name, "label"))
+         mem->label = eina_stringshare_add(param->s);
+       else if (!strcmp(param->name, "guide text"))
+         mem->guide_text = eina_stringshare_add(param->s);
+     }
+
+   return mem;
+}
+
+static Evas_Object *external_multibuttonentry_content_get(void *data __UNUSED__,
+               const Evas_Object *obj, const char *content)
+{
+       ERR("so content");
+       return NULL;
+}
+
+static void
+external_multibuttonentry_params_free(void *params)
+{
+   Elm_Params_Multibuttonentry *mem = params;
+
+   if (mem->label)
+     eina_stringshare_del(mem->label);
+   if (mem->guide_text)
+     eina_stringshare_del(mem->guide_text);
+   external_common_params_free(params);
+}
+
+static Edje_External_Param_Info external_multibuttonentry_params[] = {
+   DEFINE_EXTERNAL_COMMON_PARAMS,
+   EDJE_EXTERNAL_PARAM_INFO_STRING("label"),
+   EDJE_EXTERNAL_PARAM_INFO_STRING("guide text"),
+   EDJE_EXTERNAL_PARAM_INFO_SENTINEL
+};
+
+DEFINE_EXTERNAL_ICON_ADD(multibuttonentry, "multibuttonentry")
+DEFINE_EXTERNAL_TYPE_SIMPLE(multibuttonentry, "Multibuttonentry")
+
index ba76cd4..cc84171 100644 (file)
@@ -15,6 +15,12 @@ typedef struct _Elm_Params_Slider
    Eina_Bool span_exists:1;
    Eina_Bool horizontal:1;
    Eina_Bool horizontal_exists:1;
+   Evas_Object *end_icon;
+   Eina_Bool indicator_show:1;
+   Eina_Bool indicator_show_exists:1;
+   double value_animated;
+   Eina_Bool value_animated_exists:1;
+   const char *end_label;
 } Elm_Params_Slider;
 
 static void
@@ -53,6 +59,14 @@ external_slider_state_set(void *data __UNUSED__, Evas_Object *obj, const void *f
      elm_slider_indicator_format_set(obj, p->indicator);
    if (p->unit)
      elm_slider_unit_format_set(obj, p->unit);
+   if (p->end_icon)
+     elm_slider_icon_set(obj, p->end_icon);
+   if (p->indicator_show_exists)
+     elm_slider_horizontal_set(obj, p->indicator_show);
+   if (p->value_animated_exists)
+     elm_slider_value_animated_set(obj, p->value_animated);
+   if (p->end_label)
+     elm_slider_end_label_set(obj, p->end_label);
 }
 
 static Eina_Bool
@@ -144,6 +158,40 @@ external_slider_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_Ex
             return EINA_TRUE;
          }
      }
+   else if (!strcmp(param->name, "end icon"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+         {
+            Evas_Object *end_icon = external_common_param_icon_get(obj, param);
+            if ((strcmp(param->s, "")) && (!end_icon)) return EINA_FALSE;
+            elm_slider_icon_set(obj, end_icon);
+            return EINA_TRUE;
+         }
+     }
+   else if (!strcmp(param->name, "indicator show"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+         {
+            elm_slider_indicator_show_set(obj, param->i);
+            return EINA_TRUE;
+         }
+     }
+   else if (!strcmp(param->name, "value animated"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
+         {
+            elm_slider_value_animated_set(obj, param->d);
+            return EINA_TRUE;
+         }
+     }
+   if (!strcmp(param->name, "end label"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+         {
+            elm_slider_end_label_set(obj, param->s);
+            return EINA_TRUE;
+         }
+     }
 
    ERR("unknown parameter '%s' of type '%s'",
        param->name, edje_external_param_type_str(param->type));
@@ -235,6 +283,35 @@ external_slider_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_Ex
             return EINA_TRUE;
          }
      }
+   else if (!strcmp(param->name, "end icon"))
+     {
+            /* not easy to get icon name back from live object */
+            return EINA_FALSE;
+     }
+   else if (!strcmp(param->name, "indicator show"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+         {
+            //param->i = elm_slider_indicator_show_get(obj); //this API should be added.
+            return EINA_TRUE;
+         }
+     }
+   else if (!strcmp(param->name, "value animated"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
+         {
+           // param->d = elm_slider_value_animated_get(obj); //this API should be added.
+            return EINA_TRUE;
+         }
+     }
+   else if (!strcmp(param->name, "end label"))
+     {
+       if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+         {
+            param->s = elm_slider_end_label_get(obj);
+            return EINA_TRUE;
+         }
+     }
 
    ERR("unknown parameter '%s' of type '%s'",
        param->name, edje_external_param_type_str(param->type));
@@ -254,6 +331,7 @@ external_slider_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
      return NULL;
 
    external_common_icon_param_parse(&mem->icon, obj, params);
+   external_common_icon_param_parse(&mem->end_icon, obj, params);
 
    EINA_LIST_FOREACH(params, l, param)
      {
@@ -291,6 +369,18 @@ external_slider_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
          mem->unit = eina_stringshare_add(param->s);
        else if (!strcmp(param->name, "indicator format"))
          mem->indicator = eina_stringshare_add(param->s);
+       else if (!strcmp(param->name, "indicator show"))
+         {
+            mem->indicator_show = param->i;
+            mem->indicator_show_exists = EINA_TRUE;
+         }
+       else if (!strcmp(param->name, "value animated"))
+         {
+            mem->value_animated = param->d;
+            mem->value_animated_exists = EINA_TRUE;
+         }
+       else if (!strcmp(param->name, "end label"))
+         mem->end_label = eina_stringshare_add(param->s);
      }
 
    return mem;
@@ -312,6 +402,8 @@ external_slider_params_free(void *params)
      eina_stringshare_del(mem->unit);
    if (mem->indicator)
      eina_stringshare_del(mem->indicator);
+   if (mem->end_label)
+     eina_stringshare_del(mem->end_label);
    external_common_params_free(params);
 }
 
@@ -326,6 +418,10 @@ static Edje_External_Param_Info external_slider_params[] = {
    EDJE_EXTERNAL_PARAM_INFO_INT("span"),
    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("unit format", "%1.2f"),
    EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("indicator format", "%1.2f"),
+   EDJE_EXTERNAL_PARAM_INFO_STRING("end icon"),
+   EDJE_EXTERNAL_PARAM_INFO_BOOL("indicator show"),
+   EDJE_EXTERNAL_PARAM_INFO_DOUBLE("value animated"),
+   EDJE_EXTERNAL_PARAM_INFO_STRING("end label"),
    EDJE_EXTERNAL_PARAM_INFO_SENTINEL
 };
 
index 7b26906..845e2cd 100644 (file)
@@ -14,6 +14,7 @@ DEFINE_TYPE(hoversel)
 DEFINE_TYPE(icon)
 DEFINE_TYPE(list)
 DEFINE_TYPE(map)
+DEFINE_TYPE(multibuttonentry)
 DEFINE_TYPE(navigationbar)
 DEFINE_TYPE(navigationbar_ex)
 DEFINE_TYPE(nocontents)