## 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 ()

## Signals

void | can-redo-changed | Action
void | can-undo-changed | Action

## Types and Values

| GtkSourceUndoManager

## Object Hierarchy

        GInterface
        ╰── GtkSourceUndoManager

## Prerequisites

GtkSourceUndoManager requires GObject.

## 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;

## Signal Details

### The `“can-redo-changed”` signal

    void
    user_function (GtkSourceUndoManager *manager,
                   gpointer              user_data)

Emitted when the ability to redo has changed.

#### Parameters

manager | The GtkSourceUndoManager |
user_data | user data set when the signal handler was connected. |

Flags: Action

Since: 2.10

### The `“can-undo-changed”` signal

    void
    user_function (GtkSourceUndoManager *manager,
                   gpointer              user_data)

Emitted when the ability to undo has changed.

#### Parameters

manager | The GtkSourceUndoManager |
user_data | user data set when the signal handler was connected. |

Flags: Action

Since: 2.10

## See Also

GtkTextBuffer, GtkSourceView