- // absolute coordinate in panel
- int posx, posy;
- int width, height;
- Pmap pix;
- Pmap pix_active;
-
- // list of child : Area object
- GSList *list;
-
- // need redraw Pixmap
- int redraw;
- int use_active, is_active;
- int paddingx, paddingy;
- // parent Area
- void *parent;
-
- // each object can overwrite following function
- void (*draw_foreground)(void *obj, cairo_t *c, int active);
- void (*add_child)(void *obj);
- int (*remove_child)(void *obj);
+ // coordinate relative to panel window
+ int posx, posy;
+ // width and height including border
+ int width, height;
+ Pixmap pix;
+ Background *bg;
+
+ // list of child : Area object
+ GSList *list;
+
+ // 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;
+ // need to calculate position and width
+ int resize;
+ // need redraw Pixmap
+ int redraw;
+ // paddingxlr = horizontal padding left/right
+ // paddingx = horizontal padding between childs
+ int paddingxlr, paddingx, paddingy;
+ // parent Area
+ void *parent;
+ // panel
+ void *panel;
+
+ // each object can overwrite following function
+ void (*_draw_foreground)(void *obj, cairo_t *c);
+ // update area's content and update size (width/heith).
+ // return '1' if size changed, '0' otherwise.
+ int (*_resize)(void *obj);
+ // after pos/size changed, the rendering engine will call _on_change_layout(Area*)
+ int on_changed;
+ void (*_on_change_layout)(void *obj);
+ const char* (*_get_tooltip_text)(void *obj);