X-Git-Url: https://git.decadent.org.uk/gitweb/?p=ion3.git;a=blobdiff_plain;f=de%2Fbrush.h;h=523fcc7158da2e148ebecfcc93ee3d3e8d5c6358;hp=a1a6b3fd7de2be784b28976f658992f61a6fc431;hb=e3aec18706513a87eaa7839dfdaf7e0fcd0d8d2a;hpb=8366314611bf30a0f31d25bf5f5023186fa87692 diff --git a/de/brush.h b/de/brush.h index a1a6b3f..523fcc7 100644 --- a/de/brush.h +++ b/de/brush.h @@ -1,12 +1,9 @@ /* * ion/de/brush.h * - * Copyright (c) Tuomo Valkonen 1999-2006. + * Copyright (c) Tuomo Valkonen 1999-2009. * - * Ion is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation; either version 2.1 of the License, or - * (at your option) any later version. + * See the included file LICENSE for details. */ #ifndef ION_DE_BRUSH_H @@ -25,11 +22,13 @@ INTRCLASS(DEBrush); typedef void DEBrushExtrasFn(DEBrush *brush, - const WRectangle *g, DEColourGroup *cg, - GrBorderWidths *bdw, - GrFontExtents *fnte, - const char *a1, const char *a2, - bool pre); + const WRectangle *g, + DEColourGroup *cg, + const GrBorderWidths *bdw, + const GrFontExtents *fnte, + const GrStyleSpec *a1, + const GrStyleSpec *a2, + bool pre, int index); DECLCLASS(DEBrush){ GrBrush grbrush; @@ -38,15 +37,17 @@ DECLCLASS(DEBrush){ int indicator_w; Window win; bool clip_set; + + GrStyleSpec current_attr; }; extern DEBrush *de_get_brush(Window win, WRootWin *rootwin, const char *style); extern DEBrush *create_debrush(Window win, - const char *stylename, DEStyle *style); + const GrStyleSpec *spec, DEStyle *style); extern bool debrush_init(DEBrush *brush, Window win, - const char *stylename, DEStyle *style); + const GrStyleSpec *spec, DEStyle *style); extern void debrush_deinit(DEBrush *brush); extern DEBrush *debrush_get_slave(DEBrush *brush, WRootWin *rootwin, @@ -56,18 +57,24 @@ extern void debrush_release(DEBrush *brush); extern DEColourGroup *debrush_get_colour_group2(DEBrush *brush, - const char *attr_p1, - const char *attr_p2); + const GrStyleSpec *a1, + const GrStyleSpec *a2); extern DEColourGroup *debrush_get_colour_group(DEBrush *brush, - const char *attr); + const GrStyleSpec *attr); +extern DEColourGroup *debrush_get_current_colour_group(DEBrush *brush); /* Begin/end */ extern void debrush_begin(DEBrush *brush, const WRectangle *geom, int flags); extern void debrush_end(DEBrush *brush); +extern void debrush_init_attr(DEBrush *brush, const GrStyleSpec *spec); +extern void debrush_set_attr(DEBrush *brush, GrAttr attr); +extern void debrush_unset_attr(DEBrush *brush, GrAttr attr); +extern GrStyleSpec *debrush_get_current_attr(DEBrush *brush); + /* Information */ extern void debrush_get_border_widths(DEBrush *brush, GrBorderWidths *bdw); @@ -77,18 +84,16 @@ extern bool debrush_get_extra(DEBrush *brush, const char *key, char type, /* Borders & boxes */ extern void debrush_draw_border(DEBrush *brush, - const WRectangle *geom, - const char *attrib); + const WRectangle *geom); extern void debrush_draw_borderline(DEBrush *brush, const WRectangle *geom, - const char *attrib, GrBorderLine line); + GrBorderLine line); extern void debrush_draw_textbox(DEBrush *brush, const WRectangle *geom, - const char *text, const char *attr, - bool needfill); + const char *text, bool needfill); extern void debrush_draw_textboxes(DEBrush *brush, const WRectangle *geom, int n, const GrTextElem *elem, - bool needfill, const char *common_attrib); + bool needfill); extern DEBrushExtrasFn debrush_tab_extras; extern DEBrushExtrasFn debrush_menuentry_extras; @@ -100,8 +105,7 @@ extern void debrush_set_window_shape(DEBrush *brush, bool rough, extern void debrush_enable_transparency(DEBrush *brush, GrTransparency mode); -extern void debrush_fill_area(DEBrush *brush, const WRectangle *geom, - const char *attr); +extern void debrush_fill_area(DEBrush *brush, const WRectangle *geom); extern void debrush_clear_area(DEBrush *brush, const WRectangle *geom);