undo and redo ?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • black

    undo and redo ?

    I'm coding with Tkinter and i wonder whether we could get current OS' clipboard available, and event more, anyone can inspires me how we can achieve undo and redo function ?

    thanx~


    ---------------------------------
    Do you Yahoo!?
    Free Pop-Up Blocker - Get it now
  • Diez B. Roggisch

    #2
    Re: undo and redo ?

    > I'm coding with Tkinter and i wonder whether we could get current OS'[color=blue]
    > clipboard available, and event more, anyone can inspires me how we can
    > achieve undo and redo function ?[/color]

    When working with a MVC-approach, the actions you the user can invoke on the
    model could be created as objects that know how to undo/invert their
    effects. Then you store a list of these actions and performing undo takes
    the last action and apply its inverted action to your model. Right from my
    head:

    class InsertAction:
    def __init__(_, index, needle):
    _.index = index
    _.needle = needle

    def do(_, haystack):
    haystack[index:index] = _.needle

    def undo(_, haystack):
    del haystack[_.index : _.index + len(_.needle)]


    Hope this gives you an idea. You can also have to types of actions -
    primitive and complex. Performing undo will then undo all primitve actions
    until the action queue is empty or a complex actions is reached. This
    allows e.g. in a text-editor to perform undo subsequently inserted
    characters at once.

    HTH,

    Diez

    Comment

    Working...