all repos — openbox @ b265acbd45dc5bcad1ebf1c11bb97821cfa4ad90

openbox fork - make it a bit more like ryudo

allow users of obrender to change the ellipsize mode of text textures
Mikael Magnusson mikachu@comhem.se
commit

b265acbd45dc5bcad1ebf1c11bb97821cfa4ad90

parent

f5e08ae50f28be0e5e436613648098de3f4b7a75

2 files changed, 26 insertions(+), 1 deletions(-)

jump to
M render/font.crender/font.c

@@ -109,7 +109,6 @@

/* setup the layout */ pango_layout_set_font_description(out->layout, out->font_desc); pango_layout_set_single_paragraph_mode(out->layout, TRUE); - pango_layout_set_ellipsize(out->layout, PANGO_ELLIPSIZE_MIDDLE); /* get the ascent and descent */ measure_font(inst, out);

@@ -207,6 +206,7 @@ XftColor c;

gint mw; PangoRectangle rect; PangoAttrList *attrlist; + PangoEllipsizeMode ell; /* center the text vertically We do this centering based on the 'baseline' since different fonts have

@@ -220,8 +220,24 @@ x = area->x + 2;

w = area->width - 4; h = area->height; + switch (t->ellipsize) { + case RR_ELLIPSIZE_NONE: + ell = PANGO_ELLIPSIZE_NONE; + break; + case RR_ELLIPSIZE_START: + ell = PANGO_ELLIPSIZE_START; + break; + case RR_ELLIPSIZE_MIDDLE: + ell = PANGO_ELLIPSIZE_MIDDLE; + break; + case RR_ELLIPSIZE_END: + ell = PANGO_ELLIPSIZE_END; + break; + } + pango_layout_set_text(t->font->layout, t->string, -1); pango_layout_set_width(t->font->layout, w * PANGO_SCALE); + pango_layout_set_ellipsize(t->font->layout, ell); /* * * end of setting up the layout * * */
M render/render.hrender/render.h

@@ -85,6 +85,14 @@ RR_JUSTIFY_CENTER,

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,

@@ -128,6 +136,7 @@ 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 {