X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Futil%2Farea.h;h=a5d1434e856e818f14aa81aa1fea20216a810074;hb=bbec33ce1a15b555a737f2fefe7bdfb6a8881705;hp=be81b79cd88c783c4f8199c0f4e9daf0e6bd6ae9;hpb=4c60717430896e520cf7255dbc9874a7990dd531;p=chaz%2Ftint2 diff --git a/src/util/area.h b/src/util/area.h index be81b79..a5d1434 100644 --- a/src/util/area.h +++ b/src/util/area.h @@ -63,7 +63,8 @@ typedef struct { // list of child : Area object GSList *list; - // object visible on screen + // object visible on screen. + // An object (like systray) could be enabled but hidden (because no tray icon). int on_screen; // way to calculate the size (SIZE_BY_CONTENT or SIZE_BY_LAYOUT) int size_mode; @@ -81,18 +82,24 @@ typedef struct { // each object can overwrite following function void (*_draw_foreground)(void *obj, cairo_t *c); - void (*_resize)(void *obj); + // calculate size. return '1' if size changed, '0' otherwise. + int (*_resize)(void *obj); void (*_add_child)(void *obj); int (*_remove_child)(void *obj); const char* (*_get_tooltip_text)(void *obj); } Area; +// on startup, initialize fixed pos/size +void init_rendering(void *obj, int pos); - +void rendering(void *obj); +void size_by_content (Area *a); +void size_by_layout (Area *a, int pos, int level); // draw background and foreground void refresh (Area *a); - -void size (Area *a); + +// generic resize for SIZE_BY_LAYOUT objects +int resize_by_layout(void *obj); // set 'redraw' on an area and childs void set_redraw (Area *a);