undo/redo api proposal



o o o o o o o o


undoredo.create_method();
undoredo.add_do_method(node,"add_child",node_to_add);
undoredo.add_undo_method(node,"remove_child",node_to_add);
undoredo.add_add_data(node_to_add);
undoredo.commit()

undoredo.create_method();
undoredo.add_do_method(node,"remove_node",node_to_remove);
undoredo.add_undo_method(node,"add_node",node_to_remove);
undoredo.add_remove_data(node_to_remove);
undoredo.commit()


undoredo.create_property();
undoredo.add_do_set(node,"property",value);
undoredo.add_undo_set(node,"property",previous_value);
undoredo.add_remove_data(node_to_remove);
undoredo.commit()