Mercurial > hg > octave-nkf
diff scripts/plot/legend.m @ 12440:2ed62b9f949e
synchronization of axes position and outerposition
author | Konstantinos Poulios <logari81@googlemail.com> |
---|---|
date | Sun, 13 Feb 2011 15:11:56 +0100 |
parents | a754c2d8a13f |
children | e81ddf9cacd5 |
line wrap: on
line diff
--- a/scripts/plot/legend.m +++ b/scripts/plot/legend.m @@ -120,7 +120,7 @@ endif if (strcmp (get (ca, "tag"), "plotyy")) - plty = get(ca (strcmp (get (ca, "tag"), "plotyy")), "userdata"); + plty = get(ca, "userdata"); if (isscalar (plty)) ca = [ca, plty]; else @@ -492,7 +492,7 @@ if (isempty (hlegend)) addprops = true; hlegend = axes ("tag", "legend", "userdata", struct ("handle", ud), - "box", box, "outerposition", [0, 0, 0, 0], + "box", box, "xtick", [], "ytick", [], "xticklabel", "", "yticklabel", "", "zticklabel", "", "xlim", [0, 1], "ylim", [0, 1], "visible", "off", @@ -582,8 +582,6 @@ lpos(4)]; new_pos = [ca_pos(1), ca_pos(2), ca_pos(3), ca_pos(4) - lpos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2), ca_outpos(3), ... - ca_outpos(4) - lpos(4)]; else lpos = [ca_pos(1) + (ca_pos(3) - lpos(3)) / 2, ... ca_pos(2) + ca_pos(4) - lpos(4) - ypad, lpos(3), lpos(4)]; @@ -594,8 +592,6 @@ ca_outpos(2) + ypad, lpos(3), lpos(4)]; new_pos = [ca_pos(1), ca_pos(2) + lpos(4), ca_pos(3), ... ca_pos(4) - lpos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2) + lpos(4), ... - ca_outpos(3), ca_outpos(4) - lpos(4)]; else lpos = [ca_pos(1) + (ca_pos(3) - lpos(3)) / 2, ... ca_pos(2) + ypad, lpos(3), lpos(4)]; @@ -605,8 +601,6 @@ lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3) - ypad, ... ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, lpos(3), lpos(4)]; new_pos = [ca_pos(1), ca_pos(2), ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ca_pos(3) - lpos(3) - ypad, ... ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, lpos(3), lpos(4)]; @@ -618,8 +612,6 @@ lpos(3), lpos(4)]; new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ... ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1) + lpos(3), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ypad, ... ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, lpos(3), lpos(4)]; @@ -629,8 +621,6 @@ lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3) - ypad, ... ca_pos(2) + ca_pos(4) - lpos(4), lpos(3), lpos(4)]; new_pos = [ca_pos(1), ca_pos(2), ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ca_pos(3) - lpos(3) - ypad, ... ca_pos(2) + ca_pos(4) - lpos(4) - ypad, lpos(3), lpos(4)]; @@ -641,8 +631,6 @@ lpos(3), lpos(4)]; new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ... ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1) + lpos(3), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ypad, ... ca_pos(2) + ca_pos(4) - lpos(4) - ypad, lpos(3), lpos(4)]; @@ -653,8 +641,6 @@ ca_pos(2), lpos(3), lpos(4)]; new_pos = [ca_pos(1), ca_pos(2), ... ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ca_pos(3) - lpos(3) - ypad, ... ca_pos(2) + ypad, lpos(3), lpos(4)]; @@ -664,8 +650,6 @@ lpos = [ca_outpos(1) + ypad, ca_pos(2), lpos(3), lpos(4)]; new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ... ca_pos(3) - lpos(3), ca_pos(4)]; - new_outpos = [ca_outpos(1) + lpos(3), ca_outpos(2), ... - ca_outpos(3) - lpos(3), ca_outpos(4)]; else lpos = [ca_pos(1) + ypad, ca_pos(2) + ypad, lpos(3), lpos(4)]; endif @@ -674,7 +658,7 @@ units = get (hlegend, "units"); unwind_protect set (hlegend, "units", "points"); - set (hlegend, "position", lpos, "outerposition", lpos); + set (hlegend, "position", lpos); unwind_protect_cleanup set (hlegend, "units", units); end_unwind_protect @@ -750,7 +734,7 @@ units = get (ca(i), "units"); unwind_protect set (ca(i), "units", "points"); - set (ca (i), "position", new_pos, "outerposition", new_outpos); + set (ca (i), "position", new_pos); unwind_protect_cleanup set (ca(i), "units", units); end_unwind_protect @@ -759,8 +743,7 @@ set (hlegend, "deletefcn", {@deletelegend2, ca, ... ca_pos, ca_outpos, t1, hplots}); addlistener (hlegend, "visible", {@hideshowlegend, ca, ... - ca_pos, new_pos, ... - ca_outpos, new_outpos}); + ca_pos, new_pos}); else set (hlegend, "deletefcn", {@deletelegend2, ca, [], [], t1, hplots}); endif @@ -841,7 +824,7 @@ endwhile endfunction -function hideshowlegend (h, d, ca, pos1, pos2, outpos1, outpos2) +function hideshowlegend (h, d, ca, pos1, pos2) isvisible = strcmp (get (h, "visible"), "off"); if (! isvisible) kids = get (h, "children"); @@ -861,9 +844,9 @@ unwind_protect set (ca(i), "units", "points"); if (isvisible) - set (ca(i), "position", pos2, "outerposition", outpos2); + set (ca(i), "position", pos2); else - set (ca(i), "position", pos1, "outerposition", outpos1); + set (ca(i), "position", pos1); endif unwind_protect_cleanup set (ca(i), "units", units); @@ -889,7 +872,7 @@ units = get (ca(i), "units"); unwind_protect set (ca(i), "units", "points"); - set (ca(i), "position", pos, "outerposition", outpos, "deletefcn", ""); + set (ca(i), "position", pos, "deletefcn", ""); unwind_protect_cleanup set (ca(i), "units", units); end_unwind_protect