summaryrefslogtreecommitdiff
path: root/src/undo.h
diff options
context:
space:
mode:
authorSimeon Simeonov2018-02-26 11:23:00 +0100
committerSimeon Simeonov2018-02-26 11:23:00 +0100
commit0b3cbf57875fd692e4ba0b336fefa4bee1ed00dc (patch)
treeaf916a30553c78ce9d4f2d8658656a175c5b6921 /src/undo.h
Initial commit for sylpheed 3.7.0
Diffstat (limited to 'src/undo.h')
-rw-r--r--src/undo.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/undo.h b/src/undo.h
new file mode 100644
index 0000000..1376d1e
--- /dev/null
+++ b/src/undo.h
@@ -0,0 +1,80 @@
1/*
2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2001 Hiroyuki Yamamoto
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 */
19
20/* code ported from gedit */
21
22#ifndef __UNDO_H__
23#define __UNDO_H__
24
25#include <glib.h>
26#include <gtk/gtktextview.h>
27#include <gtk/gtkitemfactory.h>
28
29typedef enum
30{
31 UNDO_ACTION_INSERT,
32 UNDO_ACTION_DELETE,
33 UNDO_ACTION_REPLACE_INSERT,
34 UNDO_ACTION_REPLACE_DELETE,
35} UndoAction;
36
37typedef enum
38{
39 UNDO_STATE_TRUE,
40 UNDO_STATE_FALSE,
41 UNDO_STATE_UNCHANGED,
42 UNDO_STATE_REFRESH,
43} UndoState;
44
45typedef struct _UndoMain UndoMain;
46
47typedef void (*UndoChangeStateFunc) (UndoMain *undostruct,
48 gint undo_state,
49 gint redo_state,
50 gpointer data);
51
52struct _UndoMain
53{
54 GtkTextView *textview;
55
56 GList *undo;
57 GList *redo;
58
59 UndoChangeStateFunc change_state_func;
60 gpointer change_state_data;
61
62 gboolean undo_state : 1;
63 gboolean redo_state : 1;
64
65 gint paste;
66};
67
68UndoMain *undo_init (GtkWidget *text);
69void undo_destroy (UndoMain *undostruct);
70
71void undo_set_change_state_func (UndoMain *undostruct,
72 UndoChangeStateFunc func,
73 gpointer data);
74
75void undo_undo (UndoMain *undostruct);
76void undo_redo (UndoMain *undostruct);
77void undo_block (UndoMain *undostruct);
78void undo_unblock (UndoMain *undostruct);
79
80#endif /* __UNDO_H__ */