31#ifndef DT_COMMON_UNDO_H
32#define DT_COMMON_UNDO_H
95 void (*free_data)(gpointer data));
_lib_location_type_t type
void dt_undo_disable_next(dt_undo_t *self)
int dt_redo_list_length(dt_undo_t *self, uint32_t filter)
dt_undo_t * dt_undo_get_global(void)
void dt_undo_do_redo(dt_undo_t *self, uint32_t filter)
gboolean dt_is_redo_list_populated(dt_undo_t *self, uint32_t filter)
void dt_undo_end_group(dt_undo_t *self)
int dt_undo_list_length(dt_undo_t *self, uint32_t filter)
How many records match filter, so a caller can tell a one-record undo from a batch of a thousand....
void dt_undo_cleanup(dt_undo_t *self)
void dt_undo_clear(dt_undo_t *self, uint32_t filter)
void dt_undo_iterate_internal(dt_undo_t *self, uint32_t filter, gpointer user_data, void(*apply)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item))
void dt_undo_iterate(dt_undo_t *self, uint32_t filter, gpointer user_data, void(*apply)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item))
void dt_undo_start_group(dt_undo_t *self, dt_undo_type_t type)
void dt_undo_do_undo(dt_undo_t *self, uint32_t filter)
dt_undo_t * dt_undo_init(void)
void dt_undo_record(dt_undo_t *self, gpointer user_data, dt_undo_type_t type, dt_undo_data_t data, void(*undo)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item, dt_undo_action_t action, GList **imgs), void(*free_data)(gpointer data))
gboolean dt_is_undo_list_populated(dt_undo_t *self, uint32_t filter)