struct _E_Smart_Data
{
- Evas_Object *smart_obj;
- Evas_Object *child_obj;
- Evas_Coord x, y, w, h;
- Evas_Coord child_w, child_h, px, py;
+ Evas_Object *smart_obj, *child_obj;
+ Evas_Coord x, y, w, h;
+ Evas_Coord child_w, child_h, px, py;
};
/* local subsystem functions */
}
if (child)
{
- Evas_Coord w, h;
int r, g, b, a;
-
+
sd->child_obj = child;
evas_object_smart_member_add(sd->child_obj, sd->smart_obj);
- evas_object_geometry_get(sd->child_obj, NULL, NULL, &w, &h);
- sd->child_w = w;
- sd->child_h = h;
- evas_object_event_callback_add(child, EVAS_CALLBACK_FREE, _e_smart_child_del_hook, sd);
- evas_object_event_callback_add(child, EVAS_CALLBACK_RESIZE, _e_smart_child_resize_hook, sd);
+ evas_object_geometry_get(sd->child_obj, NULL, NULL,
+ &sd->child_w, &sd->child_h);
+ evas_object_event_callback_add(child, EVAS_CALLBACK_FREE,
+ _e_smart_child_del_hook, sd);
+ evas_object_event_callback_add(child, EVAS_CALLBACK_RESIZE,
+ _e_smart_child_resize_hook, sd);
evas_object_color_get(sd->smart_obj, &r, &g, &b, &a);
evas_object_color_set(sd->child_obj, r, g, b, a);
evas_object_clip_set(sd->child_obj, evas_object_clip_get(sd->smart_obj));
- if (evas_object_visible_get(sd->smart_obj)) evas_object_show(sd->child_obj);
+ if (evas_object_visible_get(sd->smart_obj))
+ evas_object_show(sd->child_obj);
else evas_object_hide(sd->child_obj);
_e_smart_reconfigure(sd);
}
_e_smart_child_del_hook(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
E_Smart_Data *sd;
-
+
sd = data;
sd->child_obj = NULL;
evas_object_smart_callback_call(sd->smart_obj, "changed", NULL);
{
E_Smart_Data *sd;
Evas_Coord w, h;
-
+
sd = data;
evas_object_geometry_get(sd->child_obj, NULL, NULL, &w, &h);
if ((w != sd->child_w) || (h != sd->child_h))
_e_smart_add(Evas_Object *obj)
{
E_Smart_Data *sd;
-
+
sd = calloc(1, sizeof(E_Smart_Data));
if (!sd) return;
sd->smart_obj = obj;
{
INTERNAL_ENTRY;
evas_object_clip_unset(sd->child_obj);
-}
+}
/* never need to touch this */
_e_smart = evas_smart_class_new(&sc);
}
}
-