diff options
Diffstat (limited to 'core/undo_redo.h')
-rw-r--r-- | core/undo_redo.h | 48 |
1 files changed, 20 insertions, 28 deletions
diff --git a/core/undo_redo.h b/core/undo_redo.h index 7664cf7cb5..30601fa321 100644 --- a/core/undo_redo.h +++ b/core/undo_redo.h @@ -32,27 +32,24 @@ #include "object.h" #include "resource.h" - - - class UndoRedo : public Object { - GDCLASS(UndoRedo,Object); - OBJ_SAVE_TYPE( UndoRedo ); -public: + GDCLASS(UndoRedo, Object); + OBJ_SAVE_TYPE(UndoRedo); +public: enum MergeMode { MERGE_DISABLE, MERGE_ENDS, MERGE_ALL }; - typedef void (*CommitNotifyCallback)(void *p_ud,const String& p_name); - Variant _add_do_method(const Variant** p_args, int p_argcount, Variant::CallError& r_error); - Variant _add_undo_method(const Variant** p_args, int p_argcount, Variant::CallError& r_error); + typedef void (*CommitNotifyCallback)(void *p_ud, const String &p_name); + Variant _add_do_method(const Variant **p_args, int p_argcount, Variant::CallError &r_error); + Variant _add_undo_method(const Variant **p_args, int p_argcount, Variant::CallError &r_error); - typedef void (*MethodNotifyCallback)(void *p_ud,Object*p_base,const StringName& p_name,VARIANT_ARG_DECLARE); - typedef void (*PropertyNotifyCallback)(void *p_ud,Object*p_base,const StringName& p_property,const Variant& p_value); + typedef void (*MethodNotifyCallback)(void *p_ud, Object *p_base, const StringName &p_name, VARIANT_ARG_DECLARE); + typedef void (*PropertyNotifyCallback)(void *p_ud, Object *p_base, const StringName &p_property, const Variant &p_value); private: struct Operation { @@ -68,10 +65,8 @@ private: ObjectID object; String name; Variant args[VARIANT_ARG_MAX]; - }; - struct Action { String name; List<Operation> do_ops; @@ -90,27 +85,24 @@ private: void _process_operation_list(List<Operation>::Element *E); void _discard_redo(); - CommitNotifyCallback callback; - void* callback_ud; - void* method_callbck_ud; - void* prop_callback_ud; + void *callback_ud; + void *method_callbck_ud; + void *prop_callback_ud; MethodNotifyCallback method_callback; PropertyNotifyCallback property_callback; - protected: static void _bind_methods(); public: + void create_action(const String &p_name = "", MergeMode p_mode = MERGE_DISABLE); - void create_action(const String& p_name="",MergeMode p_mode=MERGE_DISABLE); - - void add_do_method(Object *p_object,const String& p_method,VARIANT_ARG_LIST); - void add_undo_method(Object *p_object,const String& p_method,VARIANT_ARG_LIST); - void add_do_property(Object *p_object,const String& p_property,const Variant& p_value); - void add_undo_property(Object *p_object,const String& p_property,const Variant& p_value); + void add_do_method(Object *p_object, const String &p_method, VARIANT_ARG_LIST); + void add_undo_method(Object *p_object, const String &p_method, VARIANT_ARG_LIST); + void add_do_property(Object *p_object, const String &p_property, const Variant &p_value); + void add_undo_property(Object *p_object, const String &p_property, const Variant &p_value); void add_do_reference(Object *p_object); void add_undo_reference(Object *p_object); @@ -126,15 +118,15 @@ public: uint64_t get_version() const; - void set_commit_notify_callback(CommitNotifyCallback p_callback,void* p_ud); + void set_commit_notify_callback(CommitNotifyCallback p_callback, void *p_ud); - void set_method_notify_callback(MethodNotifyCallback p_method_callback,void* p_ud); - void set_property_notify_callback(PropertyNotifyCallback p_property_callback,void* p_ud); + void set_method_notify_callback(MethodNotifyCallback p_method_callback, void *p_ud); + void set_property_notify_callback(PropertyNotifyCallback p_property_callback, void *p_ud); UndoRedo(); ~UndoRedo(); }; -VARIANT_ENUM_CAST( UndoRedo::MergeMode ); +VARIANT_ENUM_CAST(UndoRedo::MergeMode); #endif // UNDO_REDO_H |