In case a user sets min-value of the item, the toolbar shouldn't set the min-value...
[framework/uifw/elementary.git] / src / lib / elm_mapbuf.c
index c87ecff..4608872 100644 (file)
@@ -89,13 +89,13 @@ _mapbuf(Evas_Object *obj)
         evas_map_smooth_set(m, wd->smooth);
         evas_map_alpha_set(m, wd->alpha);
         evas_object_map_set(wd->content, m);
-        evas_object_map_enable_set(wd->content, wd->enabled);
+        evas_object_map_enable_set(wd->content, EINA_TRUE);
         evas_map_free(m);
      }
    else
      {
         evas_object_map_set(wd->content, NULL);
-        evas_object_map_enable_set(wd->content, 0);
+        evas_object_map_enable_set(wd->content, EINA_FALSE);
         evas_object_move(wd->content, x, y);
         evas_object_resize(wd->content, w, h);
      }
@@ -122,10 +122,8 @@ _configure(Evas_Object *obj)
                   Evas *e = evas_object_evas_get(obj);
                   evas_smart_objects_calculate(e);
                   evas_nochange_push(e);
-                  //                  printf("x-------------------- %i %i\n", x, y);
                   evas_object_move(wd->content, x, y);
                   evas_smart_objects_calculate(e);
-                  //                  printf("y--------------------\n");
                   evas_nochange_pop(e);
                }
           }
@@ -146,47 +144,14 @@ _resize(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
    _configure(data);
 }
 
-EAPI Evas_Object *
-elm_mapbuf_add(Evas_Object *parent)
+static void
+_content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
 {
-   Evas_Object *obj;
-   Evas *e;
+   ELM_CHECK_WIDTYPE(obj, widtype);
    Widget_Data *wd;
 
-   ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL);
-
-   ELM_SET_WIDTYPE(widtype, "mapbuf");
-   elm_widget_type_set(obj, "mapbuf");
-   elm_widget_sub_object_add(parent, obj);
-   elm_widget_data_set(obj, wd);
-   elm_widget_del_hook_set(obj, _del_hook);
-   elm_widget_theme_hook_set(obj, _theme_hook);
-   elm_widget_can_focus_set(obj, EINA_FALSE);
-
-   wd->clip = evas_object_rectangle_add(e);
-   evas_object_static_clip_set(wd->clip, EINA_TRUE);
-   evas_object_pass_events_set(wd->clip, EINA_TRUE);
-   evas_object_color_set(wd->clip, 0, 0, 0, 0);
-
-   evas_object_event_callback_add(wd->clip, EVAS_CALLBACK_MOVE, _move, obj);
-   evas_object_event_callback_add(wd->clip, EVAS_CALLBACK_RESIZE, _resize, obj);
-   evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
-
-   elm_widget_resize_object_set(obj, wd->clip);
-
-   wd->enabled = 0;
-   wd->alpha = 1;
-   wd->smooth = 1;
-
-   _sizing_eval(obj);
-   return obj;
-}
-
-EAPI void
-elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
+   if (part && strcmp(part, "default")) return;
+   wd = elm_widget_data_get(obj);
    if (!wd) return;
    if (wd->content == content) return;
    if (wd->content) evas_object_del(wd->content);
@@ -194,7 +159,7 @@ elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content)
    if (content)
      {
         evas_object_data_set(content, "_elm_leaveme", (void *)1);
-        elm_widget_sub_object_add(content, obj);
+        elm_widget_sub_object_add(obj, content);
         evas_object_smart_member_add(content, obj);
         evas_object_clip_set(content, wd->clip);
         evas_object_color_set(wd->clip, 255, 255, 255, 255);
@@ -208,33 +173,76 @@ elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content)
    _configure(obj);
 }
 
-EAPI Evas_Object *
-elm_mapbuf_content_get(const Evas_Object *obj)
+static Evas_Object *
+_content_get_hook(const Evas_Object *obj, const char *part)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
+   Widget_Data *wd;
+
+   if (part && strcmp(part, "default")) return NULL;
+   wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    return wd->content;
 }
 
-EAPI Evas_Object *
-elm_mapbuf_content_unset(Evas_Object *obj)
+static Evas_Object *
+_content_unset_hook(Evas_Object *obj, const char *part)
 {
    ELM_CHECK_WIDTYPE(obj, widtype) NULL;
-   Widget_Data *wd = elm_widget_data_get(obj);
+   Widget_Data *wd;
    Evas_Object *content;
+
+   if (part && strcmp(part, "default")) return NULL;
+   wd = elm_widget_data_get(obj);
    if (!wd) return NULL;
    if (!wd->content) return NULL;
    content = wd->content;
    elm_widget_sub_object_del(obj, content);
    evas_object_smart_member_del(content);
    evas_object_color_set(wd->clip, 0, 0, 0, 0);
-   evas_object_clip_unset(content);
    evas_object_data_del(content, "_elm_leaveme");
-   wd->content = NULL;
    return content;
 }
 
+EAPI Evas_Object *
+elm_mapbuf_add(Evas_Object *parent)
+{
+   Evas_Object *obj;
+   Evas *e;
+   Widget_Data *wd;
+
+   ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL);
+
+   ELM_SET_WIDTYPE(widtype, "mapbuf");
+   elm_widget_type_set(obj, "mapbuf");
+   elm_widget_sub_object_add(parent, obj);
+   elm_widget_data_set(obj, wd);
+   elm_widget_del_hook_set(obj, _del_hook);
+   elm_widget_theme_hook_set(obj, _theme_hook);
+   elm_widget_content_set_hook_set(obj, _content_set_hook);
+   elm_widget_content_get_hook_set(obj, _content_get_hook);
+   elm_widget_content_unset_hook_set(obj, _content_unset_hook);
+   elm_widget_can_focus_set(obj, EINA_FALSE);
+
+   wd->clip = evas_object_rectangle_add(e);
+   evas_object_static_clip_set(wd->clip, EINA_TRUE);
+   evas_object_pass_events_set(wd->clip, EINA_TRUE);
+   evas_object_color_set(wd->clip, 0, 0, 0, 0);
+
+   evas_object_event_callback_add(wd->clip, EVAS_CALLBACK_MOVE, _move, obj);
+   evas_object_event_callback_add(wd->clip, EVAS_CALLBACK_RESIZE, _resize, obj);
+   evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
+
+   elm_widget_resize_object_set(obj, wd->clip);
+
+   wd->enabled = 0;
+   wd->alpha = 1;
+   wd->smooth = 1;
+
+   _sizing_eval(obj);
+   return obj;
+}
+
 EAPI void
 elm_mapbuf_enabled_set(Evas_Object *obj, Eina_Bool enabled)
 {