Revision: 8101
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8101&view=rev
Author:   jdh2358
Date:     2010-01-29 15:27:54 +0000 (Fri, 29 Jan 2010)

Log Message:
-----------
added state to legend toggle

Modified Paths:
--------------
    trunk/matplotlib/CHANGELOG
    trunk/matplotlib/lib/matplotlib/legend.py

Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG  2010-01-28 21:46:12 UTC (rev 8100)
+++ trunk/matplotlib/CHANGELOG  2010-01-29 15:27:54 UTC (rev 8101)
@@ -1,3 +1,6 @@
+2010-01-29 Added draggable method to Legend to allow mouse drag
+placement.  Thanks Adam Fraser. JDH
+
 2010-01-25 Fixed a bug reported by Olle Engdegard, when using
            histograms with stepfilled and log=True - MM
 

Modified: trunk/matplotlib/lib/matplotlib/legend.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/legend.py   2010-01-28 21:46:12 UTC (rev 
8100)
+++ trunk/matplotlib/lib/matplotlib/legend.py   2010-01-29 15:27:54 UTC (rev 
8101)
@@ -935,16 +935,32 @@
         return ox, oy
 
 
-    def draggable(self):
+    def draggable(self, state=None):
         """
-        toggle the draggable state; if on, you can drag the legend on
-        the canvas.  The DraggableLegend helper class is returned
+        Set the draggable state -- if state is
+
+          * None : toggle the current state
+
+          * True : turn draggable on
+
+          * False : turn draggable off
+          
+        If draggable is on, you can drag the legend on the canvas with
+        the mouse.  The DraggableLegend helper instance is returned if
+        draggable is on.
         """
-        if self._draggable is not None:
-            self._draggable.disconnect()
+        is_draggable = self._draggable is not None
+
+        # if state is None we'll toggle
+        if state is None:
+            state = not is_draggable
+            
+        if state:
+            if self._draggable is None:
+                self._draggable = DraggableLegend(self)
+        else:
+            if self._draggable is not None:
+                self._draggable.disconnect()
             self._draggable = None
-        else:
 
-            self._draggable = DraggableLegend(self)
-
         return self._draggable


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to