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	Fri Feb 11 14:27:26 2011 -0500
+++ b/scripts/plot/legend.m	Sun Feb 13 15:11:56 2011 +0100
@@ -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