1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 
3 /*
4  *  GThumb
5  *
6  *  Copyright (C) 2008-2009 Free Software Foundation, Inc.
7  *
8  *  This program is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2 of the License, or
11  *  (at your option) any later version.
12  *
13  *  This program is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef GTH_DUPLICABLE_H
23 #define GTH_DUPLICABLE_H
24 
25 #include <glib.h>
26 #include <glib-object.h>
27 
28 G_BEGIN_DECLS
29 
30 #define GTH_TYPE_DUPLICABLE               (gth_duplicable_get_type ())
31 #define GTH_DUPLICABLE(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTH_TYPE_DUPLICABLE, GthDuplicable))
32 #define GTH_IS_DUPLICABLE(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTH_TYPE_DUPLICABLE))
33 #define GTH_DUPLICABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTH_TYPE_DUPLICABLE, GthDuplicableInterface))
34 
35 typedef struct _GthDuplicable GthDuplicable;
36 typedef struct _GthDuplicableInterface GthDuplicableInterface;
37 
38 struct _GthDuplicableInterface {
39 	GTypeInterface parent_iface;
40 
41 	GObject * (*duplicate) (GthDuplicable *self);
42 };
43 
44 GType      gth_duplicable_get_type   (void);
45 GObject *  gth_duplicable_duplicate  (GthDuplicable *self);
46 
47 G_END_DECLS
48 
49 #endif /* GTH_DUPLICABLE_H */
50