X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Frender.h;h=7a3e596575bfb579e258afaeafe5c87ee6aa0973;hb=6a79805b7c4116ee6ced87e78fb488f3274098ef;hp=d03db8d5801654cae37034f78fead09318a87846;hpb=ec304c9e433e4b1cedf924ca64d783f05db7d42d;p=chaz%2Fopenbox diff --git a/render/render.h b/render/render.h index d03db8d5..7a3e5965 100644 --- a/render/render.h +++ b/render/render.h @@ -45,6 +45,7 @@ typedef struct _RrColor RrColor; typedef guint32 RrPixel32; typedef guint16 RrPixel16; +typedef guchar RrPixel8; typedef enum { RR_RELIEF_FLAT, @@ -84,6 +85,14 @@ typedef enum { RR_JUSTIFY_RIGHT } RrJustify; +/* Put middle first so it's the default */ +typedef enum { + RR_ELLIPSIZE_MIDDLE, + RR_ELLIPSIZE_NONE, + RR_ELLIPSIZE_START, + RR_ELLIPSIZE_END +} RrEllipsizeMode; + typedef enum { RR_FONTWEIGHT_LIGHT, RR_FONTWEIGHT_NORMAL, @@ -120,11 +129,14 @@ struct _RrTextureText { RrFont *font; RrJustify justify; RrColor *color; - gchar *string; + const gchar *string; gint shadow_offset_x; gint shadow_offset_y; RrColor *shadow_color; - gchar shadow_alpha; + guchar shadow_alpha; + gboolean shortcut; /*!< Underline a character */ + guint shortcut_pos; /*!< Position in bytes of the character to underline */ + RrEllipsizeMode ellipsize; }; struct _RrPixmapMask { @@ -143,6 +155,7 @@ struct _RrTextureMask { struct _RrTextureRGBA { gint width; gint height; + gint alpha; RrPixel32 *data; /* cached scaled so we don't have to scale often */ gint cwidth; @@ -227,8 +240,9 @@ GC RrColorGC (RrColor *c); RrAppearance *RrAppearanceNew (const RrInstance *inst, gint numtex); RrAppearance *RrAppearanceCopy (RrAppearance *a); void RrAppearanceFree (RrAppearance *a); +void RrAppearanceAddTextures(RrAppearance *a, gint numtex); -RrFont *RrFontOpen (const RrInstance *inst, gchar *name, gint size, +RrFont *RrFontOpen (const RrInstance *inst, const gchar *name, gint size, RrFontWeight weight, RrFontSlant slant); RrFont *RrFontOpenDefault (const RrInstance *inst); void RrFontClose (RrFont *f); @@ -237,9 +251,15 @@ RrSize *RrFontMeasureString (const RrFont *f, const gchar *str, gint RrFontHeight (const RrFont *f, gint shadow_offset_y); gint RrFontMaxCharWidth (const RrFont *f); -void RrPaint (RrAppearance *a, Window win, gint w, gint h); -void RrMinsize (RrAppearance *a, gint *w, gint *h); -void RrMargins (RrAppearance *a, gint *l, gint *t, gint *r, gint *b); +/* Paint into the appearance. The old pixmap is returned (if there was one). It + is the responsibility of the caller to call XFreePixmap on the return when + it is non-null. */ +Pixmap RrPaintPixmap (RrAppearance *a, gint w, gint h); +void RrPaint (RrAppearance *a, Window win, gint w, gint h); +void RrMinSize (RrAppearance *a, gint *w, gint *h); +gint RrMinWidth (RrAppearance *a); +gint RrMinHeight (RrAppearance *a); +void RrMargins (RrAppearance *a, gint *l, gint *t, gint *r, gint *b); gboolean RrPixmapToRGBA(const RrInstance *inst, Pixmap pmap, Pixmap mask,