gimpclone.h 2.75 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* The GIMP -- an image manipulation program
 * Copyright (C) 1995 Spencer Kimball and Peter Mattis
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Elliot Lee's avatar
Elliot Lee committed
17
 */
18

19
20
#ifndef __GIMP_CLONE_H__
#define __GIMP_CLONE_H__
21
22


23
#include "gimppaintcore.h"
24
#include "gimppaintoptions.h"
Elliot Lee's avatar
Elliot Lee committed
25
26


27
typedef enum /*< skip >*/ /*< pdb-skip >*/
Manish Singh's avatar
Manish Singh committed
28
{
29
30
31
32
  ALIGN_NO,
  ALIGN_YES,
  ALIGN_REGISTERED
} AlignType;
Manish Singh's avatar
Manish Singh committed
33

34

35
36
37
38
39
40
#define GIMP_TYPE_CLONE            (gimp_clone_get_type ())
#define GIMP_CLONE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_CLONE, GimpClone))
#define GIMP_CLONE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_CLONE, GimpCloneClass))
#define GIMP_IS_CLONE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_CLONE))
#define GIMP_IS_CLONE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_CLONE))
#define GIMP_CLONE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_CLONE, GimpCloneClass))
41
42


43
44
typedef struct _GimpClone      GimpClone;
typedef struct _GimpCloneClass GimpCloneClass;
45

46
struct _GimpClone
47
{
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  GimpPaintCore parent_instance;

  gboolean      set_source;

  GimpDrawable *src_drawable;
  gint          src_x;
  gint          src_y;

  void (* init_callback)      (GimpClone *clone,
                               gpointer   data);
  void (* finish_callback)    (GimpClone *clone,
                               gpointer   data);
  void (* pretrace_callback)  (GimpClone *clone,
                               gpointer   data);
  void (* posttrace_callback) (GimpClone *clone,
                               gpointer   data);

  gpointer callback_data;
66
67
};

68
struct _GimpCloneClass
69
{
70
  GimpPaintCoreClass parent_class;
71
72
73
};


74
typedef struct _GimpCloneOptions GimpCloneOptions;
75

76
struct _GimpCloneOptions
77
{
78
  GimpPaintOptions  paint_options;
79

80
81
82
  CloneType         type;
  CloneType         type_d;
  GtkWidget        *type_w[2];  /* 2 radio buttons */
83

84
85
86
  AlignType         aligned;
  AlignType         aligned_d;
  GtkWidget        *aligned_w[3];  /* 3 radio buttons */
87
};
88
89


90
91
92
GType              gimp_clone_get_type    (void) G_GNUC_CONST;

GimpCloneOptions * gimp_clone_options_new (void);
93

Elliot Lee's avatar
Elliot Lee committed
94

95
#endif  /*  __GIMP_CLONE_H__  */