Hi all,

I've attached a patch file that enables the rotate tool (ex of
transform tool) in the 1.3 branch. Could someone have a look at
it and apply it, please? 

Also, I've been noticing some differences in whitespace between
stuff I do here and how it eventually appears in the repository -
The appropriate section in my .emacs is below and is invoked
whenever I open a file in the GIMP CVS hierarchy. Could someone
let me know what they use, if it's different?

Cheers,
Dave.

(defun gimp-c-stuff ()
;        "Set some defaults for c-mode"
        (interactive)
        (c-mode)
    (turn-on-font-lock)
        (c-set-style "gnu")
        (setq c-basic-offset 2)
        (setq c-brace-imaginary-offset 2))

-- 
  .------------------------------.
 /          David Neary,          \
|     E-Mail [EMAIL PROTECTED]     | 
 \     Phone +353-1-872-0654      /
  `------------------------------'
Index: app/pixmaps2.h
===================================================================
RCS file: /cvs/gnome/gimp/app/pixmaps2.h,v
retrieving revision 1.12
diff -u -r1.12 pixmaps2.h
--- app/pixmaps2.h      2001/04/07 14:55:38     1.12
+++ app/pixmaps2.h      2001/04/21 15:34:42
@@ -690,7 +690,6 @@
 /*  Image name: rotate  */
 
 
-/*
 #define rotate_width 22
 #define rotate_height 22
 static char *rotate_bits [] =
@@ -718,7 +717,6 @@
   "....aaa....eaee.......",
   "............ee........"
 };
-*/
 /*  GIMP icon image format -- S. Kimball, P. Mattis  */
 /*  Image name: scale  */
 
Index: app/tools/Makefile.am
===================================================================
RCS file: /cvs/gnome/gimp/app/tools/Makefile.am,v
retrieving revision 1.36
diff -u -r1.36 Makefile.am
--- app/tools/Makefile.am       2001/04/19 13:01:44     1.36
+++ app/tools/Makefile.am       2001/04/21 15:34:56
@@ -62,8 +62,8 @@
 ##     gimpperspectivetool.h   \
        gimprectselecttool.c    \
        gimprectselecttool.h    \
-##     gimprotatetool.c        \
-##     gimprotatetool.h        \
+       gimprotatetool.c        \
+       gimprotatetool.h        \
        gimpscaletool.c         \
        gimpscaletool.h         \
        gimpselectiontool.c     \
Index: app/tools/gimprotatetool.c
===================================================================
RCS file: /cvs/gnome/gimp/app/tools/gimprotatetool.c,v
retrieving revision 1.41
diff -u -r1.41 gimprotatetool.c
--- app/tools/gimprotatetool.c  2001/02/24 19:29:47     1.41
+++ app/tools/gimprotatetool.c  2001/04/21 15:34:59
@@ -25,26 +25,32 @@
 
 #include "apptypes.h"
 
-#include "draw_core.h"
-#include "drawable.h"
+#include "paint-funcs/paint-funcs.h"
+#include "gui/info-dialog.h"
+
+#include "cursorutil.h"
+#include "floating_sel.h"
 #include "gdisplay.h"
+#include "gdisplay_ops.h"
 #include "gimage_mask.h"
+#include "gimplayer.h"
 #include "gimpimage.h"
 #include "gimpprogress.h"
-#include "info_dialog.h"
 #include "selection.h"
-#include "tile_manager.h"
 #include "undo.h"
+#include "path_transform.h"
+#include "pixel_region.h"
+#include "tile_manager.h"
 
-#include "rotate_tool.h"
+#include "gimprotatetool.h"
+#include "tool_manager.h"
 #include "tool_options.h"
-#include "tools.h"
-#include "transform_core.h"
-#include "transform_tool.h"
 
 #include "libgimp/gimpintl.h"
 
+#include "pixmaps2.h"
 
+
 /*  index into trans_info array  */
 #define ANGLE        0
 #define REAL_ANGLE   1
@@ -55,21 +61,26 @@
 #define FIFTEEN_DEG  (G_PI / 12.0)
 
 
-/*  forward function declarations  */
-static TileManager * rotate_tool_transform (Tool           *tool,
-                                           GDisplay       *gdisp,
-                                           TransformState  state);
-
-static void          rotate_tool_recalc    (Tool           *tool,
-                                           GDisplay       *gdisp);
-static void          rotate_tool_motion    (Tool           *tool,
-                                           GDisplay       *gdisp);
-static void          rotate_info_update    (Tool           *tool);
-
-static void          rotate_angle_changed  (GtkWidget      *entry,
-                                           gpointer        data);
-static void          rotate_center_changed (GtkWidget      *entry,
-                                           gpointer        data);
+/*  local function declarations  */
+static void          gimp_rotate_tool_class_init  (GimpRotateToolClass *klass);
+static void          gimp_rotate_tool_init        (GimpRotateTool      *rotate_tool);
+
+static void          gimp_rotate_tool_destroy     (GtkObject         *object);
+
+static TileManager * gimp_rotate_tool_transform (GimpTransformTool *transform_tool,
+                                                GDisplay          *gdisp,
+                                                TransformState     state);
+
+static void          rotate_tool_recalc         (GimpTool       *tool,
+                                                GDisplay       *gdisp);
+static void          rotate_tool_motion         (GimpTool       *tool,
+                                                GDisplay       *gdisp);
+static void          rotate_info_update         (GimpTool       *tool);
+
+static void          rotate_angle_changed       (GtkWidget      *entry,
+                                                gpointer        data);
+static void          rotate_center_changed      (GtkWidget      *entry,
+                                                gpointer        data);
 
 
 /*  variables local to this file  */
@@ -79,24 +90,154 @@
 /*  needed for size update  */
 static GtkWidget *sizeentry = NULL;
 
+static ToolOptions            *rotate_options;
+static GimpTransformToolClass *parent_class = NULL;
+
+
+/*  public functions  */
+
+void 
+gimp_rotate_tool_register (void)
+{
+  tool_manager_register_tool (GIMP_TYPE_ROTATE_TOOL,
+                              FALSE,
+                             "gimp:rotate_tool",
+                             _("Rotate Tool"),
+                             _("Rotate the layer or selection"),
+                             N_("/Tools/Transform Tools/Rotate"), "<shift>R",
+                             NULL, "tools/rotate.html",
+                             (const gchar **) rotate_bits);
+}
+
+GtkType
+gimp_rotate_tool_get_type (void)
+{
+  static GtkType tool_type = 0;
+
+  if (! tool_type)
+    {
+      GtkTypeInfo tool_info =
+      {
+        "GimpRotateTool",
+        sizeof (GimpRotateTool),
+        sizeof (GimpRotateToolClass),
+        (GtkClassInitFunc) gimp_rotate_tool_class_init,
+        (GtkObjectInitFunc) gimp_rotate_tool_init,
+        /* reserved_1 */ NULL,
+        /* reserved_2 */ NULL,
+        (GtkClassInitFunc) NULL,
+      };
+
+      tool_type = gtk_type_unique (GIMP_TYPE_TRANSFORM_TOOL, &tool_info);
+    }
+
+  return tool_type;
+}
+
+TileManager *
+gimp_rotate_tool_rotate (GimpImage    *gimage,
+                        GimpDrawable *drawable,
+                        GDisplay     *gdisp,
+                        gdouble       angle,
+                        TileManager  *float_tiles,
+                        gboolean      interpolation,
+                        GimpMatrix3   matrix)
+{
+  GimpProgress *progress;
+  TileManager  *ret;
+
+  progress = progress_start (gdisp, _("Rotating..."), FALSE, NULL, NULL);
+
+  ret = gimp_transform_tool_do (gimage, drawable, float_tiles,
+                               interpolation, matrix,
+                               progress ? progress_update_and_flush :
+                               (GimpProgressFunc) NULL,
+                               progress);
+
+  if (progress)
+    progress_end (progress);
+
+  return ret;
+}
+
+/* private function definitions */
+
+static void
+gimp_rotate_tool_class_init (GimpRotateToolClass *klass)
+{
+  GtkObjectClass         *object_class;
+  GimpTransformToolClass *trans_class;
+
+  object_class = (GtkObjectClass *) klass;
+  trans_class  = (GimpTransformToolClass *) klass;
+
+  parent_class = gtk_type_class (GIMP_TYPE_TRANSFORM_TOOL);
+
+  object_class->destroy     = gimp_rotate_tool_destroy;
+
+  trans_class->transform    = gimp_rotate_tool_transform;
+}
+
+static void
+gimp_rotate_tool_init (GimpRotateTool *rotate_tool)
+{
+  GimpTool          *tool;
+  GimpTransformTool *tr_tool;
+
+  tool    = GIMP_TOOL (rotate_tool);
+  tr_tool = GIMP_TRANSFORM_TOOL (rotate_tool);
 
+  /*  The tool options  - no options, so leave this as default. */
+  if (! rotate_options)
+    {
+      rotate_options = tool_options_new ();
+
+      tool_manager_register_tool_options (GIMP_TYPE_ROTATE_TOOL,
+                                         (ToolOptions *) rotate_options);
+    }
+
+  tool->tool_cursor   = GIMP_ROTATE_TOOL_CURSOR;
+
+  tr_tool->trans_info[ANGLE]      = 0.0;
+  tr_tool->trans_info[REAL_ANGLE] = 0.0;
+  tr_tool->trans_info[CENTER_X]   = 0.0;
+  tr_tool->trans_info[CENTER_Y]   = 0.0;
+
+  /*  assemble the transformation matrix  */
+  gimp_matrix3_identity (tr_tool->transform);
+
+}
+
+static void
+gimp_rotate_tool_destroy (GtkObject *object)
+{
+  GimpRotateTool *rotate_tool;
+  GimpTool       *tool;
+
+  rotate_tool = GIMP_ROTATE_TOOL (object);
+  tool        = GIMP_TOOL (rotate_tool);
+
+  if (GTK_OBJECT_CLASS (parent_class)->destroy)
+    GTK_OBJECT_CLASS (parent_class)->destroy (object);
+}
+
 static TileManager *
-rotate_tool_transform (Tool           *tool,
-                      GDisplay       *gdisp,
-                      TransformState  state)
+gimp_rotate_tool_transform (GimpTransformTool  *transform_tool,
+                           GDisplay           *gdisp,
+                           TransformState      state)
 {
-  TransformCore *transform_core;
+  GimpTool      *tool;
   GtkWidget     *widget;
   GtkWidget     *spinbutton2;
 
-  transform_core = (TransformCore *) tool->private;
+  tool = GIMP_TOOL (transform_tool);
 
   switch (state)
     {
     case TRANSFORM_INIT:
       angle_val = 0.0;
-      center_vals[0] = transform_core->cx;
-      center_vals[1] = transform_core->cy;
+      center_vals[0] = transform_tool->cx;
+      center_vals[1] = transform_tool->cy;
 
       if (!transform_info)
        {
@@ -159,9 +300,9 @@
                                             65536 + gdisp->gimage->height);
 
       gimp_size_entry_set_size (GIMP_SIZE_ENTRY (sizeentry), 0,
-                               transform_core->x1, transform_core->x2);
+                               transform_tool->x1, transform_tool->x2);
       gimp_size_entry_set_size (GIMP_SIZE_ENTRY (sizeentry), 1,
-                               transform_core->y1, transform_core->y2);
+                               transform_tool->y1, transform_tool->y2);
 
       gimp_size_entry_set_refval (GIMP_SIZE_ENTRY (sizeentry), 0,
                                  center_vals[0]);
@@ -172,10 +313,10 @@
 
       gtk_signal_handler_unblock_by_data (GTK_OBJECT (sizeentry), tool);
 
-      transform_core->trans_info[ANGLE] = angle_val;
-      transform_core->trans_info[REAL_ANGLE] = angle_val;
-      transform_core->trans_info[CENTER_X] = center_vals[0];
-      transform_core->trans_info[CENTER_Y] = center_vals[1];
+      transform_tool->trans_info[ANGLE] = angle_val;
+      transform_tool->trans_info[REAL_ANGLE] = angle_val;
+      transform_tool->trans_info[CENTER_X] = center_vals[0];
+      transform_tool->trans_info[CENTER_Y] = center_vals[1];
 
       return NULL;
       break;
@@ -191,60 +332,29 @@
 
     case TRANSFORM_FINISH:
       gtk_widget_set_sensitive (GTK_WIDGET (transform_info->shell), FALSE);
-      return rotate_tool_rotate (gdisp->gimage,
-                                gimp_image_active_drawable (gdisp->gimage),
-                                gdisp,
-                                transform_core->trans_info[ANGLE],
-                                transform_core->original,
-                                transform_tool_smoothing (),
-                                transform_core->transform);
+      return gimp_rotate_tool_rotate (gdisp->gimage,
+                                     gimp_image_active_drawable (gdisp->gimage),
+                                     gdisp,
+                                     transform_tool->trans_info[ANGLE],
+                                     transform_tool->original,
+                                     gimp_transform_tool_smoothing (),
+                                     transform_tool->transform);
       break;
     }
 
   return NULL;
 }
 
-Tool *
-tools_new_rotate_tool (void)
-{
-  Tool          *tool;
-  TransformCore *private;
-
-  tool = transform_core_new (ROTATE, TRUE);
-
-  tool->tool_cursor = GIMP_ROTATE_TOOL_CURSOR;
-
-  private = tool->private;
-
-  /*  set the rotation specific transformation attributes  */
-  private->trans_func = rotate_tool_transform;
-  private->trans_info[ANGLE]      = 0.0;
-  private->trans_info[REAL_ANGLE] = 0.0;
-  private->trans_info[CENTER_X]   = 0.0;
-  private->trans_info[CENTER_Y]   = 0.0;
-
-  /*  assemble the transformation matrix  */
-  gimp_matrix3_identity (private->transform);
-
-  return tool;
-}
-
-void
-tools_free_rotate_tool (Tool *tool)
-{
-  transform_core_free (tool);
-}
-
 static void
-rotate_info_update (Tool *tool)
+rotate_info_update (GimpTool *tool)
 {
-  TransformCore *transform_core;
+  GimpTransformTool *transform_tool;
 
-  transform_core = (TransformCore *) tool->private;
+  transform_tool = GIMP_TRANSFORM_TOOL (tool);
 
-  angle_val      = gimp_rad_to_deg (transform_core->trans_info[ANGLE]);
-  center_vals[0] = transform_core->cx;
-  center_vals[1] = transform_core->cy;
+  angle_val      = gimp_rad_to_deg (transform_tool->trans_info[ANGLE]);
+  center_vals[0] = transform_tool->cx;
+  center_vals[1] = transform_tool->cy;
 
   info_dialog_update (transform_info);
   info_dialog_popup (transform_info);
@@ -254,24 +364,26 @@
 rotate_angle_changed (GtkWidget *widget,
                      gpointer   data)
 {
-  Tool          *tool;
-  TransformCore *transform_core;
-  gdouble        value;
+  GimpTool          *tool;
+  GimpDrawTool      *draw_tool;
+  GimpTransformTool *transform_tool;
+  gdouble            value;
 
-  tool = (Tool *) data;
+  tool = (GimpTool *) data;
 
   if (tool)
     {
-      transform_core = (TransformCore *) tool->private;
+      transform_tool = GIMP_TRANSFORM_TOOL (tool);
+      draw_tool      = GIMP_DRAW_TOOL (tool);
 
       value = gimp_deg_to_rad (GTK_ADJUSTMENT (widget)->value);
 
-      if (value != transform_core->trans_info[ANGLE])
+      if (value != transform_tool->trans_info[ANGLE])
        {
-         draw_core_pause (transform_core->core, tool);      
-         transform_core->trans_info[ANGLE] = value;
+         gimp_draw_tool_pause (draw_tool);      
+         transform_tool->trans_info[ANGLE] = value;
          rotate_tool_recalc (tool, tool->gdisp);
-         draw_core_resume (transform_core->core, tool);
+         gimp_draw_tool_resume (draw_tool);
        }
     }
 }
@@ -280,58 +392,60 @@
 rotate_center_changed (GtkWidget *widget,
                       gpointer   data)
 {
-  Tool          *tool;
-  TransformCore *transform_core;
-  gint           cx;
-  gint           cy;
+  GimpTool          *tool;
+  GimpDrawTool      *draw_tool;
+  GimpTransformTool *transform_tool;
+  gint               cx;
+  gint               cy;
 
-  tool = (Tool *) data;
+  tool = (GimpTool *) data;
 
   if (tool)
     {
-      transform_core = (TransformCore *) tool->private;
+      transform_tool = GIMP_TRANSFORM_TOOL (tool);
+      draw_tool      = GIMP_DRAW_TOOL (tool);
 
       cx = RINT (gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (widget), 0));
       cy = RINT (gimp_size_entry_get_refval (GIMP_SIZE_ENTRY (widget), 1));
 
-      if ((cx != transform_core->cx) ||
-         (cy != transform_core->cy))
+      if ((cx != transform_tool->cx) ||
+         (cy != transform_tool->cy))
        {
-         draw_core_pause (transform_core->core, tool);      
-         transform_core->cx = cx;
-         transform_core->cy = cy;
+         gimp_draw_tool_pause (draw_tool);      
+         transform_tool->cx = cx;
+         transform_tool->cy = cy;
          rotate_tool_recalc (tool, tool->gdisp);
-         draw_core_resume (transform_core->core, tool);
+         gimp_draw_tool_resume (draw_tool);
        }
     }
 }
 
 static void
-rotate_tool_motion (Tool     *tool,
+rotate_tool_motion (GimpTool *tool,
                    GDisplay *gdisp)
 {
-  TransformCore *transform_core;
-  gdouble        angle1, angle2, angle;
-  gdouble        cx, cy;
-  gdouble        x1, y1, x2, y2;
+  GimpTransformTool *transform_tool;
+  gdouble            angle1, angle2, angle;
+  gdouble            cx, cy;
+  gdouble            x1, y1, x2, y2;
 
-  transform_core = (TransformCore *) tool->private;
+  transform_tool = GIMP_TRANSFORM_TOOL (tool);
 
-  if (transform_core->function == TRANSFORM_HANDLE_CENTER)
+  if (transform_tool->function == TRANSFORM_HANDLE_CENTER)
     {
-      transform_core->cx = transform_core->curx;
-      transform_core->cy = transform_core->cury;
+      transform_tool->cx = transform_tool->curx;
+      transform_tool->cy = transform_tool->cury;
 
       return;
     }
 
-  cx = transform_core->cx;
-  cy = transform_core->cy;
+  cx = transform_tool->cx;
+  cy = transform_tool->cy;
 
-  x1 = transform_core->curx - cx;
-  x2 = transform_core->lastx - cx;
-  y1 = cy - transform_core->cury;
-  y2 = cy - transform_core->lasty;
+  x1 = transform_tool->curx - cx;
+  x2 = transform_tool->lastx - cx;
+  y1 = cy - transform_tool->cury;
+  y2 = cy - transform_tool->lasty;
 
   /*  find the first angle  */
   angle1 = atan2 (y1, x1);
@@ -345,74 +459,48 @@
     angle = angle2 - ((angle1 < 0) ? 2.0 * G_PI + angle1 : angle1 - 2.0 * G_PI);
 
   /*  increment the transform tool's angle  */
-  transform_core->trans_info[REAL_ANGLE] += angle;
+  transform_tool->trans_info[REAL_ANGLE] += angle;
 
   /*  limit the angle to between 0 and 360 degrees  */
-  if (transform_core->trans_info[REAL_ANGLE] < - G_PI)
-    transform_core->trans_info[REAL_ANGLE] =
-      2.0 * G_PI - transform_core->trans_info[REAL_ANGLE];
-  else if (transform_core->trans_info[REAL_ANGLE] > G_PI)
-    transform_core->trans_info[REAL_ANGLE] =
-      transform_core->trans_info[REAL_ANGLE] - 2.0 * G_PI;
+  if (transform_tool->trans_info[REAL_ANGLE] < - G_PI)
+    transform_tool->trans_info[REAL_ANGLE] =
+      2.0 * G_PI - transform_tool->trans_info[REAL_ANGLE];
+  else if (transform_tool->trans_info[REAL_ANGLE] > G_PI)
+    transform_tool->trans_info[REAL_ANGLE] =
+      transform_tool->trans_info[REAL_ANGLE] - 2.0 * G_PI;
 
   /*  constrain the angle to 15-degree multiples if ctrl is held down  */
-  if (transform_core->state & GDK_CONTROL_MASK)
-    transform_core->trans_info[ANGLE] =
-      FIFTEEN_DEG * (int) ((transform_core->trans_info[REAL_ANGLE] +
+  if (transform_tool->state & GDK_CONTROL_MASK)
+    transform_tool->trans_info[ANGLE] =
+      FIFTEEN_DEG * (int) ((transform_tool->trans_info[REAL_ANGLE] +
                            FIFTEEN_DEG / 2.0) /
                           FIFTEEN_DEG);
   else
-    transform_core->trans_info[ANGLE] = transform_core->trans_info[REAL_ANGLE];
+    transform_tool->trans_info[ANGLE] = transform_tool->trans_info[REAL_ANGLE];
 }
 
 static void
-rotate_tool_recalc (Tool     *tool,
+rotate_tool_recalc (GimpTool *tool,
                    GDisplay *gdisp)
 {
-  TransformCore *transform_core;
-  gdouble        cx, cy;
+  GimpTransformTool *transform_tool;
+  gdouble            cx, cy;
 
-  transform_core = (TransformCore *) tool->private;
+  transform_tool = GIMP_TRANSFORM_TOOL (tool);
 
-  cx = transform_core->cx;
-  cy = transform_core->cy;
+  cx = transform_tool->cx;
+  cy = transform_tool->cy;
 
   /*  assemble the transformation matrix  */
-  gimp_matrix3_identity  (transform_core->transform);
-  gimp_matrix3_translate (transform_core->transform, -cx, -cy);
-  gimp_matrix3_rotate    (transform_core->transform,
-                         transform_core->trans_info[ANGLE]);
-  gimp_matrix3_translate (transform_core->transform, +cx, +cy);
+  gimp_matrix3_identity  (transform_tool->transform);
+  gimp_matrix3_translate (transform_tool->transform, -cx, -cy);
+  gimp_matrix3_rotate    (transform_tool->transform,
+                         transform_tool->trans_info[ANGLE]);
+  gimp_matrix3_translate (transform_tool->transform, +cx, +cy);
 
   /*  transform the bounding box  */
-  transform_core_transform_bounding_box (tool);
+  gimp_transform_tool_transform_bounding_box (transform_tool);
 
   /*  update the information dialog  */
   rotate_info_update (tool);
-}
-
-TileManager *
-rotate_tool_rotate (GImage       *gimage,
-                   GimpDrawable *drawable,
-                   GDisplay     *gdisp,
-                   gdouble       angle,
-                   TileManager  *float_tiles,
-                   gboolean      interpolation,
-                   GimpMatrix3   matrix)
-{
-  GimpProgress *progress;
-  TileManager  *ret;
-
-  progress = progress_start (gdisp, _("Rotating..."), FALSE, NULL, NULL);
-
-  ret = transform_core_do (gimage, drawable, float_tiles,
-                          interpolation, matrix,
-                          progress ? progress_update_and_flush :
-                          (GimpProgressFunc) NULL,
-                          progress);
-
-  if (progress)
-    progress_end (progress);
-
-  return ret;
 }
Index: app/tools/gimprotatetool.h
===================================================================
RCS file: /cvs/gnome/gimp/app/tools/gimprotatetool.h,v
retrieving revision 1.7
diff -u -r1.7 gimprotatetool.h
--- app/tools/gimprotatetool.h  2000/12/31 04:07:41     1.7
+++ app/tools/gimprotatetool.h  2001/04/21 15:34:59
@@ -16,20 +16,45 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-#ifndef __ROTATE_TOOL_H__
-#define __ROTATE_TOOL_H__
+#ifndef __GIMP_ROTATE_TOOL_H__
+#define __GIMP_ROTATE_TOOL_H__
 
 
-TileManager * rotate_tool_rotate     (GimpImage      *gimage,
-                                     GimpDrawable   *drawable,
-                                     GDisplay       *gdisp,
-                                     gdouble         angle,
-                                     TileManager    *float_tiles,
-                                     gboolean        interpolation,
-                                     GimpMatrix3     matrix);
+#include "gimptransformtool.h"
 
-Tool        * tools_new_rotate_tool  (void);
-void          tools_free_rotate_tool (Tool           *tool);
 
+#define GIMP_TYPE_ROTATE_TOOL            (gimp_rotate_tool_get_type ())
+#define GIMP_ROTATE_TOOL(obj)            (GTK_CHECK_CAST ((obj), 
+GIMP_TYPE_ROTATE_TOOL, GimpRotateTool))
+#define GIMP_IS_ROTATE_TOOL(obj)         (GTK_CHECK_TYPE ((obj), 
+GIMP_TYPE_ROTATE_TOOL))
+#define GIMP_ROTATE_TOOL_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), 
+GIMP_TYPE_ROTATE_TOOL, GimpRotateToolClass))
+#define GIMP_IS_ROTATE_TOOL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), 
+GIMP_TYPE_ROTATE_TOOL))
 
-#endif  /*  __ROTATE_TOOL_H__  */
+
+typedef struct _GimpRotateTool      GimpRotateTool;
+typedef struct _GimpRotateToolClass GimpRotateToolClass;
+
+struct _GimpRotateTool
+{
+  GimpTransformTool  parent_instance;
+};
+
+struct _GimpRotateToolClass
+{
+  GimpTransformToolClass  parent_class;
+};
+
+
+GtkType       gimp_rotate_tool_get_type (void);
+
+void          gimp_rotate_tool_register (void);
+
+
+TileManager * gimp_rotate_tool_rotate   (GimpImage      *gimage,
+                                        GimpDrawable   *drawable,
+                                        GDisplay       *gdisp,
+                                        gdouble         angle,
+                                        TileManager    *float_tiles,
+                                        gboolean        interpolation,
+                                        GimpMatrix3     matrix);
+
+#endif  /*  __GIMP_ROTATE_TOOL_H__  */
Index: app/tools/gimptool.c
===================================================================
RCS file: /cvs/gnome/gimp/app/tools/gimptool.c,v
retrieving revision 1.33
diff -u -r1.33 gimptool.c
--- app/tools/gimptool.c        2001/04/17 16:00:22     1.33
+++ app/tools/gimptool.c        2001/04/21 15:35:04
@@ -484,7 +484,6 @@
 STUB(by_color_select)
 STUB(perspective_find_transform)
 STUB(perspective_tool_perspective)
-STUB(rotate_tool_rotate)
 STUB(shear_tool_shear)
 STUB(clone_non_gui)
 STUB(clone_non_gui_default)
Index: app/tools/gimptool.h
===================================================================
RCS file: /cvs/gnome/gimp/app/tools/gimptool.h,v
retrieving revision 1.23
diff -u -r1.23 gimptool.h
--- app/tools/gimptool.h        2001/04/19 13:01:44     1.23
+++ app/tools/gimptool.h        2001/04/21 15:35:04
@@ -24,7 +24,6 @@
 
 
 #define GIMP_TYPE_BY_COLOR_SELECT_TOOL GTK_TYPE_NONE
-#define GIMP_TYPE_ROTATE_TOOL          GTK_TYPE_NONE
 #define GIMP_TYPE_SHEAR_TOOL           GTK_TYPE_NONE
 #define GIMP_TYPE_PERSPECTIVE_TOOL     GTK_TYPE_NONE
 
Index: app/tools/tools.c
===================================================================
RCS file: /cvs/gnome/gimp/app/tools/tools.c,v
retrieving revision 1.113
diff -u -r1.113 tools.c
--- app/tools/tools.c   2001/04/19 13:01:44     1.113
+++ app/tools/tools.c   2001/04/21 15:35:05
@@ -84,7 +84,7 @@
   /* gimp_perspective_tool_register (); */
   /* gimp_shear_tool_register (); */
   gimp_scale_tool_register ();
-  /* gimp_rotate_tool_register (); */
+  gimp_rotate_tool_register ();
   gimp_crop_tool_register ();
   gimp_move_tool_register ();
 
Index: tools/pdbgen/pdb/tools.pdb
===================================================================
RCS file: /cvs/gnome/gimp/tools/pdbgen/pdb/tools.pdb,v
retrieving revision 1.39
diff -u -r1.39 tools.pdb
--- tools/pdbgen/pdb/tools.pdb  2001/04/11 17:20:34     1.39
+++ tools/pdbgen/pdb/tools.pdb  2001/04/21 15:35:41
@@ -1125,7 +1125,7 @@
   gimp_matrix3_translate (matrix, +cx, +cy);
 
   /* Rotate the buffer */
-  new_tiles = rotate_tool_rotate (gimage, drawable, NULL, angle,
+  new_tiles = gimp_rotate_tool_rotate (gimage, drawable, NULL, angle,
                                  float_tiles, interpolation, matrix);
 
   /* Free the cut/copied buffer */

Reply via email to