[elm_searchbar]: edje externals updated.
[framework/uifw/elementary.git] / src / edje_externals / elm_searchbar.c
index f34e527..65b888c 100644 (file)
@@ -3,8 +3,13 @@
 typedef struct _Elm_Params_Searchbar
 {
    Elm_Params base;
+   Eina_Bool cancel_button_exists:1;
+   Eina_Bool cancel_button_visible:1;
    Eina_Bool cancel_button_animation:1;
    Eina_Bool cancel_button_animation_exists:1;
+   Eina_Bool boundary_rect_exists:1;
+   Eina_Bool boundary_rect:1;
+   const char *text;
 } Elm_Params_Searchbar;
 
 static void
@@ -16,30 +21,50 @@ external_searchbar_state_set(void *data __UNUSED__, Evas_Object *obj, const void
    else if (from_params) p = from_params;
    else return;
 
-   //if (p->base.label)
-   //  elm_searchbar_text_set(obj, p->base.label);
+   if (p->cancel_button_exists)
+      elm_searchbar_cancel_button_set(obj, p->cancel_button_visible);
    if (p->cancel_button_animation_exists)
       elm_searchbar_cancel_button_animation_set(obj, p->cancel_button_animation);
+   if (p->boundary_rect_exists)
+      elm_searchbar_boundary_rect_set(obj, p->boundary_rect);
+   if (p->text)
+     elm_object_text_set(obj, p->text);
 }
 
 static Eina_Bool
 external_searchbar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
 {
-   if (!strcmp(param->name, "label"))
+   if (!strcmp(param->name, "cancel_button_visible"))
      {
-        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
           {
-             elm_searchbar_text_set(obj, param->s);
+             elm_searchbar_cancel_button_set(obj, param->i);
              return EINA_TRUE;
           }
      }
    else if (!strcmp(param->name, "cancel_button_animation"))
      {
-        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
-          {
-             elm_searchbar_cancel_button_animation_set(obj, param->i);
-            return EINA_TRUE;
-         }
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+          {
+             elm_searchbar_cancel_button_animation_set(obj, param->i);
+             return EINA_TRUE;
+          }
+     }
+   else if (!strcmp(param->name, "boundary_rect"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+          {
+             elm_searchbar_boundary_rect_set(obj, param->i);
+             return EINA_TRUE;
+          }
+     }
+   else if (!strcmp(param->name, "text"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+          {
+             elm_object_text_set(obj, param->s);
+             return EINA_TRUE;
+          }
      }
 
    ERR("unknown parameter '%s' of type '%s'",
@@ -49,14 +74,13 @@ external_searchbar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje
 }
 
 static Eina_Bool
-external_searchbar_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
+external_searchbar_param_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, Edje_External_Param *param)
 {
-   if (!strcmp(param->name, "label"))
+   if (!strcmp(param->name, "cancel_button_visible"))
      {
-        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
           {
-             param->s = elm_searchbar_text_get((Evas_Object *)obj);
-             return EINA_TRUE;
+             return param->i;
           }
      }
    else if (!strcmp(param->name, "cancel_button_animation"))
@@ -66,6 +90,21 @@ external_searchbar_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje
              return param->i;
           }
      }
+   else if (!strcmp(param->name, "boundary_rect"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
+          {
+             return param->i;
+          }
+     }
+   else if (!strcmp(param->name, "text"))
+     {
+        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
+          {
+             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));
@@ -82,17 +121,31 @@ external_searchbar_params_parse(void *data __UNUSED__,
    Edje_External_Param *param;
    const Eina_List *l;
 
-   //mem = external_common_params_parse(Elm_Params_Searchbar, data, obj, params);
+   mem = calloc(1, sizeof(Elm_Params_Searchbar));
    if (!mem)
       return NULL;
 
    EINA_LIST_FOREACH(params, l, param)
      {
+        if (!strcmp(param->name, "cancel_button_visible"))
+         {
+            mem->cancel_button_visible = !!param->i;
+            mem->cancel_button_exists = EINA_TRUE;
+         }
         if (!strcmp(param->name, "cancel_button_animation"))
           {
-             mem->cancel_button_animation = param->i;
+             mem->cancel_button_animation = !!param->i;
              mem->cancel_button_animation_exists = EINA_TRUE;
           }
+        if (!strcmp(param->name, "boundary_rect"))
+          {
+             mem->boundary_rect = !!param->i;
+             mem->boundary_rect_exists = EINA_TRUE;
+          }
+        else if (!strcmp(param->name, "text"))
+          {
+             mem->text = eina_stringshare_add(param->s);
+          }
      }
 
    return mem;
@@ -109,12 +162,18 @@ static Evas_Object *external_searchbar_content_get(void *data __UNUSED__,
 static void
 external_searchbar_params_free(void *params)
 {
-   external_common_params_free(params);
+   Elm_Params_Searchbar *mem = params;
+   if (mem->text)
+     eina_stringshare_del(mem->text);
+   free(params);
 }
 
 static Edje_External_Param_Info external_searchbar_params[] = {
    DEFINE_EXTERNAL_COMMON_PARAMS,
+   EDJE_EXTERNAL_PARAM_INFO_BOOL("cancel_button_visible"),
    EDJE_EXTERNAL_PARAM_INFO_BOOL("cancel_button_animation"),
+   EDJE_EXTERNAL_PARAM_INFO_BOOL("boundary_rect"),
+   EDJE_EXTERNAL_PARAM_INFO_STRING("text"),
    EDJE_EXTERNAL_PARAM_INFO_SENTINEL
 };