GtkSourceUndoManager: GtkSourceView 3 Reference Manual

## GtkSourceUndoManager GtkSourceUndoManager — Undo manager interface for GtkSourceView |

## Functions

gboolean | gtk_source_undo_manager_can_undo ()
gboolean | gtk_source_undo_manager_can_redo ()
void | gtk_source_undo_manager_undo ()
void | gtk_source_undo_manager_redo ()
void | gtk_source_undo_manager_begin_not_undoable_action ()
void | gtk_source_undo_manager_end_not_undoable_action ()
void | gtk_source_undo_manager_can_undo_changed ()
void | gtk_source_undo_manager_can_redo_changed ()

## Types and Values

| GtkSourceUndoManager

## Includes

    #include <gtksourceview/gtksource.h>

## Description

For most uses it isn't needed to use GtkSourceUndoManager. GtkSourceBuffer already provides an API and a default implementation for the undo/redo.

For specific needs, the GtkSourceUndoManager interface can be implemented to provide custom undo management. Use `gtk_source_buffer_set_undo_manager()` to install a custom undo manager for a particular GtkSourceBuffer.

Use `gtk_source_undo_manager_can_undo_changed()` and `gtk_source_undo_manager_can_redo_changed()` when respectively the undo state or redo state of the undo stack has changed.

## Functions

### gtk_source_undo_manager_can_undo ()

    gboolean
    gtk_source_undo_manager_can_undo (GtkSourceUndoManager *manager);

Get whether there are undo operations available.

#### Parameters

manager | a GtkSourceUndoManager. |

#### Returns

`TRUE` if there are undo operations available, `FALSE` otherwise

Since: 2.10

### gtk_source_undo_manager_can_redo ()

    gboolean
    gtk_source_undo_manager_can_redo (GtkSourceUndoManager *manager);

Get whether there are redo operations available.

#### Parameters

manager | a GtkSourceUndoManager. |

#### Returns

`TRUE` if there are redo operations available, `FALSE` otherwise

Since: 2.10

### gtk_source_undo_manager_undo ()

    void
    gtk_source_undo_manager_undo (GtkSourceUndoManager *manager);

Perform a single undo. Calling this function when there are no undo operations available is an error. Use `gtk_source_undo_manager_can_undo()` to find out if there are undo operations available.

#### Parameters

manager | a GtkSourceUndoManager. |

Since: 2.10

### gtk_source_undo_manager_redo ()

    void
    gtk_source_undo_manager_redo (GtkSourceUndoManager *manager);

Perform a single redo. Calling this function when there are no redo operations available is an error. Use `gtk_source_undo_manager_can_redo()` to find out if there are redo operations available.

#### Parameters

manager | a GtkSourceUndoManager. |

Since: 2.10

### gtk_source_undo_manager_begin_not_undoable_action ()

    void
    gtk_source_undo_manager_begin_not_undoable_action
                                   (GtkSourceUndoManager *manager);

Begin a not undoable action on the buffer. All changes between this call and the call to `gtk_source_undo_manager_end_not_undoable_action()` cannot be undone. This function should be re-entrant.

#### Parameters

manager | a GtkSourceUndoManager. |

Since: 2.10

### gtk_source_undo_manager_end_not_undoable_action ()

    void
    gtk_source_undo_manager_end_not_undoable_action
                                   (GtkSourceUndoManager *manager);

Ends a not undoable action on the buffer.

#### Parameters

manager | a GtkSourceUndoManager. |

Since: 2.10

### gtk_source_undo_manager_can_undo_changed ()

    void
    gtk_source_undo_manager_can_undo_changed
                                   (GtkSourceUndoManager *manager);

Emits the “can-undo-changed” signal.

#### Parameters

manager | a GtkSourceUndoManager. |

Since: 2.10

### gtk_source_undo_manager_can_redo_changed ()

    void
    gtk_source_undo_manager_can_redo_changed
                                   (GtkSourceUndoManager *manager);

Emits the “can-redo-changed” signal.

#### Parameters

manager | a GtkSourceUndoManager. |

Since: 2.10

## Types and Values

### GtkSourceUndoManager

    typedef struct _GtkSourceUndoManager GtkSourceUndoManager;

## See Also

GtkTextBuffer, GtkSourceView