X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Frender.h;h=e4ca914b96172f16257a5ab17f7388e0b2fb5bc7;hb=de0873824e3072bf6c6f8ae24569ef7bf7a0017a;hp=fda4060718b21d7ce85e4670a50d655a9baaa64c;hpb=766e7ae9bfeb1dc0454d7b5b37296b91859831cb;p=chaz%2Fopenbox diff --git a/render/render.h b/render/render.h index fda40607..e4ca914b 100644 --- a/render/render.h +++ b/render/render.h @@ -2,7 +2,7 @@ render.h for the Openbox window manager Copyright (c) 2006 Mikael Magnusson - Copyright (c) 2003 Ben Jansens + Copyright (c) 2003-2007 Dana Jansens Copyright (c) 2003 Derek Foreman This program is free software; you can redistribute it and/or modify @@ -22,11 +22,10 @@ #define __render_h #include "geom.h" -#include "version.h" +#include "render/version.h" #include /* some platforms dont include this as needed for Xft */ -#define _XFT_NO_COMPAT_ /* no Xft 1 API */ -#include +#include #include G_BEGIN_DECLS @@ -46,6 +45,7 @@ typedef struct _RrColor RrColor; typedef guint32 RrPixel32; typedef guint16 RrPixel16; +typedef guchar RrPixel8; typedef enum { RR_RELIEF_FLAT, @@ -68,7 +68,7 @@ typedef enum { RR_SURFACE_DIAGONAL, RR_SURFACE_CROSS_DIAGONAL, RR_SURFACE_PYRAMID, - RR_SURFACE_MIRROR_HORIZONTAL, + RR_SURFACE_MIRROR_HORIZONTAL } RrSurfaceColorType; typedef enum { @@ -85,6 +85,28 @@ 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, + RR_FONTWEIGHT_SEMIBOLD, + RR_FONTWEIGHT_BOLD, + RR_FONTWEIGHT_ULTRABOLD +} RrFontWeight; + +typedef enum { + RR_FONTSLANT_NORMAL, + RR_FONTSLANT_ITALIC, + RR_FONTSLANT_OBLIQUE +} RrFontSlant; + struct _RrSurface { RrSurfaceColorType grad; RrReliefType relief; @@ -92,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; @@ -101,13 +123,24 @@ 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 { RrFont *font; RrJustify justify; RrColor *color; - gchar *string; + const gchar *string; + gint shadow_offset_x; + gint shadow_offset_y; + RrColor *shadow_color; + guchar shadow_alpha; + gboolean shortcut; /*!< Underline a character */ + guint shortcut_pos; /*!< Position in bytes of the character to underline */ + RrEllipsizeMode ellipsize; }; struct _RrPixmapMask { @@ -126,6 +159,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; @@ -173,6 +207,11 @@ struct _RrAppearance { #define RrDefaultGreenOffset 8 #define RrDefaultBlueOffset 0 +#define RrDefaultFontFamily "arial,sans" +#define RrDefaultFontSize 8 +#define RrDefaultFontWeight RR_FONTWEIGHT_NORMAL +#define RrDefaultFontSlant RR_FONTSLANT_NORMAL + RrInstance* RrInstanceNew (Display *display, gint screen); void RrInstanceFree (RrInstance *inst); @@ -205,14 +244,26 @@ GC RrColorGC (RrColor *c); RrAppearance *RrAppearanceNew (const RrInstance *inst, gint numtex); RrAppearance *RrAppearanceCopy (RrAppearance *a); void RrAppearanceFree (RrAppearance *a); - -RrSize *RrFontMeasureString (const RrFont *f, const gchar *str); -gint RrFontHeight (const RrFont *f); -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); +void RrAppearanceAddTextures(RrAppearance *a, gint numtex); + +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 RrFontHeight (const RrFont *f, gint shadow_offset_y); +gint RrFontMaxCharWidth (const RrFont *f); + +/* 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,