evas/edje/elm: Override debug_name in core classes
This is really only a demonstration of what kind of information we can print with efl_debug_name_get(). Hopefully this can help debugging with printf/ERR logs and even help with live debugging inside gdb. This shouldn't be used for other purposes than debugging, as the exact string format is not defined. @feature
This commit is contained in:
parent
c4769ff898
commit
569ad0bac4
|
@ -1176,6 +1176,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part,
|
|||
Efl.Gfx.size { set; }
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
Efl.Object.debug_name_override { get; }
|
||||
Efl.Canvas.Object.no_render { set; }
|
||||
Efl.Canvas.Object.paragraph_direction { set; }
|
||||
Efl.Canvas.Group.group_calculate;
|
||||
|
|
|
@ -60,6 +60,17 @@ _edje_object_efl_object_destructor(Eo *obj, Edje *class_data)
|
|||
efl_data_unref(obj, class_data->base);
|
||||
}
|
||||
|
||||
EOLIAN static const char *
|
||||
_edje_object_efl_object_debug_name_override_get(Eo *obj, Edje *ed)
|
||||
{
|
||||
const char *base;
|
||||
|
||||
base = efl_debug_name_get(efl_super(obj, MY_CLASS));
|
||||
return eina_slstr_printf("%s:file='%s':group='%s'", base,
|
||||
ed->file ? eina_file_filename_get(ed->file->f) : NULL,
|
||||
ed->group);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_edje_object_efl_object_dbg_info_get(Eo *eo_obj, Edje *_pd EINA_UNUSED, Efl_Dbg_Info *root) EINA_ARG_NONNULL(3)
|
||||
{
|
||||
|
|
|
@ -6608,6 +6608,15 @@ _efl_ui_win_class_constructor(Efl_Class *klass)
|
|||
}
|
||||
}
|
||||
|
||||
EOLIAN static const char *
|
||||
_efl_ui_win_efl_object_debug_name_override_get(Eo *obj, Efl_Ui_Win_Data *pd)
|
||||
{
|
||||
const char *base;
|
||||
|
||||
base = efl_debug_name_get(efl_super(obj, MY_CLASS));
|
||||
return eina_slstr_printf("%s:'%s':'%s'", base, pd->name, pd->title);
|
||||
}
|
||||
|
||||
EOLIAN static Eo*
|
||||
_efl_ui_win_elm_interface_atspi_accessible_parent_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd EINA_UNUSED)
|
||||
{
|
||||
|
|
|
@ -930,6 +930,7 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Elm.Interface.Atspi.Window,
|
|||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.debug_name_override { get; }
|
||||
Efl.Gfx.visible { set; }
|
||||
Efl.Gfx.position { set; }
|
||||
Efl.Gfx.size { set; }
|
||||
|
|
|
@ -6234,6 +6234,16 @@ _elm_widget_efl_object_destructor(Eo *obj, Elm_Widget_Smart_Data *sd)
|
|||
sd->on_destroy = EINA_FALSE;
|
||||
}
|
||||
|
||||
EOLIAN static const char *
|
||||
_elm_widget_efl_object_debug_name_override_get(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSED)
|
||||
{
|
||||
const char *base, *focus = "";
|
||||
|
||||
if (elm_obj_widget_focus_get(obj)) focus = ":focused";
|
||||
base = efl_debug_name_get(efl_super(obj, MY_CLASS));
|
||||
return eina_slstr_printf("%s%s", base, focus);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_widget_on_focus(Eo *obj, Elm_Widget_Smart_Data *sd, Elm_Object_Item *item EINA_UNUSED)
|
||||
{
|
||||
|
|
|
@ -787,6 +787,7 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
|
|||
Efl.Object.finalize;
|
||||
Efl.Object.destructor;
|
||||
Efl.Object.provider_find;
|
||||
Efl.Object.debug_name_override { get; }
|
||||
Efl.Gfx.color { set; }
|
||||
Efl.Gfx.visible { set; }
|
||||
Efl.Gfx.position { set; }
|
||||
|
|
|
@ -102,6 +102,7 @@ class Efl.Canvas.Group (Efl.Canvas.Object)
|
|||
class.destructor;
|
||||
Efl.Object.constructor;
|
||||
Efl.Object.destructor;
|
||||
Efl.Object.debug_name_override { get; }
|
||||
Efl.Canvas.Object.no_render { set; }
|
||||
Efl.Canvas.Object.paragraph_direction { get; set; }
|
||||
}
|
||||
|
|
|
@ -662,6 +662,7 @@ abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, Efl.Gfx.Stack, Efl.Animator,
|
|||
Efl.Object.destructor;
|
||||
Efl.Object.finalize;
|
||||
Efl.Object.provider_find;
|
||||
Efl.Object.debug_name_override { get; }
|
||||
Efl.Gfx.visible { get; set; }
|
||||
Efl.Gfx.color { get; set; }
|
||||
Efl.Gfx.color_part { get; set; }
|
||||
|
|
|
@ -312,7 +312,10 @@ _evas_canvas_efl_object_destructor(Eo *eo_e, Evas_Public_Data *e)
|
|||
{
|
||||
if ((o->ref > 0) || (efl_ref_get(o->object) > 0))
|
||||
{
|
||||
ERR("obj(%p, %s) ref count(%d) is bigger than 0. This object couldn't be deleted", o, o->type, efl_ref_get(o->object));
|
||||
ERR("obj(%s) ref count(%d) is bigger than 0. This "
|
||||
"object couldn't be deleted",
|
||||
efl_debug_name_get(o->object),
|
||||
efl_ref_get(o->object));
|
||||
continue;
|
||||
}
|
||||
unrefs = eina_list_append(unrefs, o->object);
|
||||
|
|
|
@ -66,3 +66,23 @@ evas_object_name_child_find(const Evas_Object *eo_obj, const char *name, int rec
|
|||
return (!name ? NULL : _priv_evas_object_name_child_find(eo_obj, name, recurse));
|
||||
}
|
||||
|
||||
/* new in EO */
|
||||
EOLIAN const char *
|
||||
_efl_canvas_object_efl_object_debug_name_override_get(Eo *eo_obj, Evas_Object_Protected_Data *obj)
|
||||
{
|
||||
const char *norend = obj->no_render ? ":no_render" : "";
|
||||
const char *clip = obj->clip.clipees ? ":clipper" : "";
|
||||
const char *base;
|
||||
|
||||
base = efl_debug_name_get(efl_super(eo_obj, EFL_CANVAS_OBJECT_CLASS));
|
||||
if (obj->cur->visible)
|
||||
{
|
||||
return eina_slstr_printf("%s%s%s:(%d,%d %dx%d)", base, norend, clip,
|
||||
obj->cur->geometry.x, obj->cur->geometry.y,
|
||||
obj->cur->geometry.w, obj->cur->geometry.h);
|
||||
}
|
||||
else
|
||||
{
|
||||
return eina_slstr_printf("%s:hidden%s%s", base, norend, clip);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -647,6 +647,15 @@ _efl_canvas_group_efl_object_destructor(Eo *eo_obj, Evas_Smart_Data *o)
|
|||
}
|
||||
}
|
||||
|
||||
EOLIAN static const char *
|
||||
_efl_canvas_group_efl_object_debug_name_override_get(Eo *eo_obj, Evas_Smart_Data *o)
|
||||
{
|
||||
const char *base;
|
||||
|
||||
base = efl_debug_name_get(efl_super(eo_obj, MY_CLASS));
|
||||
return eina_slstr_printf("%s:children=%d", base, eina_inlist_count(o->contained));
|
||||
}
|
||||
|
||||
static inline void
|
||||
_evas_object_smart_move_relative_internal(Evas_Smart_Data *o, Evas_Coord dx, Evas_Coord dy)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue