]> granicus.if.org Git - graphviz/commitdiff
Provide lwidth and lheight attribute for graph/cluster labels
authorerg <devnull@localhost>
Tue, 22 Jun 2010 19:58:12 +0000 (19:58 +0000)
committererg <devnull@localhost>
Tue, 22 Jun 2010 19:58:12 +0000 (19:58 +0000)
doc/info/attrs.html
doc/infosrc/attrs
lib/common/output.c

index ea21b6d82ab9529fff545a736a062384772e2f65..3a095f7ba8f533463681bc18cbf515095dae9048 100644 (file)
@@ -268,11 +268,15 @@ This field indicates which graph component uses the attribute.
 </TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD></TD><TD>neato only</TD> </TR>
  <TR><TD><A NAME=a:lhead HREF=#d:lhead>lhead</A>
 </TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
+ <TR><TD><A NAME=a:lheight HREF=#d:lheight>lheight</A>
+</TD><TD>GC</TD><TD>double</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
  <TR><TD><A NAME=a:lp HREF=#d:lp>lp</A>
 </TD><TD>EGC</TD><TD><A HREF=#k:point>point</A>
 </TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
  <TR><TD><A NAME=a:ltail HREF=#d:ltail>ltail</A>
 </TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
+ <TR><TD><A NAME=a:lwidth HREF=#d:lwidth>lwidth</A>
+</TD><TD>GC</TD><TD>double</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
  <TR><TD><A NAME=a:margin HREF=#d:margin>margin</A>
 </TD><TD>NG</TD><TD>double<BR><A HREF=#k:pointf>pointf</A>
 </TD><TD ALIGN="CENTER">&#60;device-dependent&#62;</TD><TD></TD><TD></TD> </TR>
@@ -1055,6 +1059,9 @@ This field indicates which graph component uses the attribute.
   the edge is clipped to the boundary of the cluster.
   See <A HREF=#h:undir_note>limitation</A>.
 
+<DT><A NAME=d:lheight HREF=#a:lheight><STRONG>lheight</STRONG></A>
+<DD>  Height of graph or cluster label, in inches.
+
 <DT><A NAME=d:lp HREF=#a:lp><STRONG>lp</STRONG></A>
 <DD>  Label position, <A HREF=#points>in points</A>.
   The position indicates the center of the label.
@@ -1066,6 +1073,9 @@ This field indicates which graph component uses the attribute.
   the edge is clipped to the boundary of the cluster.
   See <A HREF=#h:undir_note>limitation</A>.
 
+<DT><A NAME=d:lwidth HREF=#a:lwidth><STRONG>lwidth</STRONG></A>
+<DD>  Width of graph or cluster label, in inches.
+
 <DT><A NAME=d:margin HREF=#a:margin><STRONG>margin</STRONG></A>
 <DD>  For graphs, this sets x and y margins of canvas, in inches. If the margin
   is a single double, both margins are set equal to the given value.
index dd02428d6f131e181ac57389cd0e73f2dd5be7da..89bb81370830987ee312eed021922483a53e3cd2 100644 (file)
@@ -561,6 +561,8 @@ if <B>lhead</B> is defined and is the name of a cluster containing
 the real head,
 the edge is clipped to the boundary of the cluster.
 See <A HREF=#h:undir_note>limitation</A>.
+:lheight:GC:double; write
+Height of graph or cluster label, in inches.
 :lp:EGC:point; write
 Label position, <A HREF=#points>in points</A>.
 The position indicates the center of the label.
@@ -570,6 +572,8 @@ if <B>ltail</B> is defined and is the name of a cluster
 containing the real tail,
 the edge is clipped to the boundary of the cluster.
 See <A HREF=#h:undir_note>limitation</A>.
+:lwidth:GC:double; write
+Width of graph or cluster label, in inches.
 :margin:NG:double/pointf:<device-dependent>;
 For graphs, this sets x and y margins of canvas, in inches. If the margin
 is a single double, both margins are set equal to the given value.
index 3d5cc6acd4b7ef7a149a6ad294d9c8c72f24825d..f3109317ca21482d50f842b23992995aafe2ff9a 100644 (file)
@@ -247,6 +247,11 @@ static void rec_attach_bb(graph_t * g, Agsym_t* bbsym)
        pt = GD_label(g)->pos;
        sprintf(buf, "%.5g,%.5g", pt.x, YDIR(pt.y));
        agset(g, "lp", buf);
+       pt = GD_label(g)->dimen;
+       sprintf(buf, "%.2f", PS2INCH(pt.x));
+       agset (g, "lwidth", buf);
+       sprintf(buf, "%.2f", PS2INCH(pt.y));
+       agset (g, "lheight", buf);
     }
     for (c = 1; c <= GD_n_cluster(g); c++)
        rec_attach_bb(GD_clust(g)[c], bbsym);
@@ -288,10 +293,17 @@ void attach_attrs_and_arrows(graph_t* g, int* sp, int* ep)
        safe_dcl(g, g->proto->e, "tail_lp", "", agedgeattr);
     if (GD_label(g)) {
        safe_dcl(g, g, "lp", "", agraphattr);
+       safe_dcl(g, g, "lwidth", "", agraphattr);
+       safe_dcl(g, g, "lheight", "", agraphattr);
        if (GD_label(g)->text[0]) {
            ptf = GD_label(g)->pos;
            sprintf(buf, "%.5g,%.5g", ptf.x, YDIR(ptf.y));
            agset(g, "lp", buf);
+           ptf = GD_label(g)->dimen;
+           sprintf(buf, "%.2f", PS2INCH(ptf.x));
+           agset(g, "lwidth", buf);
+           sprintf(buf, "%.2f", PS2INCH(ptf.y));
+           agset(g, "lheight", buf);
        }
     }
     bbsym = safe_dcl(g, g, "bb", "", agraphattr);
@@ -313,10 +325,17 @@ void attach_attrs_and_arrows(graph_t* g, int* sp, int* ep)
        safe_dcl(g, AGEDGE, "tail_lp", "");
     if (GD_label(g)) {
        safe_dcl(g, AGRAPH, "lp", "");
+       safe_dcl(g, AGRAPH, "lwidth", "");
+       safe_dcl(g, AGRAPH, "lheight", "");
        if (GD_label(g)->text[0]) {
            ptf = GD_label(g)->pos;
            sprintf(buf, "%.5g,%.5g", ptf.x, YDIR(ptf.y));
            agset(g, "lp", buf);
+           ptf = GD_label(g)->dimen;
+           sprintf(buf, "%.2f", PS2INCH(ptf.x));
+           agset(g, "lwidth", buf);
+           sprintf(buf, "%.2f", PS2INCH(ptf.y));
+           agset(g, "lheight", buf);
        }
     }
     bbsym = safe_dcl(g, AGRAPH, "bb", "");