]> granicus.if.org Git - graphviz/commitdiff
unify on htmlfont_t for font descriptions
authorJohn Ellson <ellson@research.att.com>
Tue, 5 Nov 2013 21:17:29 +0000 (16:17 -0500)
committerJohn Ellson <ellson@research.att.com>
Tue, 5 Nov 2013 21:17:29 +0000 (16:17 -0500)
20 files changed:
lib/common/emit.c
lib/common/fontmetrics.c
lib/common/htmltable.c
lib/common/labels.c
lib/common/textpara.h
plugin/core/gvrender_core_dot.c
plugin/core/gvrender_core_fig.c
plugin/core/gvrender_core_pic.c
plugin/core/gvrender_core_pov.c
plugin/core/gvrender_core_ps.c
plugin/core/gvrender_core_svg.c
plugin/core/gvrender_core_tk.c
plugin/core/gvrender_core_vml.c
plugin/gd/gvrender_gd.c
plugin/gd/gvrender_gd_vrml.c
plugin/gd/gvtextlayout_gd.c
plugin/gdk/gvdevice_gdk.c
plugin/lasi/gvrender_lasi.cpp
plugin/pango/gvtextlayout_pango.c
plugin/quartz/gvtextlayout_quartz.c

index 52430c5e75726f0c082db5be198e2e52ab7df5b1..e4839ac8c53dc3d8a6396904e27e12a1aef035b4 100644 (file)
@@ -2915,8 +2915,8 @@ boxf xdotBB (Agraph_t* g)
 {
     exdot_op* op;
     int i;
-    double fontsize;
-    char* fontname;
+    double fontsize = 0.0;
+    char* fontname = NULL;
     pointf pts[2];
     pointf sz;
     boxf bb0;
index 7abb8939a6e90701c0d49729865cab26bcdcfb2e..c37ebe1dc5b1bfd346d9dc703a01fb2343a0428d 100644 (file)
@@ -125,33 +125,36 @@ static double courFontWidth[] = {
 static void
 estimate_textlayout(textpara_t * para, char **fontpath)
 {
-    double *Fontwidth;
-    char c, *p, *fp;
+    double *Fontwidth, fontsize;
+    char c, *p, *fpp, *fontname;
+
+    fontname = para->font->name;
+    fontsize = para->font->size;
 
     para->width = 0.0;
-    para->height = para->fontsize * LINESPACING;
+    para->height = fontsize * LINESPACING;
     para->yoffset_layout = 0.0;
-    para->yoffset_centerline = 0.1 * para->fontsize;
-    para->layout = para->fontname;
+    para->yoffset_centerline = 0.1 * fontsize;
+    para->layout = NULL;
     para->free_layout = NULL;
 
-    if (!strncasecmp(para->fontname, "cour", 4)) {
-       fp = "[internal courier]";
+    if (!strncasecmp(fontname, "cour", 4)) {
+       fpp = "[internal courier]";
        Fontwidth = courFontWidth;
-    } else if (!strncasecmp(para->fontname, "arial", 5)
-              || !strncasecmp(para->fontname, "helvetica", 9)) {
-       fp = "[internal arial]";
+    } else if (!strncasecmp(fontname, "arial", 5)
+              || !strncasecmp(fontname, "helvetica", 9)) {
+       fpp = "[internal arial]";
        Fontwidth = arialFontWidth;
     } else {
-       fp = "[internal times]";
+       fpp = "[internal times]";
        Fontwidth = timesFontWidth;
     }
     if (fontpath)
-       *fontpath = fp;
+       *fontpath = fpp;
     if ((p = para->str)) {
        while ((c = *p++))
            para->width += Fontwidth[(unsigned char) c];
-       para->width *= para->fontsize;
+       para->width *= fontsize;
     }
 }
 
@@ -189,26 +192,31 @@ static PostscriptAlias* translate_postscript_fontname(char* fontname)
 
 pointf textsize(GVC_t *gvc, textpara_t * para, char *fontname, double fontsize)
 {
-    char **fp = NULL, *fontpath = NULL;
+    char **fpp = NULL, *fontpath = NULL;
     pointf size;
+    htmlfont_t *font;
 
-    para->fontname = fontname;
-    para->fontsize = fontsize;
+    font = NEW(htmlfont_t);
+    font->name = strdup(fontname);
+    font->size = fontsize;
+    font->color = NULL;
+    font->flags = 0;
 
+    para->font = font;
     para->postscript_alias = translate_postscript_fontname(fontname);
 
-    if (Verbose && emit_once(para->fontname))
-       fp = &fontpath;
+    if (Verbose && emit_once(fontname))
+       fpp = &fontpath;
 
-    if (! gvtextlayout(gvc, para, fp))
-       estimate_textlayout(para, fp);
+    if (! gvtextlayout(gvc, para, fpp))
+       estimate_textlayout(para, fpp);
 
-    if (fp) {
+    if (fpp) {
        if (fontpath)
            fprintf(stderr, "fontname: \"%s\" resolved to: %s\n",
-                   para->fontname, fontpath);
+                   fontname, fontpath);
        else
-           fprintf(stderr, "fontname: unable to resolve \"%s\"\n", para->fontname);
+           fprintf(stderr, "fontname: unable to resolve \"%s\"\n", fontname);
     }
 
     size.x = para->width;
index c61dd1e37bb6149a48e9e576229e5d9e3f298bda..bf6f060f8968d4d41dcdaeeefd217e3b2ae5dca3 100644 (file)
@@ -116,9 +116,9 @@ emit_htextparas(GVJ_t * job, int nparas, htextpara_t * paras, pointf p,
                double halfwidth_x, htmlfont_t finfo, boxf b, int simple)
 {
     int i, j;
-    double center_x, left_x, right_x, fsize_;
-    char *fname_, *fcolor_;
+    double center_x, left_x, right_x;
     textpara_t tl;
+    htmlfont_t tf;
     pointf p_ = { 0.0, 0.0 };
     textpara_t *ti;
 
@@ -151,24 +151,22 @@ emit_htextparas(GVJ_t * job, int nparas, htextpara_t * paras, pointf p,
        ti = paras[i].items;
        for (j = 0; j < paras[i].nitems; j++) {
            if (ti->font && (ti->font->size > 0))
-               fsize_ = ti->font->size;
+               tf.size = ti->font->size;
            else
-               fsize_ = finfo.size;
+               tf.size = finfo.size;
            if (ti->font && ti->font->name)
-               fname_ = ti->font->name;
+               tf.name = ti->font->name;
            else
-               fname_ = finfo.name;
+               tf.name = finfo.name;
            if (ti->font && ti->font->color)
-               fcolor_ = ti->font->color;
+               tf.color = ti->font->color;
            else
-               fcolor_ = finfo.color;
+               tf.color = finfo.color;
 
-           gvrender_set_pencolor(job, fcolor_);
+           gvrender_set_pencolor(job, tf.color);
 
            tl.str = ti->str;
-           tl.fontname = fname_;
-           tl.fontsize = fsize_;
-           tl.font = ti->font;
+           tl.font = &tf;
            tl.yoffset_layout = ti->yoffset_layout;
            if (simple)
                tl.yoffset_centerline = ti->yoffset_centerline;
@@ -680,7 +678,7 @@ static void freeObj(GVJ_t * job)
 static double
 heightOfLbl (htmllabel_t * lp)
 {
-    double sz;
+    double sz = 0.0;
 
     switch (lp->kind) {
     case HTML_TBL:
index 2d2d8742ee7176fcc743317bd1ad2f9e40913993..1f703b52cb9270450534cda3425a430e29b64dd2 100644 (file)
@@ -196,6 +196,8 @@ void free_textpara(textpara_t * tl, int cnt)
            free(tlp->str);
        if (tlp->layout && tlp->free_layout)
            tlp->free_layout (tlp->layout);
+       if (tlp->font)
+           free_html_font(tlp->font);
        tlp++;
     }
     free(tl);
index 3d98a26fb0725fa8178ef430ab5f5ed9681c58df..389f1201257e143999112486a421effda58d2eda 100644 (file)
@@ -57,8 +57,6 @@ extern "C" {
        void *layout;
        void (*free_layout) (void *layout);   /* FIXME - this is ugly */
        htmlfont_t *font;
-       char *fontname; /* FIXME - use htmlfont_t */
-       double fontsize; /* FIXME - use htmlfont_t */
        double size, yoffset_layout, yoffset_centerline;
        double width, height; /* FIXME */
        char just;      /* 'l' 'n' 'r' */ /* FIXME */
index ac52f4ccfe5e487eb674b7e26351d284991e607a..b00c9aead20d58fabe22dfd2e3d70bdc28beb6bd 100644 (file)
@@ -543,9 +543,9 @@ static void xdot_textpara(GVJ_t * job, pointf p, textpara_t * para)
     int j;
     
     agxbput(xbufs[emit_state], "F ");
-    xdot_fmt_num (buf, para->fontsize);
+    xdot_fmt_num (buf, para->font->size);
     agxbput(xbufs[emit_state], buf);
-    xdot_str (job, "", para->fontname);
+    xdot_str (job, "", para->font->name);
     xdot_pencolor(job);
 
     switch (para->just) {
index 9d63f26148e955062c5f9e01f477e3b3a0b45cde..ea9f60c018c01613ee1205af0bf3958ace5f1e7d 100644 (file)
@@ -252,7 +252,7 @@ static void fig_textpara(GVJ_t * job, pointf p, textpara_t * para)
     int depth = Depth;
     int pen_style = 0;          /* not used */
     int font = -1;             /* init to xfig's default font */
-    double font_size = para->fontsize * job->zoom;
+    double font_size = para->font->size * job->zoom;
     double angle = job->rotation ? (M_PI / 2.0) : 0.0;
     int font_flags = 6;                /* PostScript font + Special text */
 /* Special text indicates that latex markup may exist
index 7ecf884f46de0521e69603e08debd335f822f529..28939fdf14f6543e53177eb6307de1a3c8928b6e 100644 (file)
@@ -442,19 +442,15 @@ static void pic_textpara(GVJ_t * job, pointf p, textpara_t * para)
         p.x -= para->width / 2;
         break;
     }
-#ifdef NOTDEF
-    /* Why on earth would we want this? SCN  11/29/2001 */
-    p.y -= para->fontsize / (5.0 * POINTS_PER_INCH);
-#endif
-    /* Why on earth would we do this either. But it works. SCN 2/26/2002 */
-    p.y += para->fontsize / (3.0 * POINTS_PER_INCH);
+    /* Why on earth would we do this. But it works. SCN 2/26/2002 */
+    p.y += para->font->size / (3.0 * POINTS_PER_INCH);
     p.x += para->width / (2.0 * POINTS_PER_INCH);
 
-    if (para->fontname && (!(lastname) || strcmp(lastname, para->fontname))) {
-        gvprintf(job, ".ft %s\n", picfontname(para->fontname));
-       lastname = para->fontname;
+    if (para->font->name && (!(lastname) || strcmp(lastname, para->font->name))) {
+        gvprintf(job, ".ft %s\n", picfontname(para->font->name));
+       lastname = para->font->name;
     }
-    if ((sz = (int)para->fontsize) < 1);
+    if ((sz = (int)para->font->size) < 1);
         sz = 1;
     if (sz != lastsize) {
         gvprintf(job, ".ps %d*\\n(SFu/%.0fu\n", sz, Fontscale);
index cdc6fe5fcc5e11c3025d27a4f1ff49bef317d3d6..f0544f77ce42aee7ba2d32c34c549fb2c29cf158 100644 (file)
@@ -588,7 +588,7 @@ static void pov_textpara(GVJ_t * job, pointf c, textpara_t * para)
        char *pov, *s, *r, *t, *p;
 
        gvprintf(job, "//*** textpara: %s, fontsize = %.3f, fontname = %s\n",
-                para->str, para->fontsize, para->fontname);
+                para->str, para->font->size, para->font->name);
        z = layerz - 9;
 
 #ifdef DEBUG
@@ -612,14 +612,14 @@ static void pov_textpara(GVJ_t * job, pointf c, textpara_t * para)
        x = (c.x + job->translation.x) * job->scale.x;
        y = (c.y + job->translation.y) * job->scale.y;
 
-       s = el(job, POV_SCALE1, para->fontsize * job->scale.x);
+       s = el(job, POV_SCALE1, para->font->size * job->scale.x);
        r = el(job, POV_ROTATE, 0.0, 0.0, (float)job->rotation);
        t = el(job, POV_TRANSLATE, x, y, z);
        p = pov_color_as_str(job, job->obj->pencolor, 0.0);
 
        //pov bundled fonts: timrom.ttf, cyrvetic.ttf
        pov = el(job, POV_TEXT "    %s    %s    %s    %s    %s" END,
-               para->fontname, 0.25, 0.0,      //font, depth (0.5 ... 2.0), offset
+               para->font->name, 0.25, 0.0,    //font, depth (0.5 ... 2.0), offset
                para->str, "    no_shadow\n", s, r, t, p);
 
 #ifdef DEBUG
index 0895e9c6a0b8e45b35734f376f33ae74f3ecb1e9..521533aefd574c0e0a92a3895fdfffe0cb346fe7 100644 (file)
@@ -279,8 +279,8 @@ static void psgen_textpara(GVJ_t * job, pointf p, textpara_t * para)
        return;  /* skip transparent text */
 
     ps_set_color(job, &(job->obj->pencolor));
-    gvprintdouble(job, para->fontsize);
-    gvprintf(job, " /%s set_font\n", para->fontname);
+    gvprintdouble(job, para->font->size);
+    gvprintf(job, " /%s set_font\n", para->font->name);
     str = ps_string(para->str,isLatin1);
     switch (para->just) {
     case 'r':
index 429c2e9ad00f0b38800aa03f6ae556e805688818..9bc73278ec38dd6bddc2c691117f2a03effc3a2e 100644 (file)
@@ -398,7 +398,7 @@ static void svg_textpara(GVJ_t * job, pointf p, textpara_t * para)
        if (style)
            gvprintf(job, " font-style=\"%s\"", style);
     } else
-       gvprintf(job, " font-family=\"%s\"", para->fontname);
+       gvprintf(job, " font-family=\"%s\"", para->font->name);
     if ((para->font) && (flags = para->font->flags)) {
        if ((flags & HTML_BF) && !weight)
            gvprintf(job, " font-weight=\"bold\"");
@@ -421,7 +421,7 @@ static void svg_textpara(GVJ_t * job, pointf p, textpara_t * para)
            gvprintf(job, " baseline-shift=\"sub\"");
     }
 
-    gvprintf(job, " font-size=\"%.2f\"", para->fontsize);
+    gvprintf(job, " font-size=\"%.2f\"", para->font->size);
     switch (obj->pencolor.type) {
     case COLOR_STRING:
        if (strcasecmp(obj->pencolor.u.string, "black"))
index 12b24876a9aedac5ccf3345e2e8008413e0fa958..7fe542e1ea038d407b61f7ea916b2811a7fcf696 100644 (file)
@@ -170,7 +170,7 @@ static void tkgen_textpara(GVJ_t * job, pointf p, textpara_t * para)
     if (obj->pen != PEN_NONE) {
        /* determine font size */
        /* round fontsize down, better too small than too big */
-       size = (int)(para->fontsize * job->zoom);
+       size = (int)(para->font->size * job->zoom);
        /* don't even bother if fontsize < 1 point */
        if (size)  {
             tkgen_canvas(job);
@@ -188,7 +188,7 @@ static void tkgen_textpara(GVJ_t * job, pointf p, textpara_t * para)
            if (para->postscript_alias)
                font = para->postscript_alias->family;
            else
-               font = para->fontname;
+               font = para->font->name;
             gvputs(job, "\"");
             gvputs(job, font);
             gvputs(job, "\"");
index 63580edf4e91570eb9cc907d6fee2bb15edd8a33..bd42cdf5e128b748953d5df7e2a411a336d9e43a 100644 (file)
@@ -386,8 +386,8 @@ static void vml_textpara(GVJ_t * job, pointf p, textpara_t * para)
        break;
     }
     p2.x=p1.x+para->width;
-    if (para->height <  para->fontsize){
-      para->height = 1 + (1.1*para->fontsize);
+    if (para->height <  para->font->size){
+      para->height = 1 + (1.1*para->font->size);
     }
 
     p1.x-=8; /* vml textbox margin fudge factor */
@@ -397,12 +397,12 @@ static void vml_textpara(GVJ_t * job, pointf p, textpara_t * para)
     /* text "y" was too high
      * Graphviz uses "baseline", VML seems to use bottom of descenders - so we fudge a little
      * (heuristics - based on eyeballs)  */
-    if (para->fontsize <12.){ /*     see graphs/directed/arrows.gv  */
-      p1.y+=1.4+para->fontsize/5; /* adjust by approx. descender */
-      p2.y+=1.4+para->fontsize/5; /* adjust by approx. descender */
+    if (para->font->size <12.){ /*     see graphs/directed/arrows.gv  */
+      p1.y+=1.4+para->font->size/5; /* adjust by approx. descender */
+      p2.y+=1.4+para->font->size/5; /* adjust by approx. descender */
     }else{
-      p1.y+=2+para->fontsize/5; /* adjust by approx. descender */
-      p2.y+=2+para->fontsize/5; /* adjust by approx. descender */
+      p1.y+=2+para->font->size/5; /* adjust by approx. descender */
+      p2.y+=2+para->font->size/5; /* adjust by approx. descender */
     }
 
     gvprintf(job, "<v:rect style=\"position:absolute; ");
@@ -421,9 +421,9 @@ static void vml_textpara(GVJ_t * job, pointf p, textpara_t * para)
            gvprintf(job, "font-style: %s;", para->postscript_alias->style);
     }
     else {
-        gvprintf(job, "font-family: \'%s\';", para->fontname);
+        gvprintf(job, "font-family: \'%s\';", para->font->name);
     }
-    gvprintf(job, " font-size: %.2fpt;", para->fontsize);
+    gvprintf(job, " font-size: %.2fpt;", para->font->size);
     switch (obj->pencolor.type) {
     case COLOR_STRING:
        if (strcasecmp(obj->pencolor.u.string, "black"))
index ae1cb4b7fd2022ce76ba94175e28ce8d13fd7df3..f0d00024a323e820d9dd9b846ff5e87f60c7371d 100644 (file)
@@ -402,11 +402,11 @@ static void gdgen_textpara(GVJ_t * job, pointf p, textpara_t * para)
        fontname = gd_psfontResolve (para->postscript_alias);
     else
 #endif
-       fontname = para->fontname;
+       fontname = para->font->name;
 
     gdgen_text(im, spf, epf,
            job->obj->pencolor.u.index,
-           para->fontsize * job->zoom,
+           para->font->size * job->zoom,
            job->dpi.x,
            job->rotation ? (M_PI / 2) : 0,
            fontname,
index 0db3d71d5f2b34bc6230de5ea7962ba7447cc858..8ee0980439ff5403b682f9bd1476ea60cb18aa05 100644 (file)
@@ -357,10 +357,10 @@ static void vrml_textpara(GVJ_t *job, pointf p, textpara_t * para)
 
     gdgen_text(im, spf, epf,
        color_index(im, obj->pencolor),
-       para->fontsize,
+       para->font->size,
         DEFAULT_DPI,
        job->rotation ? (M_PI / 2) : 0,
-       para->fontname,
+       para->font->name,
        para->str);
 }
 
index ec494e7b77c2d21a66bb585562feaaf5d156dd21..f63c87a37fc76587f7af0e2e6f1c703989dbb8ee 100644 (file)
@@ -121,17 +121,19 @@ char* gd_psfontResolve (PostscriptAlias* pa)
 
 static boolean gd_textlayout(textpara_t * para, char **fontpath)
 {
-    char *err;
-    char *fontlist;
+    char *err, *fontlist, *fontname;
+    double fontsize;
     int brect[8];
     gdFTStringExtra strex;
-    double fontsize;
+
+    fontname = para->font->name;
+    fontsize = para->font->size;
 
     strex.fontpath = NULL;
     strex.flags = gdFTEX_RETURNFONTPATHNAME | gdFTEX_RESOLUTION;
     strex.hdpi = strex.vdpi = POINTS_PER_INCH;
 
-    if (strstr(para->fontname, "/"))
+    if (strstr(fontname, "/"))
        strex.flags |= gdFTEX_FONTPATHNAME;
     else
        strex.flags |= gdFTEX_FONTCONFIG;
@@ -143,10 +145,9 @@ static boolean gd_textlayout(textpara_t * para, char **fontpath)
     para->layout = NULL;
     para->free_layout = NULL;
 
-    fontsize = para->fontsize;
     para->yoffset_centerline = 0.1 * fontsize;
 
-    if (para->fontname) {
+    if (fontname) {
        if (fontsize <= FONTSIZE_MUCH_TOO_SMALL) {
            return TRUE; /* OK, but ignore text entirely */
        } else if (fontsize <= FONTSIZE_TOO_SMALL) {
@@ -160,9 +161,9 @@ static boolean gd_textlayout(textpara_t * para, char **fontpath)
        if (para->postscript_alias)
            fontlist = gd_psfontResolve (para->postscript_alias);
        else
-           fontlist = para->fontname;
+           fontlist = fontname;
 #else
-       fontlist = gd_alternate_fontlist(para->fontname);
+       fontlist = gd_alternate_fontlist(fontname);
 #endif
 
        err = gdImageStringFTEx(NULL, brect, -1, fontlist,
@@ -184,7 +185,7 @@ static boolean gd_textlayout(textpara_t * para, char **fontpath)
            /* 1.2 specifies how much extra space to leave between lines;
              * see LINESPACING in const.h.
              */
-           para->height = (int)(para->fontsize * 1.2);
+           para->height = (int)(fontsize * 1.2);
        }
     }
     return TRUE;
index 4d3e248911cfbd42f8a246aa1b7a5b11d7a1cefc..475d1a11f47dd2f87df763bd4b0b7dcf66026cc4 100644 (file)
@@ -105,7 +105,7 @@ static void gdk_format(GVJ_t * job)
 
     gdk_pixbuf_save_to_callback(pixbuf, writer, job, format_str, NULL, NULL);
 
-    gdk_pixbuf_unref(pixbuf);
+    g_object_unref(pixbuf);
 }
 
 static gvdevice_engine_t gdk_engine = {
index 9de13e59011160465ec5385e404271f9663ba29e..68668f0ac24e0d34c7c15b3ca7ce842d836d3460 100644 (file)
@@ -395,9 +395,9 @@ static void lasi_textpara(GVJ_t * job, pointf p, textpara_t * para)
     }
 
     ps_set_color(job, &(job->obj->pencolor));
-//    gvprintdouble(job, para->fontsize);
-//    gvprintf(job, " /%s set_font\n", para->fontname);
-    doc->osBody() << setFont(font, style, weight, variant, stretch) << setFontSize(para->fontsize) << endl;
+//    gvprintdouble(job, para->font->size);
+//    gvprintf(job, " /%s set_font\n", para->font->name);
+    doc->osBody() << setFont(font, style, weight, variant, stretch) << setFontSize(para->font->size) << endl;
     switch (para->just) {
     case 'r':
         p.x -= para->width;
index f10c591660d313056ba00004ec3b2a02816145d9..b69563b0348e46c8d5a2b4f9b7914f4a325ead35 100644 (file)
@@ -88,7 +88,7 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath)
     if (!context) {
        fontmap = pango_cairo_font_map_new();
        gv_fmap = get_font_mapping(fontmap);
-       context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP(fontmap));
+       context = pango_font_map_create_context (fontmap);
        options=cairo_font_options_create();
        cairo_font_options_set_antialias(options,CAIRO_ANTIALIAS_GRAY);
        cairo_font_options_set_hint_style(options,CAIRO_HINT_STYLE_FULL);
@@ -100,9 +100,9 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath)
        g_object_unref(fontmap);
     }
 
-    if (!fontname || strcmp(fontname, para->fontname) != 0 || fontsize != para->fontsize) {
-       fontname = para->fontname;
-       fontsize = para->fontsize;
+    if (!fontname || strcmp(fontname, para->font->name) != 0 || fontsize != para->font->size) {
+       fontname = para->font->name;
+       fontsize = para->font->size;
        pango_font_description_free (desc);
 
        if (para->postscript_alias) {
@@ -250,7 +250,7 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath)
      * Use an assumed height based on the point size.
      */
 
-    para->height = (int)(para->fontsize * 1.1 + .5);
+    para->height = (int)(para->font->size * 1.1 + .5);
 
     /* The y offset from baseline to 0,0 of the bitmap representation */
 #if defined PANGO_VERSION_MAJOR && (PANGO_VERSION_MAJOR >= 1)
@@ -264,7 +264,7 @@ static boolean pango_textlayout(textpara_t * para, char **fontpath)
 #endif
 
     /* The distance below midline for y centering of text strings */
-    para->yoffset_centerline = 0.2 * para->fontsize;
+    para->yoffset_centerline = 0.2 * para->font->size;
 
     if (logical_rect.width == 0)
        return FALSE;
index dee2c21d59e9d7d92b9945006029224407ecff6e..90d024224b3386618c02c01030a38d26090286a0 100644 (file)
@@ -106,7 +106,7 @@ void quartz_free_layout(void *layout)
 
 boolean quartz_textlayout(textpara_t *para, char **fontpath)
 {
-       void *line = quartz_new_layout(para->fontname, para->fontsize, para->str);
+       void *line = quartz_new_layout(para->font->name, para->fonti->size, para->str);
        if (line)
        {
                /* report the layout */