[gimp/soc-2010-cage-2] structure of the cage tool, with an options object
- From: Michael Muré <mmure src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/soc-2010-cage-2] structure of the cage tool, with an options object
- Date: Sun, 8 Aug 2010 11:41:36 +0000 (UTC)
commit f6316285be6f78628006588c36698e9d1caf7b51
Author: Michael Muré <batolettre gmail com>
Date: Wed Jun 30 20:27:52 2010 +0200
structure of the cage tool, with an options object
app/core/gimpcage.c | 5 +-
app/core/gimpcage.h | 4 +-
app/gegl/gimpoperationcage.c | 30 +++++-
app/gegl/gimpoperationcage.h | 1 -
app/tools/Makefile.am | 2 +
app/tools/gimpcageoptions.c | 58 ++++++++++++
app/tools/gimpcageoptions.h | 51 ++++++++++
app/tools/gimpcagetool.c | 99 +++++++++++++++++---
app/tools/gimpcagetool.h | 5 +-
app/tools/makefile.msc | 1 +
app/widgets/gimphelp-ids.h | 1 +
libgimpwidgets/gimpstock.c | 3 +
libgimpwidgets/gimpstock.h | 1 +
themes/Default/images/Makefile.am | 2 +
themes/Default/images/makefile.msc | 2 +
themes/Default/images/tools/stock-tool-cage-16.png | Bin 0 -> 687 bytes
themes/Default/images/tools/stock-tool-cage-22.png | Bin 0 -> 941 bytes
themes/Default/images/tools/stock-tool-cage-22.xcf | Bin 0 -> 1791 bytes
18 files changed, 241 insertions(+), 24 deletions(-)
---
diff --git a/app/core/gimpcage.c b/app/core/gimpcage.c
index ccafad9..57017fd 100644
--- a/app/core/gimpcage.c
+++ b/app/core/gimpcage.c
@@ -1,6 +1,7 @@
/* GIMP - The GNU Image Manipulation Program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
- * Copyright (C) 1999 Adrian Likins and Tor Lillqvist
+ *
+ * gimpcage.c
+ * Copyright (C) 2010 Michael Muré <batolettre gmail com>
*
* 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
diff --git a/app/core/gimpcage.h b/app/core/gimpcage.h
index 65aac2a..0221af3 100644
--- a/app/core/gimpcage.h
+++ b/app/core/gimpcage.h
@@ -1,5 +1,7 @@
/* GIMP - The GNU Image Manipulation Program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattisbvf
+ *
+ * gimpcage.h
+ * Copyright (C) 2010 Michael Muré <batolettre gmail com>
*
* 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
diff --git a/app/gegl/gimpoperationcage.c b/app/gegl/gimpoperationcage.c
index 1567d16..f344269 100644
--- a/app/gegl/gimpoperationcage.c
+++ b/app/gegl/gimpoperationcage.c
@@ -1,5 +1,4 @@
/* GIMP - The GNU Image Manipulation Program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimpoperationcage.c
* Copyright (C) 2010 Michael Muré <batolettre gmail com>
@@ -35,7 +34,6 @@
static gboolean gimp_operation_cage_process (GeglOperation *operation,
void *in_buf,
void *out_buf,
- glong samples,
const GeglRectangle *roi);
G_DEFINE_TYPE (GimpOperationCage, gimp_operation_cage,
@@ -47,7 +45,16 @@ G_DEFINE_TYPE (GimpOperationCage, gimp_operation_cage,
static void
gimp_operation_cage_class_init (GimpOperationCageClass *klass)
{
-
+ GeglOperationClass *operation_class;
+ GeglOperationFilterClass *filter_class;
+
+ operation_class = GEGL_OPERATION_CLASS (klass);
+ filter_class = GEGL_OPERATION_FILTER_CLASS (klass);
+
+ operation_class->name = "gimp:cage";
+ operation_class->description = "GIMP cage transform";
+
+ filter_class->process = gimp_operation_cage_process;
}
static void
@@ -59,8 +66,21 @@ static gboolean
gimp_operation_cage_process (GeglOperation *operation,
void *in_buf,
void *out_buf,
- glong samples,
const GeglRectangle *roi)
{
-
+ gfloat *in = in_buf;
+ gfloat *out = out_buf;
+
+ /*while (samples--)
+ {
+ out[RED] = in[RED];
+ out[GREEN] = in[GREEN];
+ out[BLUE] = in[BLUE];
+ out[ALPHA] = in[ALPHA];
+
+ in += 4;
+ out += 4;
+ }*/
+
+ return TRUE;
}
diff --git a/app/gegl/gimpoperationcage.h b/app/gegl/gimpoperationcage.h
index 259d917..544166d 100644
--- a/app/gegl/gimpoperationcage.h
+++ b/app/gegl/gimpoperationcage.h
@@ -1,5 +1,4 @@
/* GIMP - The GNU Image Manipulation Program
- * Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimpoperationcage.h
* Copyright (C) 2010 Michael Muré <batolettre gmail com>
diff --git a/app/tools/Makefile.am b/app/tools/Makefile.am
index 015f1af..51fd382 100644
--- a/app/tools/Makefile.am
+++ b/app/tools/Makefile.am
@@ -42,6 +42,8 @@ libapptools_a_sources = \
gimpbucketfilltool.h \
gimpbycolorselecttool.c \
gimpbycolorselecttool.h \
+ gimpcageoptions.c \
+ gimpcageoptions.h \
gimpcagetool.c \
gimpcagetool.h \
gimpclonetool.c \
diff --git a/app/tools/gimpcageoptions.c b/app/tools/gimpcageoptions.c
new file mode 100644
index 0000000..31d5419
--- /dev/null
+++ b/app/tools/gimpcageoptions.c
@@ -0,0 +1,58 @@
+/* GIMP - The GNU Image Manipulation Program
+ *
+ * gimpcageoptions.c
+ * Copyright (C) 2010 Michael Muré <batolettre gmail com>
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+
+#include "libgimpconfig/gimpconfig.h"
+#include "libgimpwidgets/gimpwidgets.h"
+
+#include "tools-types.h"
+
+#include "config/gimpcoreconfig.h"
+
+#include "core/gimp.h"
+#include "core/gimptoolinfo.h"
+
+#include "widgets/gimpwidgets-utils.h"
+
+#include "gimpcagetool.h"
+#include "gimpcageoptions.h"
+
+#include "gimp-intl.h"
+
+
+G_DEFINE_TYPE (GimpCageOptions, gimp_cage_options,
+ GIMP_TYPE_TRANSFORM_OPTIONS)
+
+#define parent_class gimp_cage_options_parent_class
+
+
+static void
+gimp_cage_options_class_init (GimpCageOptionsClass *klass)
+{
+
+}
+
+static void
+gimp_cage_options_init (GimpCageOptions *options)
+{
+
+}
diff --git a/app/tools/gimpcageoptions.h b/app/tools/gimpcageoptions.h
new file mode 100644
index 0000000..72e1f44
--- /dev/null
+++ b/app/tools/gimpcageoptions.h
@@ -0,0 +1,51 @@
+/* GIMP - The GNU Image Manipulation Program
+ *
+ * gimpcageoptions.h
+ * Copyright (C) 2010 Michael Muré <batolettre gmail com>
+ *
+ * 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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GIMP_CAGE_OPTIONS_H__
+#define __GIMP_CAGE_OPTIONS_H__
+
+#include "tools/gimptransformoptions.h"
+
+
+#define GIMP_TYPE_CAGE_OPTIONS (gimp_cage_options_get_type ())
+#define GIMP_CAGE_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_CAGE_OPTIONS, GimpCageOptions))
+#define GIMP_CAGE_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_CAGE_OPTIONS, GimpCageOptionsClass))
+#define GIMP_IS_CAGE_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_CAGE_OPTIONS))
+#define GIMP_IS_CAGE_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_CAGE_OPTIONS))
+#define GIMP_CAGE_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_CAGE_OPTIONS, GimpCageOptionsClass))
+
+
+typedef struct _GimpCageOptionsClass GimpCageOptionsClass;
+typedef struct _GimpCageOptions GimpCageOptions;
+
+struct _GimpCageOptions
+{
+ GimpTransformOptions parent_instance;
+};
+
+
+struct _GimpCageOptionsClass
+{
+ GimpToolOptionsClass parent_class;
+};
+
+
+GType gimp_cage_options_get_type (void) G_GNUC_CONST;
+
+#endif /* __GIMP_CAGE_OPTIONS_H__ */
\ No newline at end of file
diff --git a/app/tools/gimpcagetool.c b/app/tools/gimpcagetool.c
index 98560b9..846719e 100644
--- a/app/tools/gimpcagetool.c
+++ b/app/tools/gimpcagetool.c
@@ -1,5 +1,7 @@
/* GIMP - The GNU Image Manipulation Program
- * Copyright (C) 1995-2001 Spencer Kimball, Peter Mattis, and others
+ *
+ * gimpcagetool.c
+ * Copyright (C) 2010 Michael Muré <batolettre gmail com>
*
* 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
@@ -30,17 +32,29 @@
#include "core/gimp-transform-utils.h"
-
#include "widgets/gimphelp-ids.h"
-
-
#include "gimpcagetool.h"
+#include "gimpcageoptions.h"
-#include "gimptransformoptions.h"
#include "gimp-intl.h"
+static void gimp_cage_tool_finalize (GObject *object);
+static void gimp_cage_tool_button_press (GimpTool *tool,
+ const GimpCoords *coords,
+ guint32 time,
+ GdkModifierType state,
+ GimpButtonPressType press_type,
+ GimpDisplay *display);
+static void gimp_cage_tool_button_release (GimpTool *tool,
+ const GimpCoords *coords,
+ guint32 time,
+ GdkModifierType state,
+ GimpButtonReleaseType release_type,
+ GimpDisplay *display);
+static void gimp_cage_tool_draw (GimpDrawTool *draw_tool);
+
G_DEFINE_TYPE (GimpCageTool, gimp_cage_tool, GIMP_TYPE_TRANSFORM_TOOL)
@@ -52,22 +66,32 @@ gimp_cage_tool_register (GimpToolRegisterCallback callback,
gpointer data)
{
(* callback) (GIMP_TYPE_CAGE_TOOL,
- GIMP_TYPE_TRANSFORM_OPTIONS,
- gimp_transform_options_gui,
- GIMP_CONTEXT_BACKGROUND_MASK,
+ GIMP_TYPE_CAGE_OPTIONS,
+ 0, //options_gui_func
+ 0, //context_props
"gimp-cage-tool",
- _("Rotate"),
- _("Rotate Tool: Rotate the layer, selection or path"),
- N_("_Rotate"), "<shift>R",
- NULL, GIMP_HELP_TOOL_ROTATE,
- GIMP_STOCK_TOOL_ROTATE,
+ _("Cage Transform"),
+ _("Cage Transform: Deform a selection with a cage"),
+ N_("_Cage Transform"), "<shift>R",
+ NULL, GIMP_HELP_TOOL_CAGE,
+ GIMP_STOCK_TOOL_CAGE,
data);
}
static void
gimp_cage_tool_class_init (GimpCageToolClass *klass)
{
-
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GimpToolClass *tool_class = GIMP_TOOL_CLASS (klass);
+ GimpDrawToolClass *draw_tool_class = GIMP_DRAW_TOOL_CLASS (klass);
+ GimpTransformToolClass *transformtool_class = GIMP_TRANSFORM_TOOL_CLASS (klass);
+
+ object_class->finalize = gimp_cage_tool_finalize;
+
+ tool_class->button_press = gimp_cage_tool_button_press;
+ tool_class->button_release = gimp_cage_tool_button_release;
+
+ draw_tool_class->draw = gimp_cage_tool_draw;
}
static void
@@ -77,3 +101,50 @@ gimp_cage_tool_init (GimpCageTool *self)
}
+static void
+gimp_cage_tool_finalize (GObject *object)
+{
+ GimpCageTool *ct = GIMP_CAGE_TOOL (object);
+ //GimpCageToolPrivate *priv = GET_PRIVATE (ct);
+
+ /*g_free (priv->points);
+ g_free (priv->segment_indices);
+ g_free (priv->saved_points_lower_segment);
+ g_free (priv->saved_points_higher_segment);*/
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void gimp_cage_tool_button_press (GimpTool *tool,
+ const GimpCoords *coords,
+ guint32 time,
+ GdkModifierType state,
+ GimpButtonPressType press_type,
+ GimpDisplay *display)
+{
+
+
+}
+
+static void gimp_cage_tool_button_release (GimpTool *tool,
+ const GimpCoords *coords,
+ guint32 time,
+ GdkModifierType state,
+ GimpButtonReleaseType release_type,
+ GimpDisplay *display)
+{
+
+}
+
+static void gimp_cage_tool_draw (GimpDrawTool *draw_tool)
+{
+ GimpCageTool *fst = GIMP_CAGE_TOOL (draw_tool);
+ //GimpCageToolPrivate *priv = GET_PRIVATE (fst);
+ GimpTool *tool = GIMP_TOOL (draw_tool);
+
+ gimp_draw_tool_draw_line(draw_tool, 10, 10, 10, 40, FALSE);
+ gimp_draw_tool_draw_line(draw_tool, 10, 40, 40, 40, FALSE);
+ gimp_draw_tool_draw_line(draw_tool, 40, 40, 40, 10, FALSE);
+ gimp_draw_tool_draw_line(draw_tool, 40, 10, 10, 10, FALSE);
+
+}
\ No newline at end of file
diff --git a/app/tools/gimpcagetool.h b/app/tools/gimpcagetool.h
index 055f3fc..4a68107 100644
--- a/app/tools/gimpcagetool.h
+++ b/app/tools/gimpcagetool.h
@@ -1,5 +1,7 @@
/* GIMP - The GNU Image Manipulation Program
- * Copyright (C) 1995-2001 Spencer Kimball, Peter Mattis, and others
+ *
+ * gimpcagetool.h
+ * Copyright (C) 2010 Michael Muré <batolettre gmail com>
*
* 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
@@ -28,6 +30,7 @@
#define GIMP_IS_CAGE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_CAGE_TOOL))
#define GIMP_CAGE_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_CAGE_TOOL, GimpCageToolClass))
+#define GIMP_CAGE_TOOL_GET_OPTIONS(t) (GIMP_CAGE_OPTIONS (gimp_tool_get_options (GIMP_TOOL (t))))
typedef struct _GimpCageToolClass GimpCageToolClass;
typedef struct _GimpCageTool GimpCageTool;
diff --git a/app/tools/makefile.msc b/app/tools/makefile.msc
index 9a1c8bc..afe5c20 100644
--- a/app/tools/makefile.msc
+++ b/app/tools/makefile.msc
@@ -37,6 +37,7 @@ OBJECTS = \
gimpbucketfilltool.obj \
gimpbycolorselecttool.obj \
gimpcagetool.obj \
+ gimpcageoptions.obj \
gimpclonetool.obj \
gimpcolorbalancetool.obj \
gimpcolorizetool.obj \
diff --git a/app/widgets/gimphelp-ids.h b/app/widgets/gimphelp-ids.h
index e8054dd..528bb82 100644
--- a/app/widgets/gimphelp-ids.h
+++ b/app/widgets/gimphelp-ids.h
@@ -246,6 +246,7 @@
#define GIMP_HELP_TOOL_BRIGHTNESS_CONTRAST "gimp-tool-brightness-contrast"
#define GIMP_HELP_TOOL_BUCKET_FILL "gimp-tool-bucket-fill"
#define GIMP_HELP_TOOL_BY_COLOR_SELECT "gimp-tool-by-color-select"
+#define GIMP_HELP_TOOL_CAGE "gimp-tool-cage"
#define GIMP_HELP_TOOL_CLONE "gimp-tool-clone"
#define GIMP_HELP_TOOL_COLORIZE "gimp-tool-colorize"
#define GIMP_HELP_TOOL_COLOR_BALANCE "gimp-tool-color-balance"
diff --git a/libgimpwidgets/gimpstock.c b/libgimpwidgets/gimpstock.c
index 8aaf949..d57ffab 100644
--- a/libgimpwidgets/gimpstock.c
+++ b/libgimpwidgets/gimpstock.c
@@ -289,6 +289,7 @@ static const GtkStockItem gimp_stock_items[] =
{ GIMP_STOCK_TOOL_BRIGHTNESS_CONTRAST, NULL, 0, 0, LIBGIMP_DOMAIN },
{ GIMP_STOCK_TOOL_BUCKET_FILL, NULL, 0, 0, LIBGIMP_DOMAIN },
{ GIMP_STOCK_TOOL_BY_COLOR_SELECT, NULL, 0, 0, LIBGIMP_DOMAIN },
+ { GIMP_STOCK_TOOL_CAGE, NULL, 0, 0, LIBGIMP_DOMAIN },
{ GIMP_STOCK_TOOL_CLONE, NULL, 0, 0, LIBGIMP_DOMAIN },
{ GIMP_STOCK_TOOL_COLOR_BALANCE, NULL, 0, 0, LIBGIMP_DOMAIN },
{ GIMP_STOCK_TOOL_COLOR_PICKER, NULL, 0, 0, LIBGIMP_DOMAIN },
@@ -441,6 +442,7 @@ gimp_stock_button_pixbufs[] =
{ GIMP_STOCK_TOOL_BRIGHTNESS_CONTRAST, stock_tool_brightness_contrast_22 },
{ GIMP_STOCK_TOOL_BUCKET_FILL, stock_tool_bucket_fill_22 },
{ GIMP_STOCK_TOOL_BY_COLOR_SELECT, stock_tool_by_color_select_22 },
+ { GIMP_STOCK_TOOL_CAGE, stock_tool_cage_22 },
{ GIMP_STOCK_TOOL_CLONE, stock_tool_clone_22 },
{ GIMP_STOCK_TOOL_COLOR_BALANCE, stock_tool_color_balance_22 },
{ GIMP_STOCK_TOOL_COLOR_PICKER, stock_tool_color_picker_22 },
@@ -605,6 +607,7 @@ gimp_stock_menu_pixbufs[] =
{ GIMP_STOCK_TOOL_BRIGHTNESS_CONTRAST, stock_tool_brightness_contrast_16 },
{ GIMP_STOCK_TOOL_BUCKET_FILL, stock_tool_bucket_fill_16 },
{ GIMP_STOCK_TOOL_BY_COLOR_SELECT, stock_tool_by_color_select_16 },
+ { GIMP_STOCK_TOOL_CAGE, stock_tool_cage_16 },
{ GIMP_STOCK_TOOL_CLONE, stock_tool_clone_16 },
{ GIMP_STOCK_TOOL_COLOR_BALANCE, stock_tool_color_balance_16 },
{ GIMP_STOCK_TOOL_COLOR_PICKER, stock_tool_color_picker_16 },
diff --git a/libgimpwidgets/gimpstock.h b/libgimpwidgets/gimpstock.h
index f51389b..e4c2727 100644
--- a/libgimpwidgets/gimpstock.h
+++ b/libgimpwidgets/gimpstock.h
@@ -104,6 +104,7 @@ G_BEGIN_DECLS
#define GIMP_STOCK_TOOL_BRIGHTNESS_CONTRAST "gimp-tool-brightness-contrast"
#define GIMP_STOCK_TOOL_BUCKET_FILL "gimp-tool-bucket-fill"
#define GIMP_STOCK_TOOL_BY_COLOR_SELECT "gimp-tool-by-color-select"
+#define GIMP_STOCK_TOOL_CAGE "gimp-tool-cage"
#define GIMP_STOCK_TOOL_CLONE "gimp-tool-clone"
#define GIMP_STOCK_TOOL_COLOR_BALANCE "gimp-tool-color-balance"
#define GIMP_STOCK_TOOL_COLOR_PICKER "gimp-tool-color-picker"
diff --git a/themes/Default/images/Makefile.am b/themes/Default/images/Makefile.am
index d8aec5a..cddb4a2 100644
--- a/themes/Default/images/Makefile.am
+++ b/themes/Default/images/Makefile.am
@@ -273,6 +273,8 @@ STOCK_TOOL_IMAGES = \
tools/stock-tool-bucket-fill-22.png \
tools/stock-tool-by-color-select-16.png \
tools/stock-tool-by-color-select-22.png \
+ tools/stock-tool-cage-16.png \
+ tools/stock-tool-cage-22.png \
tools/stock-tool-clone-16.png \
tools/stock-tool-clone-22.png \
tools/stock-tool-color-balance-16.png \
diff --git a/themes/Default/images/makefile.msc b/themes/Default/images/makefile.msc
index d98d927..c09730a 100644
--- a/themes/Default/images/makefile.msc
+++ b/themes/Default/images/makefile.msc
@@ -246,6 +246,8 @@ STOCK_TOOL_VARIABLES = \
stock_tool_bucket_fill_22 tools/stock-tool-bucket-fill-22.png \
stock_tool_by_color_select_16 tools/stock-tool-by-color-select-16.png \
stock_tool_by_color_select_22 tools/stock-tool-by-color-select-22.png \
+ stock_tool_cage_16 tools/stock-tool-cage-16.png \
+ stock_tool_cage_22 tools/stock-tool-cage-22.png \
stock_tool_clone_16 tools/stock-tool-clone-16.png \
stock_tool_clone_22 tools/stock-tool-clone-22.png \
stock_tool_color_balance_16 tools/stock-tool-color-balance-16.png \
diff --git a/themes/Default/images/tools/stock-tool-cage-16.png b/themes/Default/images/tools/stock-tool-cage-16.png
new file mode 100644
index 0000000..d56034f
Binary files /dev/null and b/themes/Default/images/tools/stock-tool-cage-16.png differ
diff --git a/themes/Default/images/tools/stock-tool-cage-22.png b/themes/Default/images/tools/stock-tool-cage-22.png
new file mode 100644
index 0000000..f7dd1fc
Binary files /dev/null and b/themes/Default/images/tools/stock-tool-cage-22.png differ
diff --git a/themes/Default/images/tools/stock-tool-cage-22.xcf b/themes/Default/images/tools/stock-tool-cage-22.xcf
new file mode 100644
index 0000000..cc233f7
Binary files /dev/null and b/themes/Default/images/tools/stock-tool-cage-22.xcf differ
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]