Since GimpVectorTool is no GimpSelectionTool, it does not make sense to
2003-11-15 Simon Budig <simon@gimp.org> * app/tools/gimpvectoroptions.[ch]: Since GimpVectorTool is no GimpSelectionTool, it does not make sense to have GimpSelectionOptions for it. * app/tools/gimpvectoroptions.c * app/tools/gimpvectortool.c: Connect the Buttons to the Help system and make the to-selection Button modifier aware.
This commit is contained in:
25
ChangeLog
25
ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
2003-11-15 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
|
* app/tools/gimpvectoroptions.[ch]: Since GimpVectorTool is no
|
||||||
|
GimpSelectionTool, it does not make sense to have
|
||||||
|
GimpSelectionOptions for it.
|
||||||
|
|
||||||
|
* app/tools/gimpvectoroptions.c
|
||||||
|
* app/tools/gimpvectortool.c: Connect the Buttons to the
|
||||||
|
Help system and make the to-selection Button modifier
|
||||||
|
aware.
|
||||||
|
|
||||||
2003-11-14 Sven Neumann <sven@gimp.org>
|
2003-11-14 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* libgimpwidgets/gimpwidgets.[ch]: guard old functions using
|
* libgimpwidgets/gimpwidgets.[ch]: guard old functions using
|
||||||
@ -239,7 +250,7 @@
|
|||||||
* app/widgets/gimpsessioninfo.c (gimp_session_info_deserialize):
|
* app/widgets/gimpsessioninfo.c (gimp_session_info_deserialize):
|
||||||
replaced a misleading comment.
|
replaced a misleading comment.
|
||||||
|
|
||||||
2003-11-14 Simon Budig <simon@gimp.org>
|
2003-11-14 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
* app/tools/gimpvectoroptions.c: Add two buttons to the
|
* app/tools/gimpvectoroptions.c: Add two buttons to the
|
||||||
Tool Options
|
Tool Options
|
||||||
@ -360,7 +371,7 @@
|
|||||||
Changed "drawable" to "layer" in all user visible warnings about
|
Changed "drawable" to "layer" in all user visible warnings about
|
||||||
indexed or non-RGB drawables. Cleanup.
|
indexed or non-RGB drawables. Cleanup.
|
||||||
|
|
||||||
2003-11-13 Simon Budig <simon@gimp.org>
|
2003-11-13 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
* app/core/gimpdrawable-stroke.c: removed erraneous offset by
|
* app/core/gimpdrawable-stroke.c: removed erraneous offset by
|
||||||
0.5 pixels.
|
0.5 pixels.
|
||||||
@ -664,7 +675,7 @@
|
|||||||
* app/widgets/gimpdialogfactory.c
|
* app/widgets/gimpdialogfactory.c
|
||||||
* app/widgets/gimptooldialog.c: updated gtk-doc comments.
|
* app/widgets/gimptooldialog.c: updated gtk-doc comments.
|
||||||
|
|
||||||
2003-11-11 Simon Budig <simon@gimp.org>
|
2003-11-11 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
* app/vectors/gimpvectors.c: New vectors now are invisible by
|
* app/vectors/gimpvectors.c: New vectors now are invisible by
|
||||||
default. A quick poll on #gimp revealed that this is more
|
default. A quick poll on #gimp revealed that this is more
|
||||||
@ -1137,7 +1148,7 @@
|
|||||||
|
|
||||||
* libgimpwidgets/gimpquerybox.c: cleanups and fixes.
|
* libgimpwidgets/gimpquerybox.c: cleanups and fixes.
|
||||||
|
|
||||||
2003-11-07 Simon Budig <simon@gimp.org>
|
2003-11-07 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
* app/vectors/gimpvectors.[ch]: New function that appends a
|
* app/vectors/gimpvectors.[ch]: New function that appends a
|
||||||
duplicate of the source vectors strokes to the list of strokes
|
duplicate of the source vectors strokes to the list of strokes
|
||||||
@ -1821,7 +1832,7 @@
|
|||||||
* app/tools/gimptextoptions.c: made all length properties in
|
* app/tools/gimptextoptions.c: made all length properties in
|
||||||
GimpText depend on a single unit.
|
GimpText depend on a single unit.
|
||||||
|
|
||||||
2003-10-26 Simon Budig <simon@gimp.org>
|
2003-10-26 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
* tools/authorsgen/contributors: Fixed/Added some UTF-8 encoded
|
* tools/authorsgen/contributors: Fixed/Added some UTF-8 encoded
|
||||||
names. Please speak up if I did mess up your name.
|
names. Please speak up if I did mess up your name.
|
||||||
@ -2099,7 +2110,7 @@
|
|||||||
* app/widgets/gimptooldialog.c (gimp_tool_dialog_new): fixed
|
* app/widgets/gimptooldialog.c (gimp_tool_dialog_new): fixed
|
||||||
inline documentation.
|
inline documentation.
|
||||||
|
|
||||||
2003-10-22 Simon Budig <simon@gimp.org>
|
2003-10-22 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
* app/tools/gimpvectortool.c: Changed the priority
|
* app/tools/gimpvectortool.c: Changed the priority
|
||||||
of ALT vs. CTRL. Resolves an small issue with (broken)
|
of ALT vs. CTRL. Resolves an small issue with (broken)
|
||||||
@ -3473,7 +3484,7 @@
|
|||||||
* app/gui/dialogs-commands.c (dialogs_detach_tab_cmd_callback):
|
* app/gui/dialogs-commands.c (dialogs_detach_tab_cmd_callback):
|
||||||
implement it using gimp_dockable_detach().
|
implement it using gimp_dockable_detach().
|
||||||
|
|
||||||
2003-10-07 Simon Budig <simon@gimp.org>
|
2003-10-07 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
* docs/Wilber.svg: Debugged winding rule issue,
|
* docs/Wilber.svg: Debugged winding rule issue,
|
||||||
removed redundant paths, added IDs. Indentation madness.
|
removed redundant paths, added IDs. Indentation madness.
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
#include "core/gimptoolinfo.h"
|
#include "core/gimptoolinfo.h"
|
||||||
|
|
||||||
|
#include "widgets/gimphelp-ids.h"
|
||||||
#include "widgets/gimppropwidgets.h"
|
#include "widgets/gimppropwidgets.h"
|
||||||
#include "widgets/gimpwidgets-utils.h"
|
#include "widgets/gimpwidgets-utils.h"
|
||||||
|
|
||||||
@ -81,7 +82,7 @@ gimp_vector_options_get_type (void)
|
|||||||
(GInstanceInitFunc) gimp_vector_options_init,
|
(GInstanceInitFunc) gimp_vector_options_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
type = g_type_register_static (GIMP_TYPE_SELECTION_OPTIONS,
|
type = g_type_register_static (GIMP_TYPE_TOOL_OPTIONS,
|
||||||
"GimpVectorOptions",
|
"GimpVectorOptions",
|
||||||
&info, 0);
|
&info, 0);
|
||||||
}
|
}
|
||||||
@ -176,6 +177,7 @@ gimp_vector_options_gui (GimpToolOptions *tool_options)
|
|||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
GtkWidget *frame;
|
GtkWidget *frame;
|
||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
|
gchar *str;
|
||||||
|
|
||||||
config = G_OBJECT (tool_options);
|
config = G_OBJECT (tool_options);
|
||||||
|
|
||||||
@ -192,17 +194,32 @@ gimp_vector_options_gui (GimpToolOptions *tool_options)
|
|||||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||||
gtk_widget_show (button);
|
gtk_widget_show (button);
|
||||||
|
|
||||||
button = gtk_button_new_with_label (_("Create Selection from Path"));
|
str = g_strdup_printf (_("Path to Selection\n"
|
||||||
|
"%s Add\n"
|
||||||
|
"%s Subtract\n"
|
||||||
|
"%s%s%s Intersect"),
|
||||||
|
gimp_get_mod_name_shift (),
|
||||||
|
gimp_get_mod_name_control (),
|
||||||
|
gimp_get_mod_name_shift (),
|
||||||
|
gimp_get_mod_separator (),
|
||||||
|
gimp_get_mod_name_control ());
|
||||||
|
|
||||||
|
button = gimp_button_new ();
|
||||||
|
gtk_button_set_label (GTK_BUTTON (button), _("Create Selection from Path"));
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||||
gtk_widget_set_sensitive (button, FALSE);
|
gtk_widget_set_sensitive (button, FALSE);
|
||||||
|
gimp_help_set_help_data (button, str, GIMP_HELP_PATH_SELECTION_REPLACE);
|
||||||
gtk_widget_show (button);
|
gtk_widget_show (button);
|
||||||
|
|
||||||
|
g_free (str);
|
||||||
|
|
||||||
g_object_set_data (G_OBJECT (tool_options),
|
g_object_set_data (G_OBJECT (tool_options),
|
||||||
"gimp-vectors-to-selection", button);
|
"gimp-vectors-to-selection", button);
|
||||||
|
|
||||||
button = gtk_button_new_with_label (_("Stroke Path"));
|
button = gtk_button_new_with_label (_("Stroke Path"));
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||||
gtk_widget_set_sensitive (button, FALSE);
|
gtk_widget_set_sensitive (button, FALSE);
|
||||||
|
gimp_help_set_help_data (button, NULL, GIMP_HELP_PATH_STROKE);
|
||||||
gtk_widget_show (button);
|
gtk_widget_show (button);
|
||||||
|
|
||||||
g_object_set_data (G_OBJECT (tool_options),
|
g_object_set_data (G_OBJECT (tool_options),
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#define __GIMP_VECTOR_OPTIONS_H__
|
#define __GIMP_VECTOR_OPTIONS_H__
|
||||||
|
|
||||||
|
|
||||||
#include "gimpselectionoptions.h"
|
#include "core/gimptooloptions.h"
|
||||||
|
|
||||||
|
|
||||||
#define GIMP_TYPE_VECTOR_OPTIONS (gimp_vector_options_get_type ())
|
#define GIMP_TYPE_VECTOR_OPTIONS (gimp_vector_options_get_type ())
|
||||||
@ -36,10 +36,10 @@ typedef struct _GimpToolOptionsClass GimpVectorOptionsClass;
|
|||||||
|
|
||||||
struct _GimpVectorOptions
|
struct _GimpVectorOptions
|
||||||
{
|
{
|
||||||
GimpSelectionOptions parent_instance;
|
GimpToolOptions parent_instance;
|
||||||
|
|
||||||
GimpVectorMode edit_mode;
|
GimpVectorMode edit_mode;
|
||||||
gboolean polygonal;
|
gboolean polygonal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -136,6 +136,9 @@ static void gimp_vector_tool_undo_push (GimpVectorTool *vector_tool,
|
|||||||
const gchar *desc);
|
const gchar *desc);
|
||||||
|
|
||||||
static void gimp_vector_tool_to_selection (GimpVectorTool *vector_tool);
|
static void gimp_vector_tool_to_selection (GimpVectorTool *vector_tool);
|
||||||
|
static void gimp_vector_tool_to_selection_extended
|
||||||
|
(GimpVectorTool *vector_tool,
|
||||||
|
gint state);
|
||||||
static void gimp_vector_tool_stroke_vectors (GimpVectorTool *vector_tool,
|
static void gimp_vector_tool_stroke_vectors (GimpVectorTool *vector_tool,
|
||||||
GtkWidget *button);
|
GtkWidget *button);
|
||||||
|
|
||||||
@ -1503,6 +1506,9 @@ gimp_vector_tool_set_vectors (GimpVectorTool *vector_tool,
|
|||||||
g_signal_handlers_disconnect_by_func (sel_button,
|
g_signal_handlers_disconnect_by_func (sel_button,
|
||||||
gimp_vector_tool_to_selection,
|
gimp_vector_tool_to_selection,
|
||||||
tool);
|
tool);
|
||||||
|
g_signal_handlers_disconnect_by_func (sel_button,
|
||||||
|
gimp_vector_tool_to_selection_extended,
|
||||||
|
tool);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stroke_button)
|
if (stroke_button)
|
||||||
@ -1553,6 +1559,9 @@ gimp_vector_tool_set_vectors (GimpVectorTool *vector_tool,
|
|||||||
g_signal_connect_swapped (sel_button, "clicked",
|
g_signal_connect_swapped (sel_button, "clicked",
|
||||||
G_CALLBACK (gimp_vector_tool_to_selection),
|
G_CALLBACK (gimp_vector_tool_to_selection),
|
||||||
tool);
|
tool);
|
||||||
|
g_signal_connect_swapped (sel_button, "extended_clicked",
|
||||||
|
G_CALLBACK (gimp_vector_tool_to_selection_extended),
|
||||||
|
tool);
|
||||||
gtk_widget_set_sensitive (sel_button, TRUE);
|
gtk_widget_set_sensitive (sel_button, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1740,19 +1749,41 @@ gimp_vector_tool_undo_push (GimpVectorTool *vector_tool, const gchar *desc)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
gimp_vector_tool_to_selection (GimpVectorTool *vector_tool)
|
gimp_vector_tool_to_selection (GimpVectorTool *vector_tool)
|
||||||
|
{
|
||||||
|
gimp_vector_tool_to_selection_extended (vector_tool, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_vector_tool_to_selection_extended (GimpVectorTool *vector_tool,
|
||||||
|
gint state)
|
||||||
{
|
{
|
||||||
GimpImage *gimage;
|
GimpImage *gimage;
|
||||||
|
GimpChannelOps operation = GIMP_CHANNEL_OP_REPLACE;
|
||||||
|
|
||||||
if (! vector_tool->vectors)
|
if (! vector_tool->vectors)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
gimage = gimp_item_get_image (GIMP_ITEM (vector_tool->vectors));
|
gimage = gimp_item_get_image (GIMP_ITEM (vector_tool->vectors));
|
||||||
|
|
||||||
|
if (state & GDK_SHIFT_MASK)
|
||||||
|
{
|
||||||
|
if (state & GDK_CONTROL_MASK)
|
||||||
|
operation = GIMP_CHANNEL_OP_INTERSECT;
|
||||||
|
else
|
||||||
|
operation = GIMP_CHANNEL_OP_ADD;
|
||||||
|
}
|
||||||
|
else if (state & GDK_CONTROL_MASK)
|
||||||
|
{
|
||||||
|
operation = GIMP_CHANNEL_OP_SUBTRACT;
|
||||||
|
}
|
||||||
|
|
||||||
gimp_channel_select_vectors (gimp_image_get_mask (gimage),
|
gimp_channel_select_vectors (gimp_image_get_mask (gimage),
|
||||||
_("Path to Selection"),
|
_("Path to Selection"),
|
||||||
vector_tool->vectors,
|
vector_tool->vectors,
|
||||||
GIMP_CHANNEL_OP_REPLACE,
|
operation,
|
||||||
TRUE, FALSE, 0, 0);
|
TRUE, FALSE, 0, 0);
|
||||||
|
gimp_image_flush (gimage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user