X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Futil%2Farea.h;h=77f957e2988ac914abe4aac35710a85d92eef761;hb=e7c43073246afe07cddf67d40d545f2bebcf62a1;hp=fc294f3ea7fdd69358f2a12d32da8637b7f536cf;hpb=bab0811f845cedb817a3c3a29dd91ade07d5a886;p=chaz%2Ftint2 diff --git a/src/util/area.h b/src/util/area.h index fc294f3..77f957e 100644 --- a/src/util/area.h +++ b/src/util/area.h @@ -47,6 +47,10 @@ typedef struct } Background; +// way to calculate the size +// SIZE_BY_LAYOUT objects : taskbar and task +// SIZE_BY_CONTENT objects : clock, battery, launcher, systray +enum { SIZE_BY_LAYOUT, SIZE_BY_CONTENT }; typedef struct { // coordinate relative to panel window @@ -59,8 +63,11 @@ typedef struct { // list of child : Area object GSList *list; + // object visible on screen int on_screen; - // need compute position and width + // way to calculate the size (SIZE_BY_CONTENT or SIZE_BY_LAYOUT) + int size_mode; + // need to calculate position and width int resize; // need redraw Pixmap int redraw; @@ -74,7 +81,8 @@ 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); @@ -82,11 +90,11 @@ typedef struct { +void size_by_content (Area *a); +void size_by_layout (Area *a); // draw background and foreground void refresh (Area *a); - -void size (Area *a); - + // set 'redraw' on an area and childs void set_redraw (Area *a);