Evas_Object *shelf, *panel, *virtualkeypad;
Evas_Object *content;
Evas_Object *scroller;
+ Evas_Object *layout;
#ifdef HAVE_ELEMENTARY_X
Ecore_Event_Handler *prop_hdl;
Ecore_X_Virtual_Keyboard_State vkb_state;
_mirrored_set(obj, elm_widget_mirrored_get(obj));
_elm_theme_object_set(obj, wd->base, "conformant", "base",
elm_widget_style_get(obj));
- _swallow_conformant_parts(obj);
- if (wd->content)
- edje_object_part_swallow(wd->base, "elm.swallow.content", wd->content);
edje_object_scale_set(wd->base, elm_widget_scale_get(obj)
* _elm_config->scale);
_sizing_eval(obj);
}
static void
-_sub_del(void *data __UNUSED__, Evas_Object *obj, void *event_info)
+_sub_del(void *data, Evas_Object *obj __UNUSED__, void *event_info)
{
- Widget_Data *wd = elm_widget_data_get(obj);
+ Widget_Data *wd = elm_widget_data_get(data);
Evas_Object *sub = event_info;
if (!wd) return;
{
evas_object_event_callback_del_full(sub,
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
- _changed_size_hints, obj);
+ _changed_size_hints, data);
wd->content = NULL;
- _sizing_eval(obj);
+ _sizing_eval(data);
}
}
+
/* unused now - but meant to be for making sure the focused widget is always
* visible when the vkbd comes and goes by moving the conformant obj (and thus
* its children) to show the focused widget (and if focus changes follow)
_elm_theme_object_set(obj, wd->base, "conformant", "base", "default");
elm_widget_resize_object_set(obj, wd->base);
+ wd->layout = elm_layout_add(obj);
+ edje_object_part_swallow(wd->base, "elm.swallow.content", wd->layout);
+ elm_layout_theme_set(wd->layout, "conformant", "layout", "content");
+
+ _swallow_conformant_parts(obj);
+
#ifdef HAVE_ELEMENTARY_X
Evas_Object *top = elm_widget_top_get(obj);
Ecore_X_Window xwin = elm_win_xwindow_get(top);
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE,
_conformant_move_resize_event_cb, obj);
#endif
- evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
+ evas_object_smart_callback_add(wd->layout, "sub-object-del", _sub_del, obj);
_mirrored_set(obj, elm_widget_mirrored_get(obj));
_sizing_eval(obj);
if (wd->content == content) return;
if (wd->content) evas_object_del(wd->content);
wd->content = content;
- if (content)
+ if (wd->content)
{
- elm_widget_sub_object_add(obj, content);
- evas_object_event_callback_add(content,
+ elm_layout_content_set(wd->layout, "elm.swallow.content", wd->content);
+ evas_object_event_callback_add( wd->content,
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_changed_size_hints, obj);
- edje_object_part_swallow(wd->base, "elm.swallow.content", content);
}
_sizing_eval(obj);
}
if (!wd) return NULL;
if (!wd->content) return NULL;
content = wd->content;
- elm_widget_sub_object_del(obj, wd->content);
- edje_object_part_unswallow(wd->base, wd->content);
+ elm_layout_content_unset(wd->layout, "elm.swallow.content");
wd->content = NULL;
return content;
}
/*Finger waggle warning*/
_elm_dangerous_call_check(__FUNCTION__);
- return (Evas_Object *)edje_object_part_object_get(wd->base, "elm.swallow.content");
+ return wd->layout;
}