[Gimp-developer] Patch to enable rotatetool in 1.3 branch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 dneary@xxxxxxxxxx     | 
 \     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 */

[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux