merge r7357-8
authorMikael Magnusson <mikachu@comhem.se>
Tue, 5 Jun 2007 01:04:36 +0000 (01:04 +0000)
committerMikael Magnusson <mikachu@comhem.se>
Tue, 5 Jun 2007 01:04:36 +0000 (01:04 +0000)
configure.ac
render/font.c
render/render.h

index 7519e2e..129e831 100644 (file)
@@ -16,7 +16,7 @@ dnl
 OB_MAJOR_VERSION=3
 OB_MINOR_VERSION=4
 OB_MICRO_VERSION=13
-OB_INTERFACE_AGE=1
+OB_INTERFACE_AGE=0
 OB_BINARY_AGE=1
 OB_VERSION=$OB_MAJOR_VERSION.$OB_MINOR_VERSION
 
index 48321ae..a32bf7c 100644 (file)
@@ -109,7 +109,6 @@ RrFont *RrFontOpen(const RrInstance *inst, const gchar *name, gint size,
     /* 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 @@ void RrFontDraw(XftDraw *d, RrTextureText *t, RrRect *area)
     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 @@ void RrFontDraw(XftDraw *d, RrTextureText *t, RrRect *area)
     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 * * */
 
index c13894a..7a3e596 100644 (file)
@@ -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,
@@ -128,6 +136,7 @@ struct _RrTextureText {
     guchar shadow_alpha;
     gboolean shortcut; /*!< Underline a character */
     guint shortcut_pos; /*!< Position in bytes of the character to underline */
+    RrEllipsizeMode ellipsize;
 };
 
 struct _RrPixmapMask {