octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Setting the fontname and size of text


From: Shai Ayal
Subject: Re: Setting the fontname and size of text
Date: Tue, 13 Nov 2007 13:22:42 +0200

On Nov 13, 2007 12:29 PM, David Bateman <address@hidden> wrote:
>
> John W. Eaton wrote:
> > On 12-Nov-2007, David Bateman wrote:
> >
> > | The attached patch, allows the fontsize and name to be set for all text
> > | objects in Octave. You might not like my choice of "Helvetica" as the
> > | default font, and if so a search and replace in graphics.cc and
> > | __go_draw_axes__.m can change it..
> >
> > I applied this patch.
> >
> > Thanks,
> >
> > jwe
> >
> >
> Ok, and here is the complement to set the weight and angle of the font..
> Not all combinations of fonts, weights and angles are valid on all
> terminals with gnuplot however.. I've also limited the options of the
> weight to "normal" and "bold" and ignored the "demi", and "light"
> options that matlab provides as there seems to be no easy way to deal
> with this in gnuplot.. Similar I treated the "oblique" option for the
> angle as "italic". This allows things like
>
> h = text (0,0,"Test Label");
> set(h,"FontName","Times","FontSize", 20, "FontWeight","Bold",
> "FontAngle","Italic")
>
> to work.
>
>
> D.
>
>
> --
> David Bateman                                address@hidden
> Motorola Labs - Paris                        +33 1 69 35 48 04 (Ph)
> Parc Les Algorithmes, Commune de St Aubin    +33 6 72 01 06 33 (Mob)
> 91193 Gif-Sur-Yvette FRANCE                  +33 1 69 35 77 01 (Fax)
>
> The information contained in this communication has been classified as:
>
> [x] General Business Information
> [ ] Motorola Internal Use Only
> [ ] Motorola Confidential Proprietary
>
>
> *** ./scripts/plot/__go_draw_axes__.m.orig3     2007-11-13 10:21:50.106992986 
> +0100
> --- ./scripts/plot/__go_draw_axes__.m   2007-11-13 11:13:47.990435630 +0100
> ***************
> *** 60,68 ****
>         fputs (plot_stream, "unset title;\n");
>         else
>         if (isempty (t.fontname))
> !         f = "Helvetica";
>         else
> !         f = t.fontname;
>         endif
>         if (isempty (t.fontsize))
>           s = 10;
> --- 60,82 ----
>         fputs (plot_stream, "unset title;\n");
>         else
>         if (isempty (t.fontname))
> !         f = "helvetica";
>         else
> !         f = tolower (t.fontname);
> !       endif
> !       if (! isempty(t.fontweight) &&
> !           strcmp (tolower (t.fontweight), "bold"))
> !         if (! isempty(t.fontangle) &&
> !             (strcmp (tolower (t.fontangle), "italic") ||
> !             strcmp (tolower (t.fontangle), "oblique")))
> !           f = strcat (f, "-bolditalic");
> !         else
> !           f = strcat (f, "-bold");
> !         endif
> !       elseif (! isempty(t.fontangle) &&
> !               (strcmp (tolower (t.fontangle), "italic") ||
> !               strcmp (tolower (t.fontangle), "oblique")))
> !         f = strcat (f, "-italic");
>         endif
>         if (isempty (t.fontsize))
>           s = 10;
> ***************
> *** 81,89 ****
>         fputs (plot_stream, "unset xlabel;\n");
>         else
>         if (isempty (t.fontname))
> !         f = "Helvetica";
>         else
> !         f = t.fontname;
>         endif
>         if (isempty (t.fontsize))
>           s = 10;
> --- 95,117 ----
>         fputs (plot_stream, "unset xlabel;\n");
>         else
>         if (isempty (t.fontname))
> !         f = "helvetica";
>         else
> !         f = tolower (t.fontname);
> !       endif
> !       if (! isempty(t.fontweight) &&
> !           strcmp (tolower (t.fontweight), "bold"))
> !         if (! isempty(t.fontangle) &&
> !             (strcmp (tolower (t.fontangle), "italic") ||
> !             strcmp (tolower (t.fontangle), "oblique")))
> !           f = strcat (f, "-bolditalic");
> !         else
> !           f = strcat (f, "-bold");
> !         endif
> !       elseif (! isempty(t.fontangle) &&
> !               (strcmp (tolower (t.fontangle), "italic") ||
> !               strcmp (tolower (t.fontangle), "oblique")))
> !         f = strcat (f, "-italic");
>         endif
>         if (isempty (t.fontsize))
>           s = 10;
> ***************
> *** 108,116 ****
>         fputs (plot_stream, "unset ylabel;\n");
>         else
>         if (isempty (t.fontname))
> !         f = "Helvetica";
>         else
> !         f = t.fontname;
>         endif
>         if (isempty (t.fontsize))
>           s = 10;
> --- 136,158 ----
>         fputs (plot_stream, "unset ylabel;\n");
>         else
>         if (isempty (t.fontname))
> !         f = "helvetica";
>         else
> !         f = tolower (t.fontname);
> !       endif
> !       if (! isempty(t.fontweight) &&
> !           strcmp (tolower (t.fontweight), "bold"))
> !         if (! isempty(t.fontangle) &&
> !             (strcmp (tolower (t.fontangle), "italic") ||
> !             strcmp (tolower (t.fontangle), "oblique")))
> !           f = strcat (f, "-bolditalic");
> !         else
> !           f = strcat (f, "-bold");
> !         endif
> !       elseif (! isempty(t.fontangle) &&
> !               (strcmp (tolower (t.fontangle), "italic") ||
> !               strcmp (tolower (t.fontangle), "oblique")))
> !         f = strcat (f, "-italic");
>         endif
>         if (isempty (t.fontsize))
>           s = 10;
> ***************
> *** 853,861 ****
>           endif
>
>           if (isempty (obj.fontname))
> !           f = "Helvetica";
>           else
> !           f = obj.fontname;
>           endif
>           if (isempty (obj.fontsize))
>             s = 10;
> --- 895,917 ----
>           endif
>
>           if (isempty (obj.fontname))
> !           f = "helvetica";
>           else
> !           f = tolower(obj.fontname);
> !         endif
> !         if (! isempty(obj.fontweight) &&
> !             strcmp (tolower (obj.fontweight), "bold"))
> !           if (! isempty(obj.fontangle) &&
> !               (strcmp (tolower (obj.fontangle), "italic") ||
> !               strcmp (tolower (obj.fontangle), "oblique")))
> !             f = strcat (f, "-bolditalic");
> !           else
> !             f = strcat (f, "-bold");
> !           endif
> !         elseif (! isempty(obj.fontangle) &&
> !                 (strcmp (tolower (obj.fontangle), "italic") ||
> !                 strcmp (tolower (obj.fontangle), "oblique")))
> !           f = strcat (f, "-italic");
>           endif
>           if (isempty (obj.fontsize))
>             s = 10;
> *** ./src/graphics.h.in.orig3   2007-11-13 10:18:08.677130836 +0100
> --- ./src/graphics.h.in 2007-11-13 10:20:59.452568542 +0100
> ***************
> *** 1412,1417 ****
> --- 1412,1419 ----
>         color_property color
>         octave_value fontname
>         octave_value fontsize
> +       octave_value fontangle
> +       octave_value fontweight
>       END_PROPERTIES
>
>       static std::string go_name;
> *** ./src/graphics.cc.orig3     2007-11-13 10:18:01.541511035 +0100
> --- ./src/graphics.cc   2007-11-13 10:25:17.999292476 +0100
> ***************
> *** 1919,1925 ****
>       horizontalalignment ("left"),
>       color (Matrix (1, 3, 0.0)),
>       fontname ("Helvetica"),
> !     fontsize (10)
>   { }
>
>   void
> --- 1919,1927 ----
>       horizontalalignment ("left"),
>       color (Matrix (1, 3, 0.0)),
>       fontname ("Helvetica"),
> !     fontsize (10),
> !     fontangle ("normal"),
> !     fontweight ("normal")
>   { }
>
>   void
> ***************
> *** 1952,1957 ****
> --- 1954,1963 ----
>       set_fontname (val);
>     else if (name.compare ("fontsize"))
>       set_fontsize (val);
> +   else if (name.compare ("fontangle"))
> +     set_fontangle (val);
> +   else if (name.compare ("fontweight"))
> +     set_fontweight (val);
>     else
>       {
>         modified = false;
> ***************
> *** 1979,1984 ****
> --- 1985,1992 ----
>     m.assign ("color", color);
>     m.assign ("fontname", fontname);
>     m.assign ("fontsize", fontsize);
> +   m.assign ("fontangle", fontangle);
> +   m.assign ("fontweight", fontweight);
>
>     return m;
>   }
> ***************
> *** 2012,2017 ****
> --- 2020,2029 ----
>       retval = fontname;
>     else if (name.compare ("fontsize"))
>       retval = fontsize;
> +   else if (name.compare ("fontangle"))
> +     retval = fontangle;
> +   else if (name.compare ("fontweight"))
> +     retval = fontweight;
>     else
>       warning ("get: invalid property `%s'", name.c_str ());
>
> ***************
> *** 2031,2036 ****
> --- 2043,2050 ----
>     m["color"] = Matrix (1, 3, 1.0);
>     m["fontname"] = "Helvetica";
>     m["fontsize"] = 10;
> +   m["fontangle"] = "normal";
> +   m["fontweight"] = "normal";
>
>     return m;
>   }
>
> 2007-11-13  David Bateman  <address@hidden>
>
>         * plot/__go_draw_axes.m: Allow the fontangle and fontweight to be
>         specified for the title, xlabel, ylabel and text objects.
>
> 2007-11-12  David Bateman  <address@hidden>
>
>         * graphics.h.in, graphics.cc (class text): Add the fontangle and
>         fontweight properties.
>
>

David,

I wish you would use the radio_value class for these properties. That
way you would gain automatic validity checks. I'll try to submit a
patch tonight if you don't beat me to it

Shai


reply via email to

[Prev in Thread] Current Thread [Next in Thread]