#define __render_h
#include "geom.h"
-#include "version.h"
+#include "render/version.h"
#include <X11/Xlib.h> /* some platforms dont include this as needed for Xft */
#include <pango/pangoxft.h>
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,
RrColor *primary;
RrColor *secondary;
RrColor *border_color;
- RrColor *bevel_dark;
+ RrColor *bevel_dark;
RrColor *bevel_light;
RrColor *interlace_color;
gboolean interlaced;
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 {
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 {
struct _RrTextureRGBA {
gint width;
gint height;
+ gint alpha;
RrPixel32 *data;
/* cached scaled so we don't have to scale often */
gint cwidth;
gint cheight;
RrPixel32 *cache;
+/* size and position to draw at */
+ gint tx;
+ gint ty;
+ gint twidth;
+ gint theight;
};
struct _RrTextureLineArt {
#define RrDefaultFontFamily "arial,sans"
#define RrDefaultFontSize 8
-#define RrDefaultFontWeight RR_FONTWEIGHT_BOLD
+#define RrDefaultFontWeight RR_FONTWEIGHT_NORMAL
#define RrDefaultFontSlant RR_FONTSLANT_NORMAL
RrInstance* RrInstanceNew (Display *display, gint screen);
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);
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);