GOUndo

GOUndo

Synopsis

                    GOUndo;
                    GOUndoBinary;
                    GOUndoBinaryClass;
void                (*GOUndoBinaryFunc)                 (gpointer a,
                                                         gpointer b,
                                                         gpointer data);
                    GOUndoClass;
                    GOUndoGroup;
                    GOUndoGroupClass;
                    GOUndoUnary;
                    GOUndoUnaryClass;
void                (*GOUndoUnaryFunc)                  (gpointer a,
                                                         gpointer data);
GOUndo *            go_undo_binary_new                  (gpointer a,
                                                         gpointer b,
                                                         GOUndoBinaryFunc undo,
                                                         GFreeFunc fa,
                                                         GFreeFunc fb);
GOUndo *            go_undo_combine                     (GOUndo *a,
                                                         GOUndo *b);
void                go_undo_group_add                   (GOUndoGroup *g,
                                                         GOUndo *u);
GOUndoGroup *       go_undo_group_new                   (void);
GOUndo *            go_undo_unary_new                   (gpointer a,
                                                         GOUndoUnaryFunc undo,
                                                         GFreeFunc fa);
void                go_undo_undo                        (GOUndo *u);
void                go_undo_undo_with_data              (GOUndo *u,
                                                         gpointer data);

Object Hierarchy

  GObject
   +----GOUndo
         +----GOUndoBinary
         +----GOUndoGroup
         +----GOUndoUnary
  GObject
   +----GOUndo
         +----GOUndoBinary
  GObject
   +----GOUndo
         +----GOUndoGroup
  GObject
   +----GOUndo
         +----GOUndoUnary

Description

Details

GOUndo

typedef struct _GOUndo GOUndo;


GOUndoBinary

typedef struct _GOUndoBinary GOUndoBinary;


GOUndoBinaryClass

typedef struct {
	GOUndoClass base;
} GOUndoBinaryClass;

GOUndoClass base;

base class.

GOUndoBinaryFunc ()

void                (*GOUndoBinaryFunc)                 (gpointer a,
                                                         gpointer b,
                                                         gpointer data);

a :

b :

data :


GOUndoClass

typedef struct {
	GObjectClass base;

	void (*undo) (GOUndo *u, gpointer data);
} GOUndoClass;

GObjectClass base;

base class.

undo ()

undo. };

GOUndoGroup

typedef struct _GOUndoGroup GOUndoGroup;


GOUndoGroupClass

typedef struct {
	GOUndoClass base;
} GOUndoGroupClass;

GOUndoClass base;

base class.

GOUndoUnary

typedef struct _GOUndoUnary GOUndoUnary;


GOUndoUnaryClass

typedef struct {
	GOUndoClass base;
} GOUndoUnaryClass;

GOUndoClass base;

base class.

GOUndoUnaryFunc ()

void                (*GOUndoUnaryFunc)                  (gpointer a,
                                                         gpointer data);

a :

data :


go_undo_binary_new ()

GOUndo *            go_undo_binary_new                  (gpointer a,
                                                         gpointer b,
                                                         GOUndoBinaryFunc undo,
                                                         GFreeFunc fa,
                                                         GFreeFunc fb);

This function creates a new undo object for undo operations of two arguments. (In addition, an undo-time argument is added for context.)

a :

first argument for undo operation

b :

second argument for undo operation

undo :

function to call with arguments a and b for undo. [scope async]

fa :

optional function to free a. [scope async]

fb :

optional function to free b. [scope async]

Returns :

a new undo object. [transfer full]

go_undo_combine ()

GOUndo *            go_undo_combine                     (GOUndo *a,
                                                         GOUndo *b);

This function takes ownership of the argument references and gives ownership of the result to the caller. Either argument may be NULL in which case the other is returned.

a :

optional first undo operation. [transfer full]

b :

optional last undo operation. [transfer full]

Returns :

the combination of two undo operations. [transfer full]

go_undo_group_add ()

void                go_undo_group_add                   (GOUndoGroup *g,
                                                         GOUndo *u);

This function adds u to g.

g :

undo group

u :

undo object

go_undo_group_new ()

GOUndoGroup *       go_undo_group_new                   (void);

This function creates a new undo group for compounding undo objects.

Returns :

a new, empty undo group.

go_undo_unary_new ()

GOUndo *            go_undo_unary_new                   (gpointer a,
                                                         GOUndoUnaryFunc undo,
                                                         GFreeFunc fa);

This function creates a new undo object for undo operations of one argument. (In addition, an undo-time argument is added for context.)

a :

argument for undo operation

undo :

function to call with argument a for undo. [scope async]

fa :

optional function to free a. [scope async]

Returns :

a new undo object. [transfer full]

go_undo_undo ()

void                go_undo_undo                        (GOUndo *u);

Execute the stored undo operation.

u :

undo object

go_undo_undo_with_data ()

void                go_undo_undo_with_data              (GOUndo *u,
                                                         gpointer data);

Execute the stored undo operation. data is supplied to the undo operation as an extra argument. It is meant not to affect the undo operation in any way, but rather supply a context through which progress and errors can be reported.

u :

undo object

data :

user data