Undo class

John J. Lee jjl at pobox.com
Mon Nov 10 17:53:08 EST 2003


David Eppstein <eppstein at ics.uci.edu> writes:

> In article <boobnq$69d$1 at news-reader3.wanadoo.fr>,
>  Eric Brunel <eric.brunel at pragmadev.N0SP4M.com> wrote:
> 
> > > I'm developing a tool in Tkinter and would like to add Undo and Redo
> > > commands to my Edit menu. Does somebody know if anybody has implemented
> > > standard Undo/Redo as a Python module? I could not find any info with
[...]
> Take a look at the Cocoa UndoManager functionality.
> Basically, while you're handle a change to a UI object, you call
>     U = undoManager.prepareWithInvocationTarget(self)
>     U.methods(arguments...)
> where self.methods(arguments...) would be the calls you'd do
> to reverse the change, and it saves the method names and arguments for 
> you. Later, when an undo is requested, it performs the calls you 
> prototyped for it.  Very convenient, shouldn't be too hard to program in 
> Python directly (in fact it is available in Python on OS X now, via 
> PyObj).
[...]

Another Undo API that does things in just the same way (pure Python,
with docs!):

http://sketch.sourceforge.net/Doc/devguide-19.html


While you're at it, you could do a lot worse than pinching his GUI
component publisher / subscriber code.


John




More information about the Python-list mailing list