X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=render%2Frender.h;h=ad9a0ef117b82775217fa98026d37b8d076b3747;hb=5f31bde96d5ee1aef4da69e33e58b89829da3593;hp=3b996375b7896023f67564860236b5239b35a189;hpb=66d6e1120ec4e66433ecec673258856def164070;p=chaz%2Fopenbox diff --git a/render/render.h b/render/render.h index 3b996375..ad9a0ef1 100644 --- a/render/render.h +++ b/render/render.h @@ -22,7 +22,7 @@ #define __render_h #include "geom.h" -#include "version.h" +#include "render/version.h" #include /* some platforms dont include this as needed for Xft */ #include @@ -85,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, @@ -106,7 +114,7 @@ struct _RrSurface { RrColor *primary; RrColor *secondary; RrColor *border_color; - RrColor *bevel_dark; + RrColor *bevel_dark; RrColor *bevel_light; RrColor *interlace_color; gboolean interlaced; @@ -115,6 +123,10 @@ struct _RrSurface { gint parentx; gint parenty; RrPixel32 *pixel_data; + gint bevel_dark_adjust; /* 0-255, default is 64 */ + gint bevel_light_adjust; /* 0-255, default is 128 */ + RrColor *split_primary; + RrColor *split_secondary; }; struct _RrTextureText { @@ -125,9 +137,12 @@ struct _RrTextureText { 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; + gboolean flow; /* allow multiple lines. must set maxwidth below */ + gint maxwidth; }; struct _RrPixmapMask { @@ -146,6 +161,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; @@ -230,13 +246,16 @@ GC RrColorGC (RrColor *c); RrAppearance *RrAppearanceNew (const RrInstance *inst, gint numtex); RrAppearance *RrAppearanceCopy (RrAppearance *a); void RrAppearanceFree (RrAppearance *a); +void RrAppearanceRemoveTextures(RrAppearance *a); +void RrAppearanceAddTextures(RrAppearance *a, gint numtex); -RrFont *RrFontOpen (const RrInstance *inst, const gchar *name, gint size, - RrFontWeight weight, RrFontSlant slant); +RrFont *RrFontOpen (const RrInstance *inst, const gchar *name, + gint size, RrFontWeight weight, RrFontSlant slant); RrFont *RrFontOpenDefault (const RrInstance *inst); void RrFontClose (RrFont *f); RrSize *RrFontMeasureString (const RrFont *f, const gchar *str, - gint shadow_offset_x, gint shadow_offset_y); + gint shadow_offset_x, gint shadow_offset_y, + gboolean flow, gint maxwidth); gint RrFontHeight (const RrFont *f, gint shadow_offset_y); gint RrFontMaxCharWidth (const RrFont *f); @@ -247,6 +266,8 @@ 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); +/* For text textures, if flow is TRUE, then the string must be set before + calling this, otherwise it doesn't need to be */ gint RrMinHeight (RrAppearance *a); void RrMargins (RrAppearance *a, gint *l, gint *t, gint *r, gint *b);