DiaUndoManager

DiaUndoManager — Interface for undo/redo functionality in DiaCanvas

Synopsis




#define     DIA_UNDO_MANAGER                (obj)
            DiaUndoManager;
void        dia_undo_manager_begin_transaction
                                            (DiaUndoManager *undo_manager);
void        dia_undo_manager_commit_transaction
                                            (DiaUndoManager *undo_manager);
void        dia_undo_manager_discard_transaction
                                            (DiaUndoManager *undo_manager);
void        dia_undo_manager_undo_transaction
                                            (DiaUndoManager *undo_manager);
void        dia_undo_manager_redo_transaction
                                            (DiaUndoManager *undo_manager);
gboolean    dia_undo_manager_in_transaction (DiaUndoManager *undo_manager);
gboolean    dia_undo_manager_can_undo       (DiaUndoManager *undo_manager);
gboolean    dia_undo_manager_can_redo       (DiaUndoManager *undo_manager);
            DiaUndoAction;
DiaUndoAction* dia_undo_action_new          (gsize sizeof_undo_action,
                                             DiaUndoFunc undo,
                                             DiaUndoFunc redo,
                                             GDestroyNotify destroy);
void        dia_undo_action_undo            (DiaUndoAction *action);
void        dia_undo_action_redo            (DiaUndoAction *action);
void        dia_undo_action_destroy         (DiaUndoAction *action);

Object Hierarchy


  GInterface
   +----DiaUndoManager

Prerequisites

DiaUndoManager requires GObject.

Signal Prototypes


"add-undo-action"
            void        user_function      (DiaUndoManager *diaundomanager,
                                            gpointer arg1,
                                            gpointer user_data);
"begin-transaction"
            void        user_function      (DiaUndoManager *diaundomanager,
                                            gpointer user_data);
"commit-transaction"
            void        user_function      (DiaUndoManager *diaundomanager,
                                            gpointer user_data);
"discard-transaction"
            void        user_function      (DiaUndoManager *diaundomanager,
                                            gpointer user_data);
"redo-transaction"
            void        user_function      (DiaUndoManager *diaundomanager,
                                            gpointer user_data);
"undo-transaction"
            void        user_function      (DiaUndoManager *diaundomanager,
                                            gpointer user_data);

Description

The DiaUndoManager interface provides an interface to the pluggable undo mechanism in DiaCanvas2.

Details

DIA_UNDO_MANAGER()

#define DIA_UNDO_MANAGER(obj)	(G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_UNDO_MANAGER, DiaUndoManager))

obj :

DiaUndoManager

typedef struct _DiaUndoManager DiaUndoManager;

This interface provides the functions that are used to gather and act on undo information.


dia_undo_manager_begin_transaction ()

void        dia_undo_manager_begin_transaction
                                            (DiaUndoManager *undo_manager);

Begin a new transaction.

undo_manager :

dia_undo_manager_commit_transaction ()

void        dia_undo_manager_commit_transaction
                                            (DiaUndoManager *undo_manager);

Store the transaction on the undo stack. If there are no actions to be undone, a specific implementation may consider no storing it.

undo_manager :

dia_undo_manager_discard_transaction ()

void        dia_undo_manager_discard_transaction
                                            (DiaUndoManager *undo_manager);

Discard the current transaction. It is not stored on the undo stack.

undo_manager :

dia_undo_manager_undo_transaction ()

void        dia_undo_manager_undo_transaction
                                            (DiaUndoManager *undo_manager);

Undo the actions in the last commited transaction.

undo_manager :

dia_undo_manager_redo_transaction ()

void        dia_undo_manager_redo_transaction
                                            (DiaUndoManager *undo_manager);

undo_manager :

dia_undo_manager_in_transaction ()

gboolean    dia_undo_manager_in_transaction (DiaUndoManager *undo_manager);

This function returns TRUE if there is an open transaction.

undo_manager :
Returns :

dia_undo_manager_can_undo ()

gboolean    dia_undo_manager_can_undo       (DiaUndoManager *undo_manager);

undo_manager :
Returns : TRUE if there are transactions that can be undone.

dia_undo_manager_can_redo ()

gboolean    dia_undo_manager_can_redo       (DiaUndoManager *undo_manager);

undo_manager :
Returns : TRUE if there are transactions that can be redone.

DiaUndoAction

typedef struct {
	DiaUndoFunc	undo;
	DiaUndoFunc	redo;
	GDestroyNotify	destroy;
} DiaUndoAction;


dia_undo_action_new ()

DiaUndoAction* dia_undo_action_new          (gsize sizeof_undo_action,
                                             DiaUndoFunc undo,
                                             DiaUndoFunc redo,
                                             GDestroyNotify destroy);

Create a new DiaUndoAction. DiaUndoAction is the object that is passed to the UndoManager. This "class" is normally subclassed, so specific attributes can be stored (this struct is an "abstract class").

sizeof_undo_action : Size of the real undo entry
undo : function called on an undo operation
redo : function called in a redo operation
destroy : function called to free the resources held by this undo entry
Returns :

dia_undo_action_undo ()

void        dia_undo_action_undo            (DiaUndoAction *action);

action :

dia_undo_action_redo ()

void        dia_undo_action_redo            (DiaUndoAction *action);

action :

dia_undo_action_destroy ()

void        dia_undo_action_destroy         (DiaUndoAction *action);

action :

Signals

The "add-undo-action" signal

void        user_function                  (DiaUndoManager *diaundomanager,
                                            gpointer arg1,
                                            gpointer user_data);

diaundomanager :the object which received the signal.
arg1 :
user_data :user data set when the signal handler was connected.

The "begin-transaction" signal

void        user_function                  (DiaUndoManager *diaundomanager,
                                            gpointer user_data);

diaundomanager :the object which received the signal.
user_data :user data set when the signal handler was connected.

The "commit-transaction" signal

void        user_function                  (DiaUndoManager *diaundomanager,
                                            gpointer user_data);

diaundomanager :the object which received the signal.
user_data :user data set when the signal handler was connected.

The "discard-transaction" signal

void        user_function                  (DiaUndoManager *diaundomanager,
                                            gpointer user_data);

diaundomanager :the object which received the signal.
user_data :user data set when the signal handler was connected.

The "redo-transaction" signal

void        user_function                  (DiaUndoManager *diaundomanager,
                                            gpointer user_data);

diaundomanager :the object which received the signal.
user_data :user data set when the signal handler was connected.

The "undo-transaction" signal

void        user_function                  (DiaUndoManager *diaundomanager,
                                            gpointer user_data);

diaundomanager :the object which received the signal.
user_data :user data set when the signal handler was connected.

See Also

DiaCanvas