// each object can overwrite following function
void (*_draw_foreground)(void *obj, cairo_t *c);
// each object can overwrite following function
void (*_draw_foreground)(void *obj, cairo_t *c);
void (*_add_child)(void *obj);
int (*_remove_child)(void *obj);
const char* (*_get_tooltip_text)(void *obj);
void (*_add_child)(void *obj);
int (*_remove_child)(void *obj);
const char* (*_get_tooltip_text)(void *obj);