virtual void undo() = 0;
virtual void redo() { (*this)(); }
virtual XMLNode &get_state();
virtual int set_state(const XMLNode&, int /*version*/) { /* noop */ return 0; }
virtual void undo() = 0;
virtual void redo() { (*this)(); }
virtual XMLNode &get_state();
virtual int set_state(const XMLNode&, int /*version*/) { /* noop */ return 0; }