cosmetix
[k8lowj.git] / src / undo.h
blobc3bb1daa9c52a1b276c4f8396ad7681281a0a69d
1 /* logjam - a GTK client for LiveJournal.
2 * Copyright (C) 2000-2003 Evan Martin <evan@livejournal.com>
3 * Ported to LogJam by Ari Pollak <ari@debian.org>
5 * This file is based on gedit-undo-manager.h from gEdit 2.2.1.
6 * Original authors:
7 * Copyright (C) 1998, 1999 Alex Roberts, Evan Lawrence
8 * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi
9 */
11 #ifndef __LOGJAM_UNDOMGR_H__
12 #define __LOGJAM_UNDOMGR_H__
14 #define TYPE_UNDOMGR (undomgr_get_type ())
15 #define UNDOMGR(obj) (GTK_CHECK_CAST ((obj), TYPE_UNDOMGR, UndoMgr))
16 #define UNDOMGR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TYPE_UNDOMGR, UndoMgrClass))
17 #define IS_UNDOMGR(obj) (GTK_CHECK_TYPE ((obj), TYPE_UNDOMGR))
18 #define IS_UNDOMGR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), TYPE_UNDOMGR))
19 #define UNDOMGR_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), TYPE_UNDOMGR, UndoMgrClass))
22 typedef struct _UndoMgrPrivate UndoMgrPrivate;
25 typedef struct {
26 GObject base;
27 UndoMgrPrivate *priv;
28 } UndoMgr;
31 typedef struct {
32 GObjectClass parent_class;
33 /* Signals */
34 void (*can_undo) (UndoMgr *um, gboolean can_undo);
35 void (*can_redo) (UndoMgr *um, gboolean can_redo);
36 } UndoMgrClass;
39 GType undomgr_get_type (void) G_GNUC_CONST;
41 extern GObject *undomgr_new (void);
42 extern void undomgr_attach (UndoMgr *um, GtkWidget *widget);
43 extern void undomgr_detach (UndoMgr *um, GtkWidget *widget);
45 /* Clears the stack of undo actions: */
46 extern void undomgr_reset (UndoMgr *um);
48 extern gboolean undomgr_can_undo (const UndoMgr *um);
49 extern gboolean undomgr_can_redo (const UndoMgr *um);
51 extern void undomgr_undo (UndoMgr *um);
52 extern void undomgr_redo (UndoMgr *um);
54 extern void undomgr_begin_not_undoable_action (UndoMgr *um);
55 extern void undomgr_end_not_undoable_action (UndoMgr *um);
58 #endif