added enum GimpTransformType which can be one of { LAYER, SELECTION, PATH
2003-05-31 Michael Natterer <mitch@gimp.org> * app/tools/tools-enums.[ch]: added enum GimpTransformType which can be one of { LAYER, SELECTION, PATH } * app/tools/gimptransformoptions.[ch]: added a GimpTransformType property to GimpTransformOptions. Added a GUI for the new option. * app/tools/gimpflipoptions.[ch]: derive it from GimpTransformOptions and add the GUI here, too. * app/tools/gimpfliptool.c * app/tools/gimptransformtool.[ch]: added support for transforming the selection. Added framework for transforming paths (still unimplemented). * app/tools/gimpselectionoptions.c: small cleanup. * libgimpwidgets/gimpstock.[ch] * themes/Default/images/Makefile.am * themes/Default/images/stock-path-16.png * themes/Default/images/stock-path-22.png * themes/Default/images/stock-selection-16.png: new icons for the new transform options buttons. Simply copied existing ones...
This commit is contained in:
parent
31e12a213b
commit
15b9be6a2c
26
ChangeLog
26
ChangeLog
@ -1,3 +1,29 @@
|
|||||||
|
2003-05-31 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
|
* app/tools/tools-enums.[ch]: added enum GimpTransformType which
|
||||||
|
can be one of { LAYER, SELECTION, PATH }
|
||||||
|
|
||||||
|
* app/tools/gimptransformoptions.[ch]: added a GimpTransformType
|
||||||
|
property to GimpTransformOptions. Added a GUI for the new
|
||||||
|
option.
|
||||||
|
|
||||||
|
* app/tools/gimpflipoptions.[ch]: derive it from
|
||||||
|
GimpTransformOptions and add the GUI here, too.
|
||||||
|
|
||||||
|
* app/tools/gimpfliptool.c
|
||||||
|
* app/tools/gimptransformtool.[ch]: added support for transforming
|
||||||
|
the selection. Added framework for transforming paths (still
|
||||||
|
unimplemented).
|
||||||
|
|
||||||
|
* app/tools/gimpselectionoptions.c: small cleanup.
|
||||||
|
|
||||||
|
* libgimpwidgets/gimpstock.[ch]
|
||||||
|
* themes/Default/images/Makefile.am
|
||||||
|
* themes/Default/images/stock-path-16.png
|
||||||
|
* themes/Default/images/stock-path-22.png
|
||||||
|
* themes/Default/images/stock-selection-16.png: new icons for the
|
||||||
|
new transform options buttons. Simply copied existing ones...
|
||||||
|
|
||||||
2003-05-30 Tor Lillqvist <tml@iki.fi>
|
2003-05-30 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* configure.in: As gimp uses fontconfig directly, check for it.
|
* configure.in: As gimp uses fontconfig directly, check for it.
|
||||||
|
@ -56,7 +56,7 @@ static void gimp_flip_options_get_property (GObject *object,
|
|||||||
GParamSpec *pspec);
|
GParamSpec *pspec);
|
||||||
|
|
||||||
|
|
||||||
static GimpToolOptionsClass *parent_class = NULL;
|
static GimpTransformOptionsClass *parent_class = NULL;
|
||||||
|
|
||||||
|
|
||||||
GType
|
GType
|
||||||
@ -79,7 +79,7 @@ gimp_flip_options_get_type (void)
|
|||||||
(GInstanceInitFunc) gimp_flip_options_init,
|
(GInstanceInitFunc) gimp_flip_options_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
type = g_type_register_static (GIMP_TYPE_TOOL_OPTIONS,
|
type = g_type_register_static (GIMP_TYPE_TRANSFORM_OPTIONS,
|
||||||
"GimpFlipOptions",
|
"GimpFlipOptions",
|
||||||
&info, 0);
|
&info, 0);
|
||||||
}
|
}
|
||||||
@ -158,6 +158,8 @@ gimp_flip_options_gui (GimpToolOptions *tool_options)
|
|||||||
{
|
{
|
||||||
GObject *config;
|
GObject *config;
|
||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
|
GtkWidget *hbox;
|
||||||
|
GtkWidget *label;
|
||||||
GtkWidget *frame;
|
GtkWidget *frame;
|
||||||
gchar *str;
|
gchar *str;
|
||||||
|
|
||||||
@ -165,8 +167,17 @@ gimp_flip_options_gui (GimpToolOptions *tool_options)
|
|||||||
|
|
||||||
vbox = gimp_tool_options_gui (tool_options);
|
vbox = gimp_tool_options_gui (tool_options);
|
||||||
|
|
||||||
|
hbox = gimp_prop_enum_stock_box_new (config, "type", "gimp", 0, 0);
|
||||||
|
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||||
|
gtk_widget_show (hbox);
|
||||||
|
|
||||||
|
label = gtk_label_new (_("Affect:"));
|
||||||
|
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
||||||
|
gtk_box_reorder_child (GTK_BOX (hbox), label, 0);
|
||||||
|
gtk_widget_show (label);
|
||||||
|
|
||||||
/* tool toggle */
|
/* tool toggle */
|
||||||
str = g_strdup_printf (_("Tool Toggle %s"), gimp_get_mod_name_control ());
|
str = g_strdup_printf (_("Flip Type %s"), gimp_get_mod_name_control ());
|
||||||
|
|
||||||
frame = gimp_prop_enum_radio_frame_new (config, "flip-type",
|
frame = gimp_prop_enum_radio_frame_new (config, "flip-type",
|
||||||
str,
|
str,
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#define __GIMP_FLIP_OPTIONS_H__
|
#define __GIMP_FLIP_OPTIONS_H__
|
||||||
|
|
||||||
|
|
||||||
#include "tool_options.h"
|
#include "gimptransformoptions.h"
|
||||||
|
|
||||||
|
|
||||||
#define GIMP_TYPE_FLIP_OPTIONS (gimp_flip_options_get_type ())
|
#define GIMP_TYPE_FLIP_OPTIONS (gimp_flip_options_get_type ())
|
||||||
@ -36,9 +36,9 @@ typedef struct _GimpToolOptionsClass GimpFlipOptionsClass;
|
|||||||
|
|
||||||
struct _GimpFlipOptions
|
struct _GimpFlipOptions
|
||||||
{
|
{
|
||||||
GimpToolOptions parent_instance;
|
GimpTransformOptions parent_instance;
|
||||||
|
|
||||||
GimpOrientationType flip_type;
|
GimpOrientationType flip_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,6 +63,7 @@ static void gimp_flip_tool_cursor_update (GimpTool *tool,
|
|||||||
GimpDisplay *gdisp);
|
GimpDisplay *gdisp);
|
||||||
|
|
||||||
static TileManager * gimp_flip_tool_transform (GimpTransformTool *tool,
|
static TileManager * gimp_flip_tool_transform (GimpTransformTool *tool,
|
||||||
|
GimpItem *item,
|
||||||
GimpDisplay *gdisp);
|
GimpDisplay *gdisp);
|
||||||
|
|
||||||
|
|
||||||
@ -231,32 +232,27 @@ gimp_flip_tool_cursor_update (GimpTool *tool,
|
|||||||
|
|
||||||
static TileManager *
|
static TileManager *
|
||||||
gimp_flip_tool_transform (GimpTransformTool *trans_tool,
|
gimp_flip_tool_transform (GimpTransformTool *trans_tool,
|
||||||
|
GimpItem *active_item,
|
||||||
GimpDisplay *gdisp)
|
GimpDisplay *gdisp)
|
||||||
{
|
{
|
||||||
GimpFlipOptions *options;
|
GimpTransformOptions *tr_options;
|
||||||
GimpDrawable *active_drawable;
|
GimpFlipOptions *options;
|
||||||
GimpItem *active_item;
|
gdouble axis = 0.0;
|
||||||
gint off_x, off_y;
|
TileManager *ret = NULL;
|
||||||
gint width, height;
|
|
||||||
gdouble axis = 0.0;
|
|
||||||
|
|
||||||
options = GIMP_FLIP_OPTIONS (GIMP_TOOL (trans_tool)->tool_info->tool_options);
|
options = GIMP_FLIP_OPTIONS (GIMP_TOOL (trans_tool)->tool_info->tool_options);
|
||||||
|
tr_options = GIMP_TRANSFORM_OPTIONS (options);
|
||||||
active_drawable = gimp_image_active_drawable (gdisp->gimage);
|
|
||||||
active_item = GIMP_ITEM (active_drawable);
|
|
||||||
|
|
||||||
tile_manager_get_offsets (trans_tool->original, &off_x, &off_y);
|
|
||||||
width = tile_manager_width (trans_tool->original);
|
|
||||||
height = tile_manager_height (trans_tool->original);
|
|
||||||
|
|
||||||
switch (options->flip_type)
|
switch (options->flip_type)
|
||||||
{
|
{
|
||||||
case GIMP_ORIENTATION_HORIZONTAL:
|
case GIMP_ORIENTATION_HORIZONTAL:
|
||||||
axis = ((gdouble) off_x + (gdouble) width / 2.0);
|
axis = ((gdouble) trans_tool->x1 +
|
||||||
|
(gdouble) (trans_tool->x2 - trans_tool->x1) / 2.0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GIMP_ORIENTATION_VERTICAL:
|
case GIMP_ORIENTATION_VERTICAL:
|
||||||
axis = ((gdouble) off_y + (gdouble) height / 2.0);
|
axis = ((gdouble) trans_tool->y1 +
|
||||||
|
(gdouble) (trans_tool->y2 - trans_tool->y1) / 2.0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -266,7 +262,20 @@ gimp_flip_tool_transform (GimpTransformTool *trans_tool,
|
|||||||
if (gimp_item_get_linked (active_item))
|
if (gimp_item_get_linked (active_item))
|
||||||
gimp_item_linked_flip (active_item, options->flip_type, axis, FALSE);
|
gimp_item_linked_flip (active_item, options->flip_type, axis, FALSE);
|
||||||
|
|
||||||
return gimp_drawable_transform_tiles_flip (active_drawable,
|
switch (tr_options->type)
|
||||||
trans_tool->original,
|
{
|
||||||
options->flip_type, axis, FALSE);
|
case GIMP_TRANSFORM_TYPE_LAYER:
|
||||||
|
case GIMP_TRANSFORM_TYPE_SELECTION:
|
||||||
|
ret = gimp_drawable_transform_tiles_flip (GIMP_DRAWABLE (active_item),
|
||||||
|
trans_tool->original,
|
||||||
|
options->flip_type, axis,
|
||||||
|
FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_TRANSFORM_TYPE_PATH:
|
||||||
|
/* TODO */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -396,9 +396,8 @@ gimp_selection_options_gui (GimpToolOptions *tool_options)
|
|||||||
|
|
||||||
label = gtk_label_new (_("Mode:"));
|
label = gtk_label_new (_("Mode:"));
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
||||||
gtk_widget_show (label);
|
|
||||||
|
|
||||||
gtk_box_reorder_child (GTK_BOX (hbox), label, 0);
|
gtk_box_reorder_child (GTK_BOX (hbox), label, 0);
|
||||||
|
gtk_widget_show (label);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the antialias toggle button */
|
/* the antialias toggle button */
|
||||||
|
@ -44,12 +44,12 @@
|
|||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PROP_0,
|
PROP_0,
|
||||||
|
PROP_TYPE,
|
||||||
PROP_DIRECTION,
|
PROP_DIRECTION,
|
||||||
PROP_INTERPOLATION,
|
PROP_INTERPOLATION,
|
||||||
PROP_CLIP,
|
PROP_CLIP,
|
||||||
PROP_GRID_TYPE,
|
PROP_GRID_TYPE,
|
||||||
PROP_GRID_SIZE,
|
PROP_GRID_SIZE,
|
||||||
PROP_SHOW_PATH,
|
|
||||||
PROP_CONSTRAIN_1,
|
PROP_CONSTRAIN_1,
|
||||||
PROP_CONSTRAIN_2
|
PROP_CONSTRAIN_2
|
||||||
};
|
};
|
||||||
@ -121,6 +121,11 @@ gimp_transform_options_class_init (GimpTransformOptionsClass *klass)
|
|||||||
|
|
||||||
options_class->reset = gimp_transform_options_reset;
|
options_class->reset = gimp_transform_options_reset;
|
||||||
|
|
||||||
|
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_TYPE,
|
||||||
|
"type", NULL,
|
||||||
|
GIMP_TYPE_TRANSFORM_TYPE,
|
||||||
|
GIMP_TRANSFORM_TYPE_LAYER,
|
||||||
|
0);
|
||||||
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_DIRECTION,
|
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_DIRECTION,
|
||||||
"direction", NULL,
|
"direction", NULL,
|
||||||
GIMP_TYPE_TRANSFORM_DIRECTION,
|
GIMP_TYPE_TRANSFORM_DIRECTION,
|
||||||
@ -144,10 +149,6 @@ gimp_transform_options_class_init (GimpTransformOptionsClass *klass)
|
|||||||
"grid-size", NULL,
|
"grid-size", NULL,
|
||||||
1, 128, 15,
|
1, 128, 15,
|
||||||
0);
|
0);
|
||||||
GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_PATH,
|
|
||||||
"show-path", NULL,
|
|
||||||
FALSE,
|
|
||||||
0);
|
|
||||||
GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_CONSTRAIN_1,
|
GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_CONSTRAIN_1,
|
||||||
"constrain-1", NULL,
|
"constrain-1", NULL,
|
||||||
FALSE,
|
FALSE,
|
||||||
@ -175,6 +176,9 @@ gimp_transform_options_set_property (GObject *object,
|
|||||||
|
|
||||||
switch (property_id)
|
switch (property_id)
|
||||||
{
|
{
|
||||||
|
case PROP_TYPE:
|
||||||
|
options->type = g_value_get_enum (value);
|
||||||
|
break;
|
||||||
case PROP_DIRECTION:
|
case PROP_DIRECTION:
|
||||||
options->direction = g_value_get_enum (value);
|
options->direction = g_value_get_enum (value);
|
||||||
break;
|
break;
|
||||||
@ -190,9 +194,6 @@ gimp_transform_options_set_property (GObject *object,
|
|||||||
case PROP_GRID_SIZE:
|
case PROP_GRID_SIZE:
|
||||||
options->grid_size = g_value_get_int (value);
|
options->grid_size = g_value_get_int (value);
|
||||||
break;
|
break;
|
||||||
case PROP_SHOW_PATH:
|
|
||||||
options->show_path = g_value_get_boolean (value);
|
|
||||||
break;
|
|
||||||
case PROP_CONSTRAIN_1:
|
case PROP_CONSTRAIN_1:
|
||||||
options->constrain_1 = g_value_get_boolean (value);
|
options->constrain_1 = g_value_get_boolean (value);
|
||||||
break;
|
break;
|
||||||
@ -217,6 +218,9 @@ gimp_transform_options_get_property (GObject *object,
|
|||||||
|
|
||||||
switch (property_id)
|
switch (property_id)
|
||||||
{
|
{
|
||||||
|
case PROP_TYPE:
|
||||||
|
g_value_set_enum (value, options->type);
|
||||||
|
break;
|
||||||
case PROP_DIRECTION:
|
case PROP_DIRECTION:
|
||||||
g_value_set_enum (value, options->direction);
|
g_value_set_enum (value, options->direction);
|
||||||
break;
|
break;
|
||||||
@ -232,9 +236,6 @@ gimp_transform_options_get_property (GObject *object,
|
|||||||
case PROP_GRID_SIZE:
|
case PROP_GRID_SIZE:
|
||||||
g_value_set_int (value, options->grid_size);
|
g_value_set_int (value, options->grid_size);
|
||||||
break;
|
break;
|
||||||
case PROP_SHOW_PATH:
|
|
||||||
g_value_set_boolean (value, options->show_path);
|
|
||||||
break;
|
|
||||||
case PROP_CONSTRAIN_1:
|
case PROP_CONSTRAIN_1:
|
||||||
g_value_set_boolean (value, options->constrain_1);
|
g_value_set_boolean (value, options->constrain_1);
|
||||||
break;
|
break;
|
||||||
@ -270,7 +271,7 @@ gimp_transform_options_reset (GimpToolOptions *tool_options)
|
|||||||
GtkWidget *
|
GtkWidget *
|
||||||
gimp_transform_options_gui (GimpToolOptions *tool_options)
|
gimp_transform_options_gui (GimpToolOptions *tool_options)
|
||||||
{
|
{
|
||||||
GObject *config;
|
GObject *config;
|
||||||
GimpTransformOptions *options;
|
GimpTransformOptions *options;
|
||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
GtkWidget *hbox;
|
GtkWidget *hbox;
|
||||||
@ -280,11 +281,20 @@ gimp_transform_options_gui (GimpToolOptions *tool_options)
|
|||||||
GtkWidget *optionmenu;
|
GtkWidget *optionmenu;
|
||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
|
|
||||||
config = G_OBJECT (tool_options);
|
config = G_OBJECT (tool_options);
|
||||||
options = GIMP_TRANSFORM_OPTIONS (tool_options);
|
options = GIMP_TRANSFORM_OPTIONS (tool_options);
|
||||||
|
|
||||||
vbox = gimp_tool_options_gui (tool_options);
|
vbox = gimp_tool_options_gui (tool_options);
|
||||||
|
|
||||||
|
hbox = gimp_prop_enum_stock_box_new (config, "type", "gimp", 0, 0);
|
||||||
|
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||||
|
gtk_widget_show (hbox);
|
||||||
|
|
||||||
|
label = gtk_label_new (_("Affect:"));
|
||||||
|
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
||||||
|
gtk_box_reorder_child (GTK_BOX (hbox), label, 0);
|
||||||
|
gtk_widget_show (label);
|
||||||
|
|
||||||
frame = gimp_prop_enum_radio_frame_new (config, "direction",
|
frame = gimp_prop_enum_radio_frame_new (config, "direction",
|
||||||
_("Transform Direction"), 0, 0);
|
_("Transform Direction"), 0, 0);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
|
||||||
@ -335,11 +345,6 @@ gimp_transform_options_gui (GimpToolOptions *tool_options)
|
|||||||
1.0, 8.0, 0,
|
1.0, 8.0, 0,
|
||||||
FALSE, 0.0, 0.0);
|
FALSE, 0.0, 0.0);
|
||||||
|
|
||||||
/* the show_path toggle button */
|
|
||||||
button = gimp_prop_check_button_new (config, "show-path", _("Show Path"));
|
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
|
||||||
gtk_widget_show (button);
|
|
||||||
|
|
||||||
if (tool_options->tool_info->tool_type == GIMP_TYPE_ROTATE_TOOL ||
|
if (tool_options->tool_info->tool_type == GIMP_TYPE_ROTATE_TOOL ||
|
||||||
tool_options->tool_info->tool_type == GIMP_TYPE_SCALE_TOOL)
|
tool_options->tool_info->tool_type == GIMP_TYPE_SCALE_TOOL)
|
||||||
{
|
{
|
||||||
|
@ -38,12 +38,12 @@ struct _GimpTransformOptions
|
|||||||
{
|
{
|
||||||
GimpToolOptions parent_instance;
|
GimpToolOptions parent_instance;
|
||||||
|
|
||||||
|
GimpTransformType type;
|
||||||
GimpTransformDirection direction;
|
GimpTransformDirection direction;
|
||||||
GimpInterpolationType interpolation;
|
GimpInterpolationType interpolation;
|
||||||
gboolean clip;
|
gboolean clip;
|
||||||
GimpTransformGridType grid_type;
|
GimpTransformGridType grid_type;
|
||||||
gint grid_size;
|
gint grid_size;
|
||||||
gboolean show_path;
|
|
||||||
gboolean constrain_1;
|
gboolean constrain_1;
|
||||||
gboolean constrain_2;
|
gboolean constrain_2;
|
||||||
};
|
};
|
||||||
|
@ -44,14 +44,12 @@
|
|||||||
#include "core/gimpimage-undo-push.h"
|
#include "core/gimpimage-undo-push.h"
|
||||||
#include "core/gimpitem-linked.h"
|
#include "core/gimpitem-linked.h"
|
||||||
#include "core/gimplayer.h"
|
#include "core/gimplayer.h"
|
||||||
#include "core/gimpmarshal.h"
|
|
||||||
#include "core/gimptoolinfo.h"
|
#include "core/gimptoolinfo.h"
|
||||||
|
|
||||||
#include "widgets/gimpdialogfactory.h"
|
#include "widgets/gimpdialogfactory.h"
|
||||||
#include "widgets/gimpviewabledialog.h"
|
#include "widgets/gimpviewabledialog.h"
|
||||||
|
|
||||||
#include "display/gimpdisplay.h"
|
#include "display/gimpdisplay.h"
|
||||||
#include "display/gimpdisplay-foreach.h"
|
|
||||||
#include "display/gimpprogress.h"
|
#include "display/gimpprogress.h"
|
||||||
|
|
||||||
#include "gui/info-dialog.h"
|
#include "gui/info-dialog.h"
|
||||||
@ -110,6 +108,7 @@ static void gimp_transform_tool_draw (GimpDrawTool *draw_tool
|
|||||||
|
|
||||||
static TileManager *
|
static TileManager *
|
||||||
gimp_transform_tool_real_transform (GimpTransformTool *tr_tool,
|
gimp_transform_tool_real_transform (GimpTransformTool *tr_tool,
|
||||||
|
GimpItem *item,
|
||||||
GimpDisplay *gdisp);
|
GimpDisplay *gdisp);
|
||||||
|
|
||||||
static void gimp_transform_tool_reset (GimpTransformTool *tr_tool);
|
static void gimp_transform_tool_reset (GimpTransformTool *tr_tool);
|
||||||
@ -131,10 +130,10 @@ static void transform_cancel_callback (GtkWidget *widget,
|
|||||||
static void transform_ok_callback (GtkWidget *widget,
|
static void transform_ok_callback (GtkWidget *widget,
|
||||||
GimpTransformTool *tr_tool);
|
GimpTransformTool *tr_tool);
|
||||||
|
|
||||||
static void gimp_transform_tool_notify_grid (GimpTransformOptions *options,
|
static void gimp_transform_tool_notify_type (GimpTransformOptions *options,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
GimpTransformTool *tr_tool);
|
GimpTransformTool *tr_tool);
|
||||||
static void gimp_transform_tool_notify_path (GimpTransformOptions *options,
|
static void gimp_transform_tool_notify_grid (GimpTransformOptions *options,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
GimpTransformTool *tr_tool);
|
GimpTransformTool *tr_tool);
|
||||||
|
|
||||||
@ -232,7 +231,7 @@ gimp_transform_tool_init (GimpTransformTool *tr_tool)
|
|||||||
tr_tool->tgrid_coords = NULL;
|
tr_tool->tgrid_coords = NULL;
|
||||||
|
|
||||||
tr_tool->notify_connected = FALSE;
|
tr_tool->notify_connected = FALSE;
|
||||||
tr_tool->show_path = FALSE;
|
tr_tool->type = GIMP_TRANSFORM_TYPE_LAYER;
|
||||||
|
|
||||||
tr_tool->shell_desc = NULL;
|
tr_tool->shell_desc = NULL;
|
||||||
tr_tool->progress_text = _("Transforming...");
|
tr_tool->progress_text = _("Transforming...");
|
||||||
@ -322,9 +321,13 @@ gimp_transform_tool_button_press (GimpTool *tool,
|
|||||||
|
|
||||||
if (tr_tool->use_grid && ! tr_tool->notify_connected)
|
if (tr_tool->use_grid && ! tr_tool->notify_connected)
|
||||||
{
|
{
|
||||||
tr_tool->show_path =
|
tr_tool->type =
|
||||||
GIMP_TRANSFORM_OPTIONS (tool->tool_info->tool_options)->show_path;
|
GIMP_TRANSFORM_OPTIONS (tool->tool_info->tool_options)->type;
|
||||||
|
|
||||||
|
g_signal_connect_object (tool->tool_info->tool_options,
|
||||||
|
"notify::type",
|
||||||
|
G_CALLBACK (gimp_transform_tool_notify_type),
|
||||||
|
tr_tool, 0);
|
||||||
g_signal_connect_object (tool->tool_info->tool_options,
|
g_signal_connect_object (tool->tool_info->tool_options,
|
||||||
"notify::grid-type",
|
"notify::grid-type",
|
||||||
G_CALLBACK (gimp_transform_tool_notify_grid),
|
G_CALLBACK (gimp_transform_tool_notify_grid),
|
||||||
@ -333,10 +336,6 @@ gimp_transform_tool_button_press (GimpTool *tool,
|
|||||||
"notify::grid-size",
|
"notify::grid-size",
|
||||||
G_CALLBACK (gimp_transform_tool_notify_grid),
|
G_CALLBACK (gimp_transform_tool_notify_grid),
|
||||||
tr_tool, 0);
|
tr_tool, 0);
|
||||||
g_signal_connect_object (tool->tool_info->tool_options,
|
|
||||||
"notify::show-path",
|
|
||||||
G_CALLBACK (gimp_transform_tool_notify_path),
|
|
||||||
tr_tool, 0);
|
|
||||||
|
|
||||||
tr_tool->notify_connected = TRUE;
|
tr_tool->notify_connected = TRUE;
|
||||||
}
|
}
|
||||||
@ -748,7 +747,7 @@ gimp_transform_tool_draw (GimpDrawTool *draw_tool)
|
|||||||
FALSE);
|
FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tr_tool->show_path)
|
if (tr_tool->type == GIMP_TRANSFORM_TYPE_PATH)
|
||||||
{
|
{
|
||||||
GimpMatrix3 tmp_matrix;
|
GimpMatrix3 tmp_matrix;
|
||||||
|
|
||||||
@ -770,22 +769,17 @@ gimp_transform_tool_draw (GimpDrawTool *draw_tool)
|
|||||||
|
|
||||||
static TileManager *
|
static TileManager *
|
||||||
gimp_transform_tool_real_transform (GimpTransformTool *tr_tool,
|
gimp_transform_tool_real_transform (GimpTransformTool *tr_tool,
|
||||||
|
GimpItem *active_item,
|
||||||
GimpDisplay *gdisp)
|
GimpDisplay *gdisp)
|
||||||
{
|
{
|
||||||
GimpTool *tool;
|
GimpTool *tool;
|
||||||
GimpTransformOptions *options;
|
GimpTransformOptions *options;
|
||||||
GimpDrawable *active_drawable;
|
|
||||||
GimpItem *active_item;
|
|
||||||
GimpProgress *progress;
|
GimpProgress *progress;
|
||||||
gboolean clip_result;
|
TileManager *ret = NULL;
|
||||||
TileManager *ret;
|
|
||||||
|
|
||||||
tool = GIMP_TOOL (tr_tool);
|
tool = GIMP_TOOL (tr_tool);
|
||||||
options = GIMP_TRANSFORM_OPTIONS (tool->tool_info->tool_options);
|
options = GIMP_TRANSFORM_OPTIONS (tool->tool_info->tool_options);
|
||||||
|
|
||||||
active_drawable = gimp_image_active_drawable (gdisp->gimage);
|
|
||||||
active_item = GIMP_ITEM (active_drawable);
|
|
||||||
|
|
||||||
if (tr_tool->info_dialog)
|
if (tr_tool->info_dialog)
|
||||||
gtk_widget_set_sensitive (GTK_WIDGET (tr_tool->info_dialog->shell), FALSE);
|
gtk_widget_set_sensitive (GTK_WIDGET (tr_tool->info_dialog->shell), FALSE);
|
||||||
|
|
||||||
@ -800,23 +794,38 @@ gimp_transform_tool_real_transform (GimpTransformTool *tr_tool,
|
|||||||
gimp_progress_update_and_flush : NULL,
|
gimp_progress_update_and_flush : NULL,
|
||||||
progress);
|
progress);
|
||||||
|
|
||||||
clip_result = options->clip;
|
switch (options->type)
|
||||||
|
{
|
||||||
|
case GIMP_TRANSFORM_TYPE_LAYER:
|
||||||
|
case GIMP_TRANSFORM_TYPE_SELECTION:
|
||||||
|
{
|
||||||
|
gboolean clip_result = options->clip;
|
||||||
|
|
||||||
/* always clip unfloated channels so they keep their size */
|
/* always clip the selction and unfloated channels
|
||||||
if (GIMP_IS_CHANNEL (active_drawable) &&
|
* so they keep their size
|
||||||
tile_manager_bpp (tr_tool->original) == 1)
|
*/
|
||||||
clip_result = TRUE;
|
if (GIMP_IS_CHANNEL (active_item) &&
|
||||||
|
tile_manager_bpp (tr_tool->original) == 1)
|
||||||
|
clip_result = TRUE;
|
||||||
|
|
||||||
ret = gimp_drawable_transform_tiles_affine (active_drawable,
|
ret =
|
||||||
tr_tool->original,
|
gimp_drawable_transform_tiles_affine (GIMP_DRAWABLE (active_item),
|
||||||
tr_tool->transform,
|
tr_tool->original,
|
||||||
options->direction,
|
tr_tool->transform,
|
||||||
options->interpolation,
|
options->direction,
|
||||||
clip_result,
|
options->interpolation,
|
||||||
progress ?
|
clip_result,
|
||||||
gimp_progress_update_and_flush :
|
progress ?
|
||||||
NULL,
|
gimp_progress_update_and_flush :
|
||||||
progress);
|
NULL,
|
||||||
|
progress);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_TRANSFORM_TYPE_PATH:
|
||||||
|
/* TODO */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (progress)
|
if (progress)
|
||||||
gimp_progress_end (progress);
|
gimp_progress_end (progress);
|
||||||
@ -828,13 +837,16 @@ static void
|
|||||||
gimp_transform_tool_doit (GimpTransformTool *tr_tool,
|
gimp_transform_tool_doit (GimpTransformTool *tr_tool,
|
||||||
GimpDisplay *gdisp)
|
GimpDisplay *gdisp)
|
||||||
{
|
{
|
||||||
GimpTool *tool;
|
GimpTool *tool;
|
||||||
TileManager *new_tiles;
|
GimpTransformOptions *options;
|
||||||
gboolean new_layer;
|
GimpItem *active_item;
|
||||||
|
TileManager *new_tiles;
|
||||||
|
gboolean new_layer;
|
||||||
|
|
||||||
gimp_set_busy (gdisp->gimage->gimp);
|
gimp_set_busy (gdisp->gimage->gimp);
|
||||||
|
|
||||||
tool = GIMP_TOOL (tr_tool);
|
tool = GIMP_TOOL (tr_tool);
|
||||||
|
options = GIMP_TRANSFORM_OPTIONS (tool->tool_info->tool_options);
|
||||||
|
|
||||||
/* undraw the tool before we muck around with the transform matrix */
|
/* undraw the tool before we muck around with the transform matrix */
|
||||||
gimp_draw_tool_pause (GIMP_DRAW_TOOL (tr_tool));
|
gimp_draw_tool_pause (GIMP_DRAW_TOOL (tr_tool));
|
||||||
@ -859,40 +871,86 @@ gimp_transform_tool_doit (GimpTransformTool *tr_tool,
|
|||||||
*/
|
*/
|
||||||
tool->drawable = gimp_image_active_drawable (gdisp->gimage);
|
tool->drawable = gimp_image_active_drawable (gdisp->gimage);
|
||||||
|
|
||||||
tr_tool->original = gimp_drawable_transform_cut (tool->drawable,
|
switch (options->type)
|
||||||
&new_layer);
|
{
|
||||||
|
case GIMP_TRANSFORM_TYPE_LAYER:
|
||||||
|
active_item = (GimpItem *) gimp_image_active_drawable (gdisp->gimage);
|
||||||
|
|
||||||
|
tr_tool->original = gimp_drawable_transform_cut (tool->drawable,
|
||||||
|
&new_layer);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_TRANSFORM_TYPE_SELECTION:
|
||||||
|
active_item = (GimpItem *) gimp_image_get_mask (gdisp->gimage);
|
||||||
|
|
||||||
|
tr_tool->original = gimp_drawable_data (GIMP_DRAWABLE (active_item));
|
||||||
|
tile_manager_set_offsets (tr_tool->original, 0, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_TRANSFORM_TYPE_PATH:
|
||||||
|
active_item = (GimpItem *) gimp_image_get_active_vectors (gdisp->gimage);
|
||||||
|
|
||||||
|
tr_tool->original = NULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Send the request for the transformation to the tool...
|
/* Send the request for the transformation to the tool...
|
||||||
*/
|
*/
|
||||||
new_tiles = GIMP_TRANSFORM_TOOL_GET_CLASS (tr_tool)->transform (tr_tool,
|
new_tiles = GIMP_TRANSFORM_TOOL_GET_CLASS (tr_tool)->transform (tr_tool,
|
||||||
|
active_item,
|
||||||
gdisp);
|
gdisp);
|
||||||
|
|
||||||
gimp_transform_tool_prepare (tr_tool, gdisp);
|
gimp_transform_tool_prepare (tr_tool, gdisp);
|
||||||
gimp_transform_tool_recalc (tr_tool, gdisp);
|
gimp_transform_tool_recalc (tr_tool, gdisp);
|
||||||
|
|
||||||
if (new_tiles)
|
switch (options->type)
|
||||||
{
|
{
|
||||||
/* paste the new transformed image to the gimage...also implement
|
case GIMP_TRANSFORM_TYPE_LAYER:
|
||||||
* undo...
|
if (new_tiles)
|
||||||
*/
|
{
|
||||||
/* FIXME: we should check if the drawable is still valid */
|
/* paste the new transformed image to the gimage...also implement
|
||||||
gimp_drawable_transform_paste (tool->drawable,
|
* undo...
|
||||||
new_tiles,
|
*/
|
||||||
new_layer);
|
/* FIXME: we should check if the drawable is still valid */
|
||||||
tile_manager_unref (new_tiles);
|
gimp_drawable_transform_paste (tool->drawable,
|
||||||
|
new_tiles,
|
||||||
|
new_layer);
|
||||||
|
tile_manager_unref (new_tiles);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
/* Make a note of the new current drawable (since we may have
|
case GIMP_TRANSFORM_TYPE_SELECTION:
|
||||||
* a floating selection, etc now.
|
if (new_tiles)
|
||||||
*/
|
{
|
||||||
tool->drawable = gimp_image_active_drawable (gdisp->gimage);
|
gimp_image_mask_push_undo (gdisp->gimage, NULL);
|
||||||
|
|
||||||
gimp_transform_tool_push_undo (gdisp->gimage, NULL,
|
GIMP_DRAWABLE (active_item)->tiles = new_tiles;
|
||||||
tool->ID,
|
|
||||||
G_TYPE_FROM_INSTANCE (tool),
|
tile_manager_unref (tr_tool->original);
|
||||||
tr_tool->old_trans_info,
|
tr_tool->original = NULL;
|
||||||
NULL);
|
|
||||||
|
GIMP_CHANNEL (active_item)->bounds_known = FALSE;
|
||||||
|
|
||||||
|
gimp_image_mask_changed (gdisp->gimage);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_TRANSFORM_TYPE_PATH:
|
||||||
|
/* TODO */
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Make a note of the new current drawable (since we may have
|
||||||
|
* a floating selection, etc now.
|
||||||
|
*/
|
||||||
|
tool->drawable = gimp_image_active_drawable (gdisp->gimage);
|
||||||
|
|
||||||
|
gimp_transform_tool_push_undo (gdisp->gimage, NULL,
|
||||||
|
tool->ID,
|
||||||
|
G_TYPE_FROM_INSTANCE (tool),
|
||||||
|
tr_tool->old_trans_info,
|
||||||
|
NULL);
|
||||||
|
|
||||||
/* push the undo group end */
|
/* push the undo group end */
|
||||||
gimp_image_undo_group_end (gdisp->gimage);
|
gimp_image_undo_group_end (gdisp->gimage);
|
||||||
|
|
||||||
@ -980,43 +1038,57 @@ static void
|
|||||||
gimp_transform_tool_bounds (GimpTransformTool *tr_tool,
|
gimp_transform_tool_bounds (GimpTransformTool *tr_tool,
|
||||||
GimpDisplay *gdisp)
|
GimpDisplay *gdisp)
|
||||||
{
|
{
|
||||||
TileManager *tiles;
|
GimpTransformOptions *options;
|
||||||
GimpDrawable *drawable;
|
|
||||||
|
|
||||||
tiles = tr_tool->original;
|
options =
|
||||||
drawable = gimp_image_active_drawable (gdisp->gimage);
|
GIMP_TRANSFORM_OPTIONS (GIMP_TOOL (tr_tool)->tool_info->tool_options);
|
||||||
|
|
||||||
/* find the boundaries */
|
/* find the boundaries */
|
||||||
if (tiles)
|
if (tr_tool->original)
|
||||||
{
|
{
|
||||||
tile_manager_get_offsets (tiles, &tr_tool->x1, &tr_tool->y1);
|
tile_manager_get_offsets (tr_tool->original, &tr_tool->x1, &tr_tool->y1);
|
||||||
|
|
||||||
tr_tool->x2 = tr_tool->x1 + tile_manager_width (tiles);
|
tr_tool->x2 = tr_tool->x1 + tile_manager_width (tr_tool->original);
|
||||||
tr_tool->y2 = tr_tool->y1 + tile_manager_height (tiles);
|
tr_tool->y2 = tr_tool->y1 + tile_manager_height (tr_tool->original);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gint offset_x, offset_y;
|
switch (options->type)
|
||||||
|
{
|
||||||
|
case GIMP_TRANSFORM_TYPE_LAYER:
|
||||||
|
{
|
||||||
|
GimpDrawable *drawable;
|
||||||
|
gint offset_x, offset_y;
|
||||||
|
|
||||||
gimp_item_offsets (GIMP_ITEM (drawable), &offset_x, &offset_y);
|
drawable = gimp_image_active_drawable (gdisp->gimage);
|
||||||
|
|
||||||
gimp_drawable_mask_bounds (drawable,
|
gimp_item_offsets (GIMP_ITEM (drawable), &offset_x, &offset_y);
|
||||||
&tr_tool->x1, &tr_tool->y1,
|
|
||||||
&tr_tool->x2, &tr_tool->y2);
|
gimp_drawable_mask_bounds (drawable,
|
||||||
tr_tool->x1 += offset_x;
|
&tr_tool->x1, &tr_tool->y1,
|
||||||
tr_tool->y1 += offset_y;
|
&tr_tool->x2, &tr_tool->y2);
|
||||||
tr_tool->x2 += offset_x;
|
tr_tool->x1 += offset_x;
|
||||||
tr_tool->y2 += offset_y;
|
tr_tool->y1 += offset_y;
|
||||||
|
tr_tool->x2 += offset_x;
|
||||||
|
tr_tool->y2 += offset_y;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GIMP_TRANSFORM_TYPE_SELECTION:
|
||||||
|
case GIMP_TRANSFORM_TYPE_PATH:
|
||||||
|
gimp_image_mask_bounds (gdisp->gimage,
|
||||||
|
&tr_tool->x1, &tr_tool->y1,
|
||||||
|
&tr_tool->x2, &tr_tool->y2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tr_tool->cx = (gdouble) (tr_tool->x1 + tr_tool->x2) / 2.0;
|
tr_tool->cx = (gdouble) (tr_tool->x1 + tr_tool->x2) / 2.0;
|
||||||
tr_tool->cy = (gdouble) (tr_tool->y1 + tr_tool->y2) / 2.0;
|
tr_tool->cy = (gdouble) (tr_tool->y1 + tr_tool->y2) / 2.0;
|
||||||
|
|
||||||
|
/* changing the bounds invalidates any grid we may have */
|
||||||
if (tr_tool->use_grid)
|
if (tr_tool->use_grid)
|
||||||
{
|
gimp_transform_tool_grid_recalc (tr_tool);
|
||||||
/* changing the bounds invalidates any grid we may have */
|
|
||||||
gimp_transform_tool_grid_recalc (tr_tool);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1024,7 +1096,8 @@ gimp_transform_tool_grid_recalc (GimpTransformTool *tr_tool)
|
|||||||
{
|
{
|
||||||
GimpTransformOptions *options;
|
GimpTransformOptions *options;
|
||||||
|
|
||||||
options = GIMP_TRANSFORM_OPTIONS (GIMP_TOOL (tr_tool)->tool_info->tool_options);
|
options =
|
||||||
|
GIMP_TRANSFORM_OPTIONS (GIMP_TOOL (tr_tool)->tool_info->tool_options);
|
||||||
|
|
||||||
if (tr_tool->grid_coords != NULL)
|
if (tr_tool->grid_coords != NULL)
|
||||||
{
|
{
|
||||||
@ -1222,6 +1295,24 @@ transform_ok_callback (GtkWidget *widget,
|
|||||||
gimp_transform_tool_doit (tr_tool, GIMP_TOOL (tr_tool)->gdisp);
|
gimp_transform_tool_doit (tr_tool, GIMP_TOOL (tr_tool)->gdisp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_transform_tool_notify_type (GimpTransformOptions *options,
|
||||||
|
GParamSpec *pspec,
|
||||||
|
GimpTransformTool *tr_tool)
|
||||||
|
{
|
||||||
|
if (tr_tool->function == TRANSFORM_CREATING)
|
||||||
|
return;
|
||||||
|
|
||||||
|
gimp_draw_tool_pause (GIMP_DRAW_TOOL (tr_tool));
|
||||||
|
|
||||||
|
tr_tool->type = options->type;
|
||||||
|
|
||||||
|
/* recalculate the tool's transformation matrix */
|
||||||
|
gimp_transform_tool_recalc (tr_tool, GIMP_TOOL (tr_tool)->gdisp);
|
||||||
|
|
||||||
|
gimp_draw_tool_resume (GIMP_DRAW_TOOL (tr_tool));
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gimp_transform_tool_notify_grid (GimpTransformOptions *options,
|
gimp_transform_tool_notify_grid (GimpTransformOptions *options,
|
||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
@ -1237,18 +1328,3 @@ gimp_transform_tool_notify_grid (GimpTransformOptions *options,
|
|||||||
|
|
||||||
gimp_draw_tool_resume (GIMP_DRAW_TOOL (tr_tool));
|
gimp_draw_tool_resume (GIMP_DRAW_TOOL (tr_tool));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gimp_transform_tool_notify_path (GimpTransformOptions *options,
|
|
||||||
GParamSpec *pspec,
|
|
||||||
GimpTransformTool *tr_tool)
|
|
||||||
{
|
|
||||||
if (tr_tool->function == TRANSFORM_CREATING)
|
|
||||||
return;
|
|
||||||
|
|
||||||
gimp_draw_tool_pause (GIMP_DRAW_TOOL (tr_tool));
|
|
||||||
|
|
||||||
tr_tool->show_path = options->show_path;
|
|
||||||
|
|
||||||
gimp_draw_tool_resume (GIMP_DRAW_TOOL (tr_tool));
|
|
||||||
}
|
|
||||||
|
@ -89,8 +89,8 @@ struct _GimpTransformTool
|
|||||||
*/
|
*/
|
||||||
gdouble *tgrid_coords; /* transformed grid_coords */
|
gdouble *tgrid_coords; /* transformed grid_coords */
|
||||||
|
|
||||||
gboolean notify_connected;
|
gboolean notify_connected;
|
||||||
gboolean show_path;
|
GimpTransformType type;
|
||||||
|
|
||||||
/* transform info dialog */
|
/* transform info dialog */
|
||||||
const gchar *shell_identifier;
|
const gchar *shell_identifier;
|
||||||
@ -105,15 +105,16 @@ struct _GimpTransformToolClass
|
|||||||
GimpDrawToolClass parent_class;
|
GimpDrawToolClass parent_class;
|
||||||
|
|
||||||
/* virtual functions */
|
/* virtual functions */
|
||||||
void (* dialog) (GimpTransformTool *tool);
|
void (* dialog) (GimpTransformTool *tool);
|
||||||
void (* prepare) (GimpTransformTool *tool,
|
void (* prepare) (GimpTransformTool *tool,
|
||||||
GimpDisplay *gdisp);
|
GimpDisplay *gdisp);
|
||||||
void (* motion) (GimpTransformTool *tool,
|
void (* motion) (GimpTransformTool *tool,
|
||||||
GimpDisplay *gdisp);
|
GimpDisplay *gdisp);
|
||||||
void (* recalc) (GimpTransformTool *tool,
|
void (* recalc) (GimpTransformTool *tool,
|
||||||
GimpDisplay *gdisp);
|
GimpDisplay *gdisp);
|
||||||
TileManager * (* transform) (GimpTransformTool *tool,
|
TileManager * (* transform) (GimpTransformTool *tool,
|
||||||
GimpDisplay *gdisp);
|
GimpItem *item,
|
||||||
|
GimpDisplay *gdisp);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -113,6 +113,26 @@ gimp_rect_select_mode_get_type (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static const GEnumValue gimp_transform_type_enum_values[] =
|
||||||
|
{
|
||||||
|
{ GIMP_TRANSFORM_TYPE_LAYER, N_("Transform Active Layer"), "layer" },
|
||||||
|
{ GIMP_TRANSFORM_TYPE_SELECTION, N_("Transform Selection"), "selection" },
|
||||||
|
{ GIMP_TRANSFORM_TYPE_PATH, N_("Transform Active Path"), "path" },
|
||||||
|
{ 0, NULL, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
GType
|
||||||
|
gimp_transform_type_get_type (void)
|
||||||
|
{
|
||||||
|
static GType enum_type = 0;
|
||||||
|
|
||||||
|
if (!enum_type)
|
||||||
|
enum_type = g_enum_register_static ("GimpTransformType", gimp_transform_type_enum_values);
|
||||||
|
|
||||||
|
return enum_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static const GEnumValue gimp_transform_grid_type_enum_values[] =
|
static const GEnumValue gimp_transform_grid_type_enum_values[] =
|
||||||
{
|
{
|
||||||
{ GIMP_TRANSFORM_GRID_TYPE_NONE, N_("Don't Show Grid"), "none" },
|
{ GIMP_TRANSFORM_GRID_TYPE_NONE, N_("Don't Show Grid"), "none" },
|
||||||
|
@ -92,6 +92,18 @@ typedef enum /*< pdb-skip >*/
|
|||||||
} GimpRectSelectMode;
|
} GimpRectSelectMode;
|
||||||
|
|
||||||
|
|
||||||
|
#define GIMP_TYPE_TRANSFORM_TYPE (gimp_transform_type_get_type ())
|
||||||
|
|
||||||
|
GType gimp_transform_type_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
typedef enum /*< pdb-skip >*/
|
||||||
|
{
|
||||||
|
GIMP_TRANSFORM_TYPE_LAYER, /*< desc="Transform Active Layer" >*/
|
||||||
|
GIMP_TRANSFORM_TYPE_SELECTION, /*< desc="Transform Selection" >*/
|
||||||
|
GIMP_TRANSFORM_TYPE_PATH /*< desc="Transform Active Path" >*/
|
||||||
|
} GimpTransformType;
|
||||||
|
|
||||||
|
|
||||||
#define GIMP_TYPE_TRANSFORM_GRID_TYPE (gimp_transform_grid_type_get_type ())
|
#define GIMP_TYPE_TRANSFORM_GRID_TYPE (gimp_transform_grid_type_get_type ())
|
||||||
|
|
||||||
GType gimp_transform_grid_type_get_type (void) G_GNUC_CONST;
|
GType gimp_transform_grid_type_get_type (void) G_GNUC_CONST;
|
||||||
|
@ -133,6 +133,7 @@ static GtkStockItem gimp_stock_items[] =
|
|||||||
{ GIMP_STOCK_VCHAIN, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_VCHAIN, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
{ GIMP_STOCK_VCHAIN_BROKEN, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_VCHAIN_BROKEN, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
|
|
||||||
|
{ GIMP_STOCK_SELECTION, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
{ GIMP_STOCK_SELECTION_REPLACE, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_SELECTION_REPLACE, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
{ GIMP_STOCK_SELECTION_ADD, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_SELECTION_ADD, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
{ GIMP_STOCK_SELECTION_SUBTRACT, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_SELECTION_SUBTRACT, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
@ -189,6 +190,7 @@ static GtkStockItem gimp_stock_items[] =
|
|||||||
{ GIMP_STOCK_CHANNEL_BLUE, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_CHANNEL_BLUE, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
{ GIMP_STOCK_CHANNEL_GRAY, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_CHANNEL_GRAY, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
{ GIMP_STOCK_CHANNEL_ALPHA, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_CHANNEL_ALPHA, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
|
{ GIMP_STOCK_PATH, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
{ GIMP_STOCK_TEMPLATE, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_TEMPLATE, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
|
|
||||||
{ GIMP_STOCK_SELECTION_ALL, NULL, 0, 0, LIBGIMP_DOMAIN },
|
{ GIMP_STOCK_SELECTION_ALL, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||||
@ -287,6 +289,7 @@ gimp_stock_button_pixbufs[] =
|
|||||||
{ GIMP_STOCK_VCHAIN, stock_vchain_24 },
|
{ GIMP_STOCK_VCHAIN, stock_vchain_24 },
|
||||||
{ GIMP_STOCK_VCHAIN_BROKEN, stock_vchain_broken_24 },
|
{ GIMP_STOCK_VCHAIN_BROKEN, stock_vchain_broken_24 },
|
||||||
|
|
||||||
|
{ GIMP_STOCK_SELECTION, stock_selection_16 },
|
||||||
{ GIMP_STOCK_SELECTION_REPLACE, stock_selection_replace_16 },
|
{ GIMP_STOCK_SELECTION_REPLACE, stock_selection_replace_16 },
|
||||||
{ GIMP_STOCK_SELECTION_ADD, stock_selection_add_16 },
|
{ GIMP_STOCK_SELECTION_ADD, stock_selection_add_16 },
|
||||||
{ GIMP_STOCK_SELECTION_SUBTRACT, stock_selection_subtract_16 },
|
{ GIMP_STOCK_SELECTION_SUBTRACT, stock_selection_subtract_16 },
|
||||||
@ -325,6 +328,7 @@ gimp_stock_button_pixbufs[] =
|
|||||||
{ GIMP_STOCK_IMAGE, stock_image_24 },
|
{ GIMP_STOCK_IMAGE, stock_image_24 },
|
||||||
{ GIMP_STOCK_LAYER, stock_layer_24 },
|
{ GIMP_STOCK_LAYER, stock_layer_24 },
|
||||||
{ GIMP_STOCK_TEXT_LAYER, stock_text_layer_24 },
|
{ GIMP_STOCK_TEXT_LAYER, stock_text_layer_24 },
|
||||||
|
{ GIMP_STOCK_PATH, stock_path_22 },
|
||||||
{ GIMP_STOCK_TEMPLATE, stock_template_24 },
|
{ GIMP_STOCK_TEMPLATE, stock_template_24 },
|
||||||
|
|
||||||
{ GIMP_STOCK_LINKED, stock_linked_20 },
|
{ GIMP_STOCK_LINKED, stock_linked_20 },
|
||||||
@ -417,6 +421,7 @@ gimp_stock_menu_pixbufs[] =
|
|||||||
{ GIMP_STOCK_IMAGE, stock_image_16 },
|
{ GIMP_STOCK_IMAGE, stock_image_16 },
|
||||||
{ GIMP_STOCK_LAYER, stock_layer_16 },
|
{ GIMP_STOCK_LAYER, stock_layer_16 },
|
||||||
{ GIMP_STOCK_TEXT_LAYER, stock_text_layer_16 },
|
{ GIMP_STOCK_TEXT_LAYER, stock_text_layer_16 },
|
||||||
|
{ GIMP_STOCK_PATH, stock_path_16 },
|
||||||
{ GIMP_STOCK_TEMPLATE, stock_template_16 },
|
{ GIMP_STOCK_TEMPLATE, stock_template_16 },
|
||||||
|
|
||||||
{ GIMP_STOCK_LINKED, stock_linked_12 },
|
{ GIMP_STOCK_LINKED, stock_linked_12 },
|
||||||
|
@ -66,6 +66,7 @@ G_BEGIN_DECLS
|
|||||||
#define GIMP_STOCK_VCHAIN "gimp-vchain"
|
#define GIMP_STOCK_VCHAIN "gimp-vchain"
|
||||||
#define GIMP_STOCK_VCHAIN_BROKEN "gimp-vchain-broken"
|
#define GIMP_STOCK_VCHAIN_BROKEN "gimp-vchain-broken"
|
||||||
|
|
||||||
|
#define GIMP_STOCK_SELECTION "gimp-selection"
|
||||||
#define GIMP_STOCK_SELECTION_REPLACE "gimp-selection-replace"
|
#define GIMP_STOCK_SELECTION_REPLACE "gimp-selection-replace"
|
||||||
#define GIMP_STOCK_SELECTION_ADD "gimp-selection-add"
|
#define GIMP_STOCK_SELECTION_ADD "gimp-selection-add"
|
||||||
#define GIMP_STOCK_SELECTION_SUBTRACT "gimp-selection-subtract"
|
#define GIMP_STOCK_SELECTION_SUBTRACT "gimp-selection-subtract"
|
||||||
@ -158,6 +159,7 @@ G_BEGIN_DECLS
|
|||||||
#define GIMP_STOCK_CHANNEL_BLUE "gimp-channel-blue"
|
#define GIMP_STOCK_CHANNEL_BLUE "gimp-channel-blue"
|
||||||
#define GIMP_STOCK_CHANNEL_GRAY "gimp-channel-gray"
|
#define GIMP_STOCK_CHANNEL_GRAY "gimp-channel-gray"
|
||||||
#define GIMP_STOCK_CHANNEL_ALPHA "gimp-channel-alpha"
|
#define GIMP_STOCK_CHANNEL_ALPHA "gimp-channel-alpha"
|
||||||
|
#define GIMP_STOCK_PATH "gimp-path"
|
||||||
#define GIMP_STOCK_TEMPLATE "gimp-template"
|
#define GIMP_STOCK_TEMPLATE "gimp-template"
|
||||||
|
|
||||||
#define GIMP_STOCK_IMAGES "gimp-images"
|
#define GIMP_STOCK_IMAGES "gimp-images"
|
||||||
|
@ -61,6 +61,7 @@ STOCK_MENU_IMAGES = \
|
|||||||
stock-list-16.png \
|
stock-list-16.png \
|
||||||
stock-merge-down-16.png \
|
stock-merge-down-16.png \
|
||||||
stock-navigation-16.png \
|
stock-navigation-16.png \
|
||||||
|
stock-path-16.png \
|
||||||
stock-paths-16.png \
|
stock-paths-16.png \
|
||||||
stock-plugin-16.png \
|
stock-plugin-16.png \
|
||||||
stock-portrait-16.png \
|
stock-portrait-16.png \
|
||||||
@ -72,6 +73,7 @@ STOCK_MENU_IMAGES = \
|
|||||||
stock-rotate-270-16.png \
|
stock-rotate-270-16.png \
|
||||||
stock-rotate-90-16.png \
|
stock-rotate-90-16.png \
|
||||||
stock-scale-16.png \
|
stock-scale-16.png \
|
||||||
|
stock-selection-16.png \
|
||||||
stock-selection-all-16.png \
|
stock-selection-all-16.png \
|
||||||
stock-selection-grow-16.png \
|
stock-selection-grow-16.png \
|
||||||
stock-selection-none-16.png \
|
stock-selection-none-16.png \
|
||||||
@ -127,6 +129,7 @@ STOCK_BUTTON_IMAGES = \
|
|||||||
stock-paste-as-new-16.png \
|
stock-paste-as-new-16.png \
|
||||||
stock-paste-into-16.png \
|
stock-paste-into-16.png \
|
||||||
stock-path-stroke-16.png \
|
stock-path-stroke-16.png \
|
||||||
|
stock-path-22.png \
|
||||||
stock-paths-22.png \
|
stock-paths-22.png \
|
||||||
stock-reset-16.png \
|
stock-reset-16.png \
|
||||||
stock-selection-add-16.png \
|
stock-selection-add-16.png \
|
||||||
|
BIN
themes/Default/images/stock-path-16.png
Normal file
BIN
themes/Default/images/stock-path-16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 316 B |
BIN
themes/Default/images/stock-path-22.png
Normal file
BIN
themes/Default/images/stock-path-22.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 502 B |
BIN
themes/Default/images/stock-selection-16.png
Normal file
BIN
themes/Default/images/stock-selection-16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 198 B |
Loading…
Reference in New Issue
Block a user