1 /* Copyright (C) 2019 Red Hat, Inc. 2 * 3 * This library is free software; you can redistribute it and/or 4 * modify it under the terms of the GNU Lesser General Public 5 * License as published by the Free Software Foundation; either 6 * version 2 of the License, or (at your option) any later version. 7 * 8 * This library is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public 14 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 17 #ifndef __GTK_TEXT_HISTORY_PRIVATE_H__ 18 #define __GTK_TEXT_HISTORY_PRIVATE_H__ 19 20 #include <glib-object.h> 21 22 G_BEGIN_DECLS 23 24 #define GTK_TYPE_TEXT_HISTORY (gtk_text_history_get_type()) 25 26 typedef struct _GtkTextHistoryFuncs GtkTextHistoryFuncs; 27 28 G_DECLARE_FINAL_TYPE (GtkTextHistory, gtk_text_history, GTK, TEXT_HISTORY, GObject) 29 30 struct _GtkTextHistoryFuncs 31 { 32 void (*change_state) (gpointer funcs_data, 33 gboolean is_modified, 34 gboolean can_undo, 35 gboolean can_redo); 36 void (*insert) (gpointer funcs_data, 37 guint begin, 38 guint end, 39 const char *text, 40 guint len); 41 void (*delete) (gpointer funcs_data, 42 guint begin, 43 guint end, 44 const char *expected_text, 45 guint len); 46 void (*select) (gpointer funcs_data, 47 int selection_insert, 48 int selection_bound); 49 }; 50 51 GtkTextHistory *gtk_text_history_new (const GtkTextHistoryFuncs *funcs, 52 gpointer funcs_data); 53 void gtk_text_history_begin_user_action (GtkTextHistory *self); 54 void gtk_text_history_end_user_action (GtkTextHistory *self); 55 void gtk_text_history_begin_irreversible_action (GtkTextHistory *self); 56 void gtk_text_history_end_irreversible_action (GtkTextHistory *self); 57 gboolean gtk_text_history_get_can_undo (GtkTextHistory *self); 58 gboolean gtk_text_history_get_can_redo (GtkTextHistory *self); 59 void gtk_text_history_undo (GtkTextHistory *self); 60 void gtk_text_history_redo (GtkTextHistory *self); 61 guint gtk_text_history_get_max_undo_levels (GtkTextHistory *self); 62 void gtk_text_history_set_max_undo_levels (GtkTextHistory *self, 63 guint max_undo_levels); 64 void gtk_text_history_modified_changed (GtkTextHistory *self, 65 gboolean modified); 66 void gtk_text_history_selection_changed (GtkTextHistory *self, 67 int selection_insert, 68 int selection_bound); 69 void gtk_text_history_text_inserted (GtkTextHistory *self, 70 guint position, 71 const char *text, 72 int len); 73 void gtk_text_history_text_deleted (GtkTextHistory *self, 74 guint begin, 75 guint end, 76 const char *text, 77 int len); 78 gboolean gtk_text_history_get_enabled (GtkTextHistory *self); 79 void gtk_text_history_set_enabled (GtkTextHistory *self, 80 gboolean enabled); 81 82 G_END_DECLS 83 84 #endif /* __GTK_TEXT_HISTORY_PRIVATE_H__ */ 85