Tkinter: text widget predefined key bindings

Edward K. Ream edream at tds.net
Wed Aug 28 09:28:01 EDT 2002


Leo supports unlimited undo/redo, not only for "typing" cases but for all
outline operations as well.  It's not trivial, and I find it relatively easy
to extend.

The code, in a Leo outline, of course, is in leoUndo.py.  You can look at
the code by downloading version 3.5 of leo2.py from
http://sourceforge.net/project/showfiles.php?group_id=3458

You can also look at just leoUndo.py on the CVS tree at
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/leo/leo/leoUndo.py?rev=HEAD&c
ontent-type=text/vnd.viewcvs-markup
but this will be much less clear than looking at the Leo outline.

As has been stated, one must handle cut/paste and any other operation that
affects text.

The theory of operation is in the section of leoUndo.py called
<< How Leo implements unlimited undo >>
The heavy lifting is handled by the undo() and redo() routines.  External
code calls the "state routines", particularly setUndoParams().

Hope this helps.

Edward
--------------------------------------------------------------------
Edward K. Ream   email:  edream at tds.net
Leo: Literate Editor with Outlines
Leo: http://personalpages.tds.net/~edream/front.html
--------------------------------------------------------------------






More information about the Python-list mailing list