mirror of https://github.com/GNOME/gimp.git
Merged from trunk revisions 26246:26352.
svn path=/branches/soc-2008-tagging/; revision=26353
This commit is contained in:
parent
bdf1342419
commit
963abb0c2e
264
ChangeLog
264
ChangeLog
|
@ -17,6 +17,10 @@
|
|||
* app/widgets/gimptagentry.c: hide tags on assign tag entry when
|
||||
selected item is not visible in the view.
|
||||
|
||||
2008-07-31 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/core/gimpimage-scale.c (gimp_image_scale): formatting.
|
||||
|
||||
2008-07-31 Aurimas Juška <aurisj@svn.gnome.org>
|
||||
|
||||
* app/widgets/gimpcombotagentry.[ch]
|
||||
|
@ -29,6 +33,19 @@
|
|||
* app/widgets/gimptagentry.c (gimp_tag_entry_assign_tags): don't unref
|
||||
tags since they are currently only referenced by tagged objects.
|
||||
|
||||
2008-07-30 Jakub Steiner <jimmac@ximian.com>
|
||||
|
||||
* data/images/gimp-splash.png: new devel splash from
|
||||
Aurore Derriennic <aurore.d@gmail.com>
|
||||
|
||||
2008-07-30 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/dialogs/file-open-dialog.c (file_open_dialog_response):
|
||||
attach the URI of the last opened image to the Gimp object.
|
||||
|
||||
* app/actions/file-commands.c (file_open_dialog_show): use the
|
||||
last opened URI as a fallback for initializing the dialog.
|
||||
|
||||
2008-07-30 Aurimas Juška <aurisj@svn.gnome.org>
|
||||
|
||||
* app/widgets/gimptagentry.c (gimp_tag_entry_dispose): free recently
|
||||
|
@ -41,6 +58,22 @@
|
|||
tag and release mouse button. Selected tag is toggled
|
||||
selected/deselected and popup is closed.
|
||||
|
||||
2008-07-29 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* plug-ins/common/Makefile.am
|
||||
* plug-ins/common/plugin-defs.pl
|
||||
* plug-ins/common/psd-save.c: removed psd-save source here ...
|
||||
|
||||
* plug-ins/psd/Makefile.am
|
||||
* plug-ins/psd/psd-save.c: ... and added it back here.
|
||||
|
||||
2008-07-29 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* tools/pdbgen/pdb/vectors.pdb: added the real name of the author
|
||||
of the new PDB function.
|
||||
|
||||
* app/pdb/vectors-cmds.c: regenerated.
|
||||
|
||||
2008-07-29 Aurimas Juška <aurisj@svn.gnome.org>
|
||||
|
||||
* app/widgets/gimptagentry.[ch]: added support for switching between
|
||||
|
@ -61,6 +94,46 @@
|
|||
been moved to a separate class GimpTagPopup in order to prepare for
|
||||
upcoming feature additions.
|
||||
|
||||
2008-07-28 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* tools/pdbgen/pdb/edit.pdb (edit_stroke_vectors_invoker): check
|
||||
that the passed vectors item is attached.
|
||||
|
||||
* app/pdb/edit-cmds.c: regenerated.
|
||||
|
||||
2008-07-28 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* tools/pdbgen/pdb/vectors.pdb: applied patch from LightningIsMyName
|
||||
adding the new PDB function gimp-vectors-copy (bug #544212).
|
||||
|
||||
* app/pdb/internal-procs.c
|
||||
* app/pdb/vectors-cmds.c
|
||||
* libgimp/gimpvectors_pdb.[ch]: regenerated.
|
||||
|
||||
* libgimp/gimp.def: updated.
|
||||
|
||||
2008-07-27 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/text/gimptext-compat.c (text_get_extents): applied the same
|
||||
workaround for a memory leak in PangoFT2 (bug #143542) as was
|
||||
applied long ago in gimptextlayout.c.
|
||||
|
||||
2008-07-27 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/text/gimptext-compat.c (text_get_extents)
|
||||
* app/text/gimptextlayout-render.c (gimp_text_layout_render):
|
||||
use the readonly variant of pango_layout_iter_get_line().
|
||||
|
||||
2008-07-27 Martin Nordholts <martinn@svn.gnome.org>
|
||||
|
||||
* app/tools/gimprectangletool.c
|
||||
(gimp_rectangle_tool_synthesize_motion): Bail out if there is no
|
||||
pending rectangle to synthesize a motion on. Fixes bug #544181.
|
||||
|
||||
2008-07-27 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* plug-ins/psd/Makefile.am: renamed executable to 'psd-load'.
|
||||
|
||||
2008-07-27 Aurimas Juška <aurisj@svn.gnome.org>
|
||||
|
||||
* app/widgets/gimpcombotagentry.c: ported GimpComboTagEntry to use
|
||||
|
@ -107,6 +180,151 @@
|
|||
* app/widgets/gimpcombotagentry.[ch]: improved tag drawing in popup
|
||||
list.
|
||||
|
||||
2008-07-24 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gtkscalebutton.c: added missing prototypes.
|
||||
|
||||
2008-07-24 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* plug-ins/help/gimphelplocale.c: formatting.
|
||||
|
||||
2008-07-24 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* configure.in: minor cleanup of the checks for the URI plug-in.
|
||||
|
||||
* plug-ins/uri/Makefile.am: changed accordingly.
|
||||
|
||||
2008-07-24 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* plug-ins/uri/uri-backend-libcurl.c: use g_fopen().
|
||||
|
||||
* plug-ins/uri/uri-backend-gvfs.c: formatting.
|
||||
|
||||
2008-07-24 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/paint/gimppaintcore-stroke.c
|
||||
(gimp_paint_core_stroke_emulate_dynamics): renamed variables.
|
||||
|
||||
2008-07-23 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/paint/gimppaintcore-stroke.[ch]: also implement brush
|
||||
dynamics emulation for stroking selections.
|
||||
|
||||
* app/core/gimpchannel.c: pass the 'emulate-dynamics' parameter to
|
||||
gimp_paint_core_stroke_boundary().
|
||||
|
||||
2008-07-23 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gimpsessioninfo.c (gimp_session_info_get_geometry):
|
||||
don't report negative offsets, they would be interpreted wrongly.
|
||||
|
||||
2008-07-23 Sven Neumann <sven@gimp.org>
|
||||
|
||||
Based on a patch from Alexia Death (bug #543706):
|
||||
|
||||
* app/paint/gimppaintcore-stroke.[ch]
|
||||
(gimp_paint_core_stroke_vectors): added code to emulate brush
|
||||
dynamics by modifying pressure and velocity along the stroke.
|
||||
|
||||
* app/vectors/gimpvectors.c (gimp_vectors_stroke): pass the
|
||||
'emulate-dynamics' parameter to gimp_paint_core_stroke_vectors().
|
||||
|
||||
2008-07-23 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gimpcontrollerinfo.c
|
||||
* app/widgets/gimpcontrollerlist.c
|
||||
* app/widgets/gimpdasheditor.c
|
||||
* app/widgets/gimpdock.c
|
||||
* app/widgets/gimpeditor.c
|
||||
* app/widgets/gimpgrideditor.c
|
||||
* app/widgets/gimppdbdialog.c
|
||||
* app/widgets/gimppluginaction.c
|
||||
* app/widgets/gimpstrokeeditor.c
|
||||
* app/widgets/gimptemplateeditor.c
|
||||
* libgimpwidgets/gimpcolorprofilecombobox.c: no need to cast the
|
||||
return value of g_value_dup_object().
|
||||
|
||||
2008-07-23 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/core/gimpguideundo.c
|
||||
* app/core/gimpitemundo.c
|
||||
* app/core/gimplayermaskundo.c
|
||||
* app/core/gimppdbprogress.c
|
||||
* app/core/gimpstrokedesc.c
|
||||
* app/core/gimptooloptions.c
|
||||
* app/core/gimptoolpresets.c
|
||||
* app/paint/gimppaintoptions.c
|
||||
* app/text/gimpfont.c
|
||||
* app/tools/gimptool.c
|
||||
* app/widgets/gimpaction.c
|
||||
* app/widgets/gimpcontrollereditor.c: no need to cast the return
|
||||
value of g_value_dup_object().
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gimpcellrendererviewable.c: no need to cast the
|
||||
return value of g_value_dup_object().
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* plug-ins/help-browser/dialog.c (build_menu): check the return
|
||||
value of webkit_web_history_item_get_title() to guard us against
|
||||
a (reported) bug in WebKit.
|
||||
|
||||
2008-07-22 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/widgets/gimpviewrendererimagefile.c
|
||||
(gimp_view_renderer_imagefile_get_icon): guard against
|
||||
g_file_query_info() returning NULL (if the file doesn't exist or
|
||||
whatever error).
|
||||
|
||||
2008-07-22 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/tools/gimpcolortool.c: set scroll_lock to TRUE while moving
|
||||
or creating sample points so the image doesn't scroll while a new
|
||||
sample point is dragged from the rulers and sample points can be
|
||||
deleted by dragging them out of image without scrolling at the
|
||||
same time.
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/tools/gimpvectortool.c: only use the position from the event
|
||||
coordinates when creating or modifying strokes. Initialize all
|
||||
other GimpCoords fields with default values.
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/vectors/gimpbezierstroke.c: formatting.
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gimpsessioninfo-aux.c
|
||||
(gimp_session_info_aux_new_from_props): plugged memory leak.
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gimphistogramview.c
|
||||
(gimp_histogram_view_set_background): fixed refcounting issue.
|
||||
This plugs the memory leak I tried to fix in GimpHistogramEditor.
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/base/gimphistogram.[ch]: added new method
|
||||
gimp_histogram_duplicate().
|
||||
|
||||
* app/widgets/gimphistogrameditor.c
|
||||
(gimp_histogram_editor_frozen_update): instead of recalculating
|
||||
the histogram, use a duplicate for the background histogram.
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gimphistogrameditor.c (gimp_histogram_editor_set_image):
|
||||
reverted last change, it did not plug the leak.
|
||||
|
||||
2008-07-22 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/gui/session.c (session_init): plugged a small memory leak.
|
||||
|
||||
2008-07-22 Aurimas Juška <aurisj@svn.gnome.org>
|
||||
|
||||
* app/widgets/gimpcombotagentry.c
|
||||
|
@ -120,6 +338,52 @@
|
|||
(gimp_tag_entry_toggle_desc): fixed ill recursion which later results
|
||||
in segmentation fault.
|
||||
|
||||
2008-07-21 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/widgets/gimphistogrameditor.c
|
||||
(gimp_histogram_editor_set_image): always unset and unref the
|
||||
histograms. Plugs a memory leak reported by valgrind.
|
||||
|
||||
2008-07-21 Simon Budig <simon@gimp.org>
|
||||
|
||||
* app/core/gimpcoords.c: incorporate the velocity.
|
||||
|
||||
2008-07-21 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/tools/gimpdrawtool.c (gimp_draw_tool_on_vectors_handle):
|
||||
plugged a not so small memory leak.
|
||||
|
||||
2008-07-21 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/actions/windows-actions.c (windows_actions_dock_notify):
|
||||
plugged another small memory leak.
|
||||
|
||||
2008-07-21 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/menus/file-menu.c (file_menu_open_recent_query_tooltip):
|
||||
plugged a small memory leak.
|
||||
|
||||
2008-07-21 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/core/gimpstrokedesc.[ch]: added boolean property
|
||||
'emulate-brush-dynamics', in preparation for bug #543706.
|
||||
|
||||
* app/dialogs/stroke-dialog.c: added a toggle for the new parameter.
|
||||
|
||||
2008-07-21 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* configure.in (ALL_LINGUAS): updated note to translators.
|
||||
|
||||
2008-07-21 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/gui/splash.c
|
||||
* plug-ins/common/*.c: don't use gtk_box_pack_start_defaults(),
|
||||
it got deprecated in GTK+ trunk.
|
||||
|
||||
2008-07-21 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* configure.in (ALL_LINGUAS): added 'be' (Belarusian).
|
||||
|
||||
2008-07-21 Aurimas Juška <aurisj@svn.gnome.org>
|
||||
|
||||
* app/widgets/gimpdatafactoryview.c
|
||||
|
|
|
@ -65,6 +65,7 @@
|
|||
/* local function prototypes */
|
||||
|
||||
static void file_open_dialog_show (GtkWidget *parent,
|
||||
Gimp *gimp,
|
||||
GimpImage *image,
|
||||
const gchar *uri,
|
||||
gboolean open_as_layers);
|
||||
|
@ -90,9 +91,11 @@ void
|
|||
file_open_cmd_callback (GtkAction *action,
|
||||
gpointer data)
|
||||
{
|
||||
Gimp *gimp;
|
||||
GimpImage *image;
|
||||
GtkWidget *widget;
|
||||
const gchar *uri = NULL;
|
||||
return_if_no_gimp (gimp, data);
|
||||
return_if_no_widget (widget, data);
|
||||
|
||||
image = action_data_get_image (data);
|
||||
|
@ -100,24 +103,26 @@ file_open_cmd_callback (GtkAction *action,
|
|||
if (image)
|
||||
uri = gimp_object_get_name (GIMP_OBJECT (image));
|
||||
|
||||
file_open_dialog_show (widget, NULL, uri, FALSE);
|
||||
file_open_dialog_show (widget, gimp, NULL, uri, FALSE);
|
||||
}
|
||||
|
||||
void
|
||||
file_open_as_layers_cmd_callback (GtkAction *action,
|
||||
gpointer data)
|
||||
{
|
||||
Gimp *gimp;
|
||||
GimpDisplay *display;
|
||||
GtkWidget *widget;
|
||||
GimpImage *image;
|
||||
const gchar *uri;
|
||||
return_if_no_gimp (gimp, data);
|
||||
return_if_no_display (display, data);
|
||||
return_if_no_widget (widget, data);
|
||||
|
||||
image = display->image;
|
||||
uri = gimp_object_get_name (GIMP_OBJECT (image));
|
||||
|
||||
file_open_dialog_show (widget, image, uri, TRUE);
|
||||
file_open_dialog_show (widget, gimp, image, uri, TRUE);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -436,7 +441,7 @@ file_file_open_dialog (Gimp *gimp,
|
|||
const gchar *uri,
|
||||
GtkWidget *parent)
|
||||
{
|
||||
file_open_dialog_show (parent, NULL, uri, FALSE);
|
||||
file_open_dialog_show (parent, gimp, NULL, uri, FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -444,6 +449,7 @@ file_file_open_dialog (Gimp *gimp,
|
|||
|
||||
static void
|
||||
file_open_dialog_show (GtkWidget *parent,
|
||||
Gimp *gimp,
|
||||
GimpImage *image,
|
||||
const gchar *uri,
|
||||
gboolean open_as_layers)
|
||||
|
@ -456,6 +462,9 @@ file_open_dialog_show (GtkWidget *parent,
|
|||
|
||||
if (dialog)
|
||||
{
|
||||
if (! uri)
|
||||
uri = g_object_get_data (G_OBJECT (gimp), "gimp-file-open-last-uri");
|
||||
|
||||
if (uri)
|
||||
gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (dialog), uri);
|
||||
|
||||
|
|
|
@ -321,9 +321,11 @@ windows_actions_dock_notify (GimpDock *dock,
|
|||
GimpActionGroup *group)
|
||||
{
|
||||
GtkAction *action;
|
||||
gchar *action_name = g_strdup_printf ("windows-dock-%04d", dock->ID);
|
||||
gchar *action_name;
|
||||
|
||||
action_name = g_strdup_printf ("windows-dock-%04d", dock->ID);
|
||||
action = gtk_action_group_get_action (GTK_ACTION_GROUP (group), action_name);
|
||||
g_free (action_name);
|
||||
|
||||
if (action)
|
||||
g_object_set (action,
|
||||
|
|
|
@ -102,6 +102,39 @@ gimp_histogram_unref (GimpHistogram *histogram)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_histogram_duplicate:
|
||||
* @histogram: a %GimpHistogram
|
||||
*
|
||||
* Creates a duplicate of @histogram. The duplicate has a reference
|
||||
* count of 1 and contains the values from @histogram.
|
||||
*
|
||||
* Return value: a newly allocated %GimpHistogram
|
||||
**/
|
||||
GimpHistogram *
|
||||
gimp_histogram_duplicate (GimpHistogram *histogram)
|
||||
{
|
||||
GimpHistogram *dup;
|
||||
|
||||
g_return_val_if_fail (histogram != NULL, NULL);
|
||||
|
||||
dup = gimp_histogram_new ();
|
||||
|
||||
#ifdef ENABLE_MP
|
||||
g_static_mutex_lock (&histogram->mutex);
|
||||
#endif
|
||||
|
||||
dup->n_channels = histogram->n_channels;
|
||||
dup->values[0] = g_memdup (histogram->values[0],
|
||||
sizeof (gdouble) * dup->n_channels * 256);
|
||||
|
||||
#ifdef ENABLE_MP
|
||||
g_static_mutex_unlock (&histogram->mutex);
|
||||
#endif
|
||||
|
||||
return dup;
|
||||
}
|
||||
|
||||
void
|
||||
gimp_histogram_calculate (GimpHistogram *histogram,
|
||||
PixelRegion *region,
|
||||
|
|
|
@ -23,9 +23,12 @@
|
|||
|
||||
|
||||
GimpHistogram * gimp_histogram_new (void);
|
||||
|
||||
GimpHistogram * gimp_histogram_ref (GimpHistogram *histogram);
|
||||
void gimp_histogram_unref (GimpHistogram *histogram);
|
||||
|
||||
GimpHistogram * gimp_histogram_duplicate (GimpHistogram *histogram);
|
||||
|
||||
void gimp_histogram_calculate (GimpHistogram *histogram,
|
||||
PixelRegion *region,
|
||||
PixelRegion *mask);
|
||||
|
|
|
@ -712,6 +712,7 @@ gimp_channel_stroke (GimpItem *item,
|
|||
|
||||
retval = gimp_paint_core_stroke_boundary (core, drawable,
|
||||
stroke_desc->paint_options,
|
||||
stroke_desc->emulate_dynamics,
|
||||
segs_in, n_segs_in,
|
||||
offset_x, offset_y,
|
||||
error);
|
||||
|
|
|
@ -120,7 +120,8 @@ gimp_coords_scalarprod (const GimpCoords *a,
|
|||
a->pressure * b->pressure +
|
||||
a->xtilt * b->xtilt +
|
||||
a->ytilt * b->ytilt +
|
||||
a->wheel * b->wheel);
|
||||
a->wheel * b->wheel +
|
||||
a->velocity * a->velocity);
|
||||
}
|
||||
|
||||
|
||||
|
@ -141,6 +142,7 @@ gimp_coords_length_squared (const GimpCoords *a)
|
|||
upscaled_a.xtilt = a->xtilt * INPUT_RESOLUTION;
|
||||
upscaled_a.ytilt = a->ytilt * INPUT_RESOLUTION;
|
||||
upscaled_a.wheel = a->wheel * INPUT_RESOLUTION;
|
||||
upscaled_a.velocity = a->velocity * INPUT_RESOLUTION;
|
||||
|
||||
return gimp_coords_scalarprod (&upscaled_a, &upscaled_a);
|
||||
}
|
||||
|
@ -167,6 +169,7 @@ gimp_coords_manhattan_dist (const GimpCoords *a,
|
|||
dist += ABS (a->xtilt - b->xtilt);
|
||||
dist += ABS (a->ytilt - b->ytilt);
|
||||
dist += ABS (a->wheel - b->wheel);
|
||||
dist += ABS (a->velocity - b->velocity);
|
||||
|
||||
dist *= INPUT_RESOLUTION;
|
||||
|
||||
|
@ -185,5 +188,6 @@ gimp_coords_equal (const GimpCoords *a,
|
|||
a->pressure == b->pressure &&
|
||||
a->xtilt == b->xtilt &&
|
||||
a->ytilt == b->ytilt &&
|
||||
a->wheel == b->wheel);
|
||||
a->wheel == b->wheel &&
|
||||
a->velocity == b->velocity);
|
||||
}
|
||||
|
|
|
@ -115,7 +115,7 @@ gimp_guide_undo_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_GUIDE:
|
||||
guide_undo->guide = (GimpGuide *) g_value_dup_object (value);
|
||||
guide_undo->guide = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -192,7 +192,9 @@ gimp_image_scale (GimpImage *image,
|
|||
}
|
||||
|
||||
/* Scale all sample points */
|
||||
for (list = gimp_image_get_sample_points (image); list; list = g_list_next (list))
|
||||
for (list = gimp_image_get_sample_points (image);
|
||||
list;
|
||||
list = g_list_next (list))
|
||||
{
|
||||
GimpSamplePoint *sample_point = list->data;
|
||||
|
||||
|
|
|
@ -107,8 +107,9 @@ gimp_item_undo_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_ITEM:
|
||||
item_undo->item = (GimpItem *) g_value_dup_object (value);
|
||||
item_undo->item = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
@ -128,6 +129,7 @@ gimp_item_undo_get_property (GObject *object,
|
|||
case PROP_ITEM:
|
||||
g_value_set_object (value, item_undo->item);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
|
|
@ -119,7 +119,7 @@ gimp_layer_mask_undo_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_LAYER_MASK:
|
||||
layer_mask_undo->layer_mask = (GimpLayerMask *) g_value_dup_object (value);
|
||||
layer_mask_undo->layer_mask = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -237,13 +237,13 @@ gimp_pdb_progress_set_property (GObject *object,
|
|||
case PROP_PDB:
|
||||
if (progress->pdb)
|
||||
g_object_unref (progress->pdb);
|
||||
progress->pdb = GIMP_PDB (g_value_dup_object (value));
|
||||
progress->pdb = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_CONTEXT:
|
||||
if (progress->context)
|
||||
g_object_unref (progress->context);
|
||||
progress->context = GIMP_CONTEXT (g_value_dup_object (value));
|
||||
progress->context = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_CALLBACK_NAME:
|
||||
|
|
|
@ -47,6 +47,7 @@ enum
|
|||
PROP_METHOD,
|
||||
PROP_STROKE_OPTIONS,
|
||||
PROP_PAINT_INFO,
|
||||
PROP_EMULATE_DYNAMICS,
|
||||
PROP_PAINT_OPTIONS
|
||||
};
|
||||
|
||||
|
@ -109,6 +110,10 @@ gimp_stroke_desc_class_init (GimpStrokeDescClass *klass)
|
|||
"paint-info", NULL,
|
||||
GIMP_TYPE_PAINT_INFO,
|
||||
GIMP_PARAM_STATIC_STRINGS);
|
||||
GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_EMULATE_DYNAMICS,
|
||||
"emulate-brush-dynamics", NULL,
|
||||
FALSE,
|
||||
GIMP_PARAM_STATIC_STRINGS);
|
||||
GIMP_CONFIG_INSTALL_PROP_OBJECT (object_class, PROP_PAINT_OPTIONS,
|
||||
"paint-options", NULL,
|
||||
GIMP_TYPE_PAINT_OPTIONS,
|
||||
|
@ -189,23 +194,31 @@ gimp_stroke_desc_set_property (GObject *object,
|
|||
case PROP_GIMP:
|
||||
desc->gimp = g_value_get_object (value);
|
||||
break;
|
||||
|
||||
case PROP_METHOD:
|
||||
desc->method = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
case PROP_STROKE_OPTIONS:
|
||||
if (g_value_get_object (value))
|
||||
gimp_config_sync (g_value_get_object (value),
|
||||
G_OBJECT (desc->stroke_options), 0);
|
||||
break;
|
||||
|
||||
case PROP_PAINT_INFO:
|
||||
if (desc->paint_info)
|
||||
g_object_unref (desc->paint_info);
|
||||
desc->paint_info = (GimpPaintInfo *) g_value_dup_object (value);
|
||||
desc->paint_info = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_EMULATE_DYNAMICS:
|
||||
desc->emulate_dynamics = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_PAINT_OPTIONS:
|
||||
if (desc->paint_options)
|
||||
g_object_unref (desc->paint_options);
|
||||
desc->paint_options = (GimpPaintOptions *) g_value_dup_object (value);
|
||||
desc->paint_options = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -227,15 +240,23 @@ gimp_stroke_desc_get_property (GObject *object,
|
|||
case PROP_GIMP:
|
||||
g_value_set_object (value, desc->gimp);
|
||||
break;
|
||||
|
||||
case PROP_METHOD:
|
||||
g_value_set_enum (value, desc->method);
|
||||
break;
|
||||
|
||||
case PROP_STROKE_OPTIONS:
|
||||
g_value_set_object (value, desc->stroke_options);
|
||||
break;
|
||||
|
||||
case PROP_PAINT_INFO:
|
||||
g_value_set_object (value, desc->paint_info);
|
||||
break;
|
||||
|
||||
case PROP_EMULATE_DYNAMICS:
|
||||
g_value_set_boolean (value, desc->emulate_dynamics);
|
||||
break;
|
||||
|
||||
case PROP_PAINT_OPTIONS:
|
||||
g_value_set_object (value, desc->paint_options);
|
||||
break;
|
||||
|
|
|
@ -46,13 +46,14 @@ struct _GimpStrokeDesc
|
|||
|
||||
GimpStrokeOptions *stroke_options;
|
||||
GimpPaintInfo *paint_info;
|
||||
gboolean emulate_dynamics;
|
||||
|
||||
GimpPaintOptions *paint_options;
|
||||
};
|
||||
|
||||
struct _GimpStrokeDescClass
|
||||
{
|
||||
GimpObjectClass parent_class;
|
||||
GimpObjectClass parent_class;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -106,7 +106,7 @@ gimp_tool_options_set_property (GObject *object,
|
|||
options->tool_info == tool_info);
|
||||
|
||||
if (! options->tool_info)
|
||||
options->tool_info = GIMP_TOOL_INFO (g_value_dup_object (value));
|
||||
options->tool_info = g_value_dup_object (value);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -139,7 +139,7 @@ gimp_tool_presets_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_TOOL_INFO:
|
||||
presets->tool_info = GIMP_TOOL_INFO (g_value_dup_object (value));
|
||||
presets->tool_info = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -118,6 +118,10 @@ file_open_dialog_response (GtkWidget *open_dialog,
|
|||
|
||||
uris = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (open_dialog));
|
||||
|
||||
if (uris)
|
||||
g_object_set_data_full (G_OBJECT (gimp), "gimp-file-open-last-uri",
|
||||
g_strdup (uris->data), (GDestroyNotify) g_free);
|
||||
|
||||
gimp_file_dialog_set_sensitive (dialog, FALSE);
|
||||
|
||||
for (list = uris; list; list = g_slist_next (list))
|
||||
|
|
|
@ -204,18 +204,24 @@ stroke_dialog_new (GimpItem *item,
|
|||
NULL);
|
||||
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *combo;
|
||||
GtkWidget *button;
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 6);
|
||||
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
gtk_widget_set_sensitive (vbox,
|
||||
desc->method == GIMP_STROKE_METHOD_PAINT_CORE);
|
||||
g_object_set_data (G_OBJECT (paint_radio), "set_sensitive", vbox);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 6);
|
||||
gtk_container_add (GTK_CONTAINER (frame), hbox);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
gtk_widget_set_sensitive (hbox,
|
||||
desc->method == GIMP_STROKE_METHOD_PAINT_CORE);
|
||||
g_object_set_data (G_OBJECT (paint_radio), "set_sensitive", hbox);
|
||||
|
||||
label = gtk_label_new (_("Paint tool:"));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
@ -234,6 +240,12 @@ stroke_dialog_new (GimpItem *item,
|
|||
|
||||
|
||||
g_object_set_data (G_OBJECT (dialog), "gimp-tool-menu", combo);
|
||||
|
||||
button = gimp_prop_check_button_new (G_OBJECT (desc),
|
||||
"emulate-brush-dynamics",
|
||||
_("_Emulate brush dynamics"));
|
||||
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
|
||||
gtk_widget_show (button);
|
||||
}
|
||||
|
||||
return dialog;
|
||||
|
|
|
@ -155,6 +155,8 @@ session_init (Gimp *gimp)
|
|||
skip = (info->toplevel_entry == NULL);
|
||||
}
|
||||
|
||||
g_free (entry_name);
|
||||
|
||||
if (GIMP_CONFIG_GET_INTERFACE (info)->deserialize (GIMP_CONFIG (info),
|
||||
scanner,
|
||||
1,
|
||||
|
|
|
@ -151,7 +151,7 @@ splash_create (gboolean be_verbose)
|
|||
splash->area = gtk_image_new_from_animation (pixbuf);
|
||||
}
|
||||
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), splash->area);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), splash->area, TRUE, TRUE, 0);
|
||||
gtk_widget_show (splash->area);
|
||||
|
||||
gtk_widget_set_size_request (splash->area, splash->width, splash->height);
|
||||
|
|
|
@ -105,7 +105,12 @@ file_menu_open_recent_query_tooltip (GtkWidget *widget,
|
|||
GtkTooltip *tooltip,
|
||||
GimpAction *action)
|
||||
{
|
||||
gtk_tooltip_set_text (tooltip, gtk_widget_get_tooltip_text (widget));
|
||||
gchar *text;
|
||||
|
||||
text = gtk_widget_get_tooltip_text (widget);
|
||||
gtk_tooltip_set_text (tooltip, text);
|
||||
g_free (text);
|
||||
|
||||
gtk_tooltip_set_icon (tooltip,
|
||||
gimp_viewable_get_pixbuf (action->viewable,
|
||||
action->context,
|
||||
|
|
|
@ -34,6 +34,9 @@
|
|||
#include "gimppaintoptions.h"
|
||||
|
||||
|
||||
static void gimp_paint_core_stroke_emulate_dynamics (GimpCoords *coords,
|
||||
gint length);
|
||||
|
||||
static const GimpCoords default_coords = GIMP_COORDS_DEFAULT_VALUES;
|
||||
|
||||
|
||||
|
@ -91,6 +94,7 @@ gboolean
|
|||
gimp_paint_core_stroke_boundary (GimpPaintCore *core,
|
||||
GimpDrawable *drawable,
|
||||
GimpPaintOptions *paint_options,
|
||||
gboolean emulate_dynamics,
|
||||
const BoundSeg *bound_segs,
|
||||
gint n_bound_segs,
|
||||
gint offset_x,
|
||||
|
@ -160,6 +164,9 @@ gimp_paint_core_stroke_boundary (GimpPaintCore *core,
|
|||
|
||||
n_coords++;
|
||||
|
||||
if (emulate_dynamics)
|
||||
gimp_paint_core_stroke_emulate_dynamics (coords, n_coords);
|
||||
|
||||
if (initialized ||
|
||||
gimp_paint_core_start (core, drawable, paint_options, &coords[0],
|
||||
error))
|
||||
|
@ -219,15 +226,14 @@ gboolean
|
|||
gimp_paint_core_stroke_vectors (GimpPaintCore *core,
|
||||
GimpDrawable *drawable,
|
||||
GimpPaintOptions *paint_options,
|
||||
gboolean emulate_dynamics,
|
||||
GimpVectors *vectors,
|
||||
GError **error)
|
||||
{
|
||||
GList *stroke;
|
||||
GArray *coords = NULL;
|
||||
gboolean initialized = FALSE;
|
||||
gboolean closed;
|
||||
gint off_x, off_y;
|
||||
gint vectors_off_x, vectors_off_y;
|
||||
GList *stroke;
|
||||
gboolean initialized = FALSE;
|
||||
gint off_x, off_y;
|
||||
gint vectors_off_x, vectors_off_y;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_PAINT_CORE (core), FALSE);
|
||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), FALSE);
|
||||
|
@ -244,6 +250,9 @@ gimp_paint_core_stroke_vectors (GimpPaintCore *core,
|
|||
|
||||
for (stroke = vectors->strokes; stroke; stroke = stroke->next)
|
||||
{
|
||||
GArray *coords;
|
||||
gboolean closed;
|
||||
|
||||
coords = gimp_stroke_interpolate (GIMP_STROKE (stroke->data),
|
||||
1.0, &closed);
|
||||
|
||||
|
@ -257,6 +266,10 @@ gimp_paint_core_stroke_vectors (GimpPaintCore *core,
|
|||
g_array_index (coords, GimpCoords, i).y -= off_y;
|
||||
}
|
||||
|
||||
if (emulate_dynamics)
|
||||
gimp_paint_core_stroke_emulate_dynamics ((GimpCoords *) coords->data,
|
||||
coords->len);
|
||||
|
||||
if (initialized ||
|
||||
gimp_paint_core_start (core, drawable, paint_options,
|
||||
&g_array_index (coords, GimpCoords, 0),
|
||||
|
@ -305,3 +318,42 @@ gimp_paint_core_stroke_vectors (GimpPaintCore *core,
|
|||
|
||||
return initialized;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_paint_core_stroke_emulate_dynamics (GimpCoords *coords,
|
||||
gint length)
|
||||
{
|
||||
const gint ramp_length = length / 3;
|
||||
|
||||
/* Calculate and create pressure ramp parameters */
|
||||
if (ramp_length > 0)
|
||||
{
|
||||
gdouble slope = 1.0 / (gdouble) (ramp_length);
|
||||
gint i;
|
||||
|
||||
/* Calculate pressure start ramp */
|
||||
for (i = 0; i < ramp_length; i++)
|
||||
{
|
||||
coords[i].pressure = i * slope;
|
||||
}
|
||||
|
||||
/* Calculate pressure end ramp */
|
||||
for (i = length - ramp_length; i < length; i++)
|
||||
{
|
||||
coords[i].pressure = 1.0 - (i - (length - ramp_length)) * slope;
|
||||
}
|
||||
}
|
||||
|
||||
/* Calculate and create velocity ramp parameters */
|
||||
if (length > 0)
|
||||
{
|
||||
gdouble slope = 1.0 / length;
|
||||
gint i;
|
||||
|
||||
/* Calculate velocity end ramp */
|
||||
for (i = 0; i < length; i++)
|
||||
{
|
||||
coords[i].velocity = i * slope;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ gboolean gimp_paint_core_stroke (GimpPaintCore *core,
|
|||
gboolean gimp_paint_core_stroke_boundary (GimpPaintCore *core,
|
||||
GimpDrawable *drawable,
|
||||
GimpPaintOptions *paint_options,
|
||||
gboolean emulate_dynamics,
|
||||
const BoundSeg *bound_segs,
|
||||
gint n_bound_segs,
|
||||
gint offset_x,
|
||||
|
@ -37,6 +38,7 @@ gboolean gimp_paint_core_stroke_boundary (GimpPaintCore *core,
|
|||
gboolean gimp_paint_core_stroke_vectors (GimpPaintCore *core,
|
||||
GimpDrawable *drawable,
|
||||
GimpPaintOptions *paint_options,
|
||||
gboolean emulate_dynamics,
|
||||
GimpVectors *vectors,
|
||||
GError **error);
|
||||
|
||||
|
|
|
@ -412,15 +412,17 @@ gimp_paint_options_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_PAINT_INFO:
|
||||
options->paint_info = (GimpPaintInfo *) g_value_dup_object (value);
|
||||
options->paint_info = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_BRUSH_SCALE:
|
||||
options->brush_scale = g_value_get_double (value);
|
||||
break;
|
||||
|
||||
case PROP_APPLICATION_MODE:
|
||||
options->application_mode = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
case PROP_HARD:
|
||||
options->hard = g_value_get_boolean (value);
|
||||
break;
|
||||
|
@ -432,21 +434,27 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_PRESSURE_OPACITY:
|
||||
pressure_options->opacity = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_HARDNESS:
|
||||
pressure_options->hardness = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_RATE:
|
||||
pressure_options->rate = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_SIZE:
|
||||
pressure_options->size = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_INVERSE_SIZE:
|
||||
pressure_options->inverse_size = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_COLOR:
|
||||
pressure_options->color = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_PRESCALE:
|
||||
pressure_options->prescale = g_value_get_double (value);
|
||||
break;
|
||||
|
@ -454,21 +462,27 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_VELOCITY_OPACITY:
|
||||
velocity_options->opacity = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_HARDNESS:
|
||||
velocity_options->hardness = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_RATE:
|
||||
velocity_options->rate = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_SIZE:
|
||||
velocity_options->size = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_INVERSE_SIZE:
|
||||
velocity_options->inverse_size = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_COLOR:
|
||||
velocity_options->color = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_PRESCALE:
|
||||
velocity_options->prescale = g_value_get_double (value);
|
||||
break;
|
||||
|
@ -476,21 +490,27 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_RANDOM_OPACITY:
|
||||
random_options->opacity = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_HARDNESS:
|
||||
random_options->hardness = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_RATE:
|
||||
random_options->rate = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_SIZE:
|
||||
random_options->size = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_INVERSE_SIZE:
|
||||
random_options->inverse_size = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_COLOR:
|
||||
random_options->color = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_PRESCALE:
|
||||
random_options->prescale = g_value_get_double (value);
|
||||
break;
|
||||
|
@ -498,9 +518,11 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_USE_FADE:
|
||||
fade_options->use_fade = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_FADE_LENGTH:
|
||||
fade_options->fade_length = g_value_get_double (value);
|
||||
break;
|
||||
|
||||
case PROP_FADE_UNIT:
|
||||
fade_options->fade_unit = g_value_get_int (value);
|
||||
break;
|
||||
|
@ -508,6 +530,7 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_USE_JITTER:
|
||||
jitter_options->use_jitter = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_JITTER_AMOUNT:
|
||||
jitter_options->jitter_amount = g_value_get_double (value);
|
||||
break;
|
||||
|
@ -515,15 +538,19 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_USE_GRADIENT:
|
||||
gradient_options->use_gradient = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_REVERSE:
|
||||
gradient_options->gradient_reverse = g_value_get_boolean (value);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_REPEAT:
|
||||
gradient_options->gradient_repeat = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_LENGTH:
|
||||
gradient_options->gradient_length = g_value_get_double (value);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_UNIT:
|
||||
gradient_options->gradient_unit = g_value_get_int (value);
|
||||
break;
|
||||
|
@ -531,6 +558,7 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_BRUSH_VIEW_TYPE:
|
||||
options->brush_view_type = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
case PROP_BRUSH_VIEW_SIZE:
|
||||
options->brush_view_size = g_value_get_int (value);
|
||||
break;
|
||||
|
@ -538,6 +566,7 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_PATTERN_VIEW_TYPE:
|
||||
options->pattern_view_type = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
case PROP_PATTERN_VIEW_SIZE:
|
||||
options->pattern_view_size = g_value_get_int (value);
|
||||
break;
|
||||
|
@ -545,6 +574,7 @@ gimp_paint_options_set_property (GObject *object,
|
|||
case PROP_GRADIENT_VIEW_TYPE:
|
||||
options->gradient_view_type = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_VIEW_SIZE:
|
||||
options->gradient_view_size = g_value_get_int (value);
|
||||
break;
|
||||
|
@ -578,9 +608,11 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_BRUSH_SCALE:
|
||||
g_value_set_double (value, options->brush_scale);
|
||||
break;
|
||||
|
||||
case PROP_APPLICATION_MODE:
|
||||
g_value_set_enum (value, options->application_mode);
|
||||
break;
|
||||
|
||||
case PROP_HARD:
|
||||
g_value_set_boolean (value, options->hard);
|
||||
break;
|
||||
|
@ -592,21 +624,27 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_PRESSURE_OPACITY:
|
||||
g_value_set_boolean (value, pressure_options->opacity);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_HARDNESS:
|
||||
g_value_set_boolean (value, pressure_options->hardness);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_RATE:
|
||||
g_value_set_boolean (value, pressure_options->rate);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_SIZE:
|
||||
g_value_set_boolean (value, pressure_options->size);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_INVERSE_SIZE:
|
||||
g_value_set_boolean (value, pressure_options->inverse_size);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_COLOR:
|
||||
g_value_set_boolean (value, pressure_options->color);
|
||||
break;
|
||||
|
||||
case PROP_PRESSURE_PRESCALE:
|
||||
g_value_set_double (value, pressure_options->prescale);
|
||||
break;
|
||||
|
@ -614,21 +652,27 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_VELOCITY_OPACITY:
|
||||
g_value_set_boolean (value, velocity_options->opacity);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_HARDNESS:
|
||||
g_value_set_boolean (value, velocity_options->hardness);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_RATE:
|
||||
g_value_set_boolean (value, velocity_options->rate);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_SIZE:
|
||||
g_value_set_boolean (value, velocity_options->size);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_INVERSE_SIZE:
|
||||
g_value_set_boolean (value, velocity_options->inverse_size);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_COLOR:
|
||||
g_value_set_boolean (value, velocity_options->color);
|
||||
break;
|
||||
|
||||
case PROP_VELOCITY_PRESCALE:
|
||||
g_value_set_double (value, velocity_options->prescale);
|
||||
break;
|
||||
|
@ -636,21 +680,27 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_RANDOM_OPACITY:
|
||||
g_value_set_boolean (value, random_options->opacity);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_HARDNESS:
|
||||
g_value_set_boolean (value, random_options->hardness);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_RATE:
|
||||
g_value_set_boolean (value, random_options->rate);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_SIZE:
|
||||
g_value_set_boolean (value, random_options->size);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_INVERSE_SIZE:
|
||||
g_value_set_boolean (value, random_options->inverse_size);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_COLOR:
|
||||
g_value_set_boolean (value, random_options->color);
|
||||
break;
|
||||
|
||||
case PROP_RANDOM_PRESCALE:
|
||||
g_value_set_double (value, random_options->prescale);
|
||||
break;
|
||||
|
@ -658,9 +708,11 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_USE_FADE:
|
||||
g_value_set_boolean (value, fade_options->use_fade);
|
||||
break;
|
||||
|
||||
case PROP_FADE_LENGTH:
|
||||
g_value_set_double (value, fade_options->fade_length);
|
||||
break;
|
||||
|
||||
case PROP_FADE_UNIT:
|
||||
g_value_set_int (value, fade_options->fade_unit);
|
||||
break;
|
||||
|
@ -668,6 +720,7 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_USE_JITTER:
|
||||
g_value_set_boolean (value, jitter_options->use_jitter);
|
||||
break;
|
||||
|
||||
case PROP_JITTER_AMOUNT:
|
||||
g_value_set_double (value, jitter_options->jitter_amount);
|
||||
break;
|
||||
|
@ -675,15 +728,19 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_USE_GRADIENT:
|
||||
g_value_set_boolean (value, gradient_options->use_gradient);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_REVERSE:
|
||||
g_value_set_boolean (value, gradient_options->gradient_reverse);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_REPEAT:
|
||||
g_value_set_enum (value, gradient_options->gradient_repeat);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_LENGTH:
|
||||
g_value_set_double (value, gradient_options->gradient_length);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_UNIT:
|
||||
g_value_set_int (value, gradient_options->gradient_unit);
|
||||
break;
|
||||
|
@ -691,6 +748,7 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_BRUSH_VIEW_TYPE:
|
||||
g_value_set_enum (value, options->brush_view_type);
|
||||
break;
|
||||
|
||||
case PROP_BRUSH_VIEW_SIZE:
|
||||
g_value_set_int (value, options->brush_view_size);
|
||||
break;
|
||||
|
@ -698,6 +756,7 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_PATTERN_VIEW_TYPE:
|
||||
g_value_set_enum (value, options->pattern_view_type);
|
||||
break;
|
||||
|
||||
case PROP_PATTERN_VIEW_SIZE:
|
||||
g_value_set_int (value, options->pattern_view_size);
|
||||
break;
|
||||
|
@ -705,6 +764,7 @@ gimp_paint_options_get_property (GObject *object,
|
|||
case PROP_GRADIENT_VIEW_TYPE:
|
||||
g_value_set_enum (value, options->gradient_view_type);
|
||||
break;
|
||||
|
||||
case PROP_GRADIENT_VIEW_SIZE:
|
||||
g_value_set_int (value, options->gradient_view_size);
|
||||
break;
|
||||
|
|
|
@ -766,7 +766,8 @@ edit_stroke_vectors_invoker (GimpProcedure *procedure,
|
|||
|
||||
if (success)
|
||||
{
|
||||
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), error))
|
||||
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), error) &&
|
||||
gimp_pdb_item_is_attached (GIMP_ITEM (vectors), error))
|
||||
{
|
||||
GimpStrokeDesc *desc = gimp_stroke_desc_new (gimp, context);
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "internal-procs.h"
|
||||
|
||||
|
||||
/* 587 procedures registered total */
|
||||
/* 588 procedures registered total */
|
||||
|
||||
void
|
||||
internal_procs_init (GimpPDB *pdb)
|
||||
|
|
|
@ -144,6 +144,38 @@ vectors_new_from_text_layer_invoker (GimpProcedure *procedure,
|
|||
return return_vals;
|
||||
}
|
||||
|
||||
static GValueArray *
|
||||
vectors_copy_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
GimpContext *context,
|
||||
GimpProgress *progress,
|
||||
const GValueArray *args,
|
||||
GError **error)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
GValueArray *return_vals;
|
||||
GimpVectors *vectors;
|
||||
GimpVectors *vectors_copy = NULL;
|
||||
|
||||
vectors = gimp_value_get_vectors (&args->values[0], gimp);
|
||||
|
||||
if (success)
|
||||
{
|
||||
vectors_copy = GIMP_VECTORS (gimp_item_duplicate (GIMP_ITEM (vectors),
|
||||
G_TYPE_FROM_INSTANCE (vectors)));
|
||||
|
||||
if (! vectors_copy)
|
||||
success = FALSE;
|
||||
}
|
||||
|
||||
return_vals = gimp_procedure_get_return_values (procedure, success);
|
||||
|
||||
if (success)
|
||||
gimp_value_set_vectors (&return_vals->values[1], vectors_copy);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
||||
static GValueArray *
|
||||
vectors_get_image_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
|
@ -1485,6 +1517,35 @@ register_vectors_procs (GimpPDB *pdb)
|
|||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-vectors-copy
|
||||
*/
|
||||
procedure = gimp_procedure_new (vectors_copy_invoker);
|
||||
gimp_object_set_static_name (GIMP_OBJECT (procedure),
|
||||
"gimp-vectors-copy");
|
||||
gimp_procedure_set_static_strings (procedure,
|
||||
"gimp-vectors-copy",
|
||||
"Copy a vectors object.",
|
||||
"This procedure copies the specified vectors object and returns the copy.",
|
||||
"Barak Itkin <lightningismyname@gmail.com>",
|
||||
"Barak Itkin",
|
||||
"2008",
|
||||
NULL);
|
||||
gimp_procedure_add_argument (procedure,
|
||||
gimp_param_spec_vectors_id ("vectors",
|
||||
"vectors",
|
||||
"The vectors object to copy",
|
||||
pdb->gimp, FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_procedure_add_return_value (procedure,
|
||||
gimp_param_spec_vectors_id ("vectors-copy",
|
||||
"vectors copy",
|
||||
"The newly copied vectors object",
|
||||
pdb->gimp, FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-vectors-get-image
|
||||
*/
|
||||
|
|
|
@ -165,7 +165,7 @@ gimp_font_set_property (GObject *object,
|
|||
case PROP_PANGO_CONTEXT:
|
||||
if (font->pango_context)
|
||||
g_object_unref (font->pango_context);
|
||||
font->pango_context = (PangoContext *) g_value_dup_object (value);
|
||||
font->pango_context = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -154,6 +154,17 @@ text_get_extents (const gchar *fontname,
|
|||
context = pango_ft2_font_map_create_context (PANGO_FT2_FONT_MAP (fontmap));
|
||||
g_object_unref (fontmap);
|
||||
|
||||
/* Workaround for bug #143542 (PangoFT2Fontmap leak),
|
||||
* see also bug #148997 (Text layer rendering leaks font file descriptor):
|
||||
*
|
||||
* Calling pango_ft2_font_map_substitute_changed() causes the
|
||||
* font_map cache to be flushed, thereby removing the circular
|
||||
* reference that causes the leak.
|
||||
*/
|
||||
g_object_weak_ref (G_OBJECT (context),
|
||||
(GWeakNotify) pango_ft2_font_map_substitute_changed,
|
||||
fontmap);
|
||||
|
||||
layout = pango_layout_new (context);
|
||||
g_object_unref (context);
|
||||
|
||||
|
@ -176,7 +187,7 @@ text_get_extents (const gchar *fontname,
|
|||
PangoLayoutLine *line;
|
||||
|
||||
iter = pango_layout_get_iter (layout);
|
||||
line = pango_layout_iter_get_line (iter);
|
||||
line = pango_layout_iter_get_line_readonly (iter);
|
||||
pango_layout_iter_free (iter);
|
||||
|
||||
pango_layout_line_get_pixel_extents (line, NULL, &rect);
|
||||
|
|
|
@ -91,7 +91,7 @@ gimp_text_layout_render (GimpTextLayout *layout,
|
|||
PangoLayoutLine *line;
|
||||
gint baseline;
|
||||
|
||||
line = pango_layout_iter_get_line (iter);
|
||||
line = pango_layout_iter_get_line_readonly (iter);
|
||||
|
||||
pango_layout_iter_get_line_extents (iter, NULL, &rect);
|
||||
baseline = pango_layout_iter_get_baseline (iter);
|
||||
|
|
|
@ -247,6 +247,8 @@ gimp_color_tool_button_press (GimpTool *tool,
|
|||
color_tool->sample_point_x = color_tool->sample_point->x;
|
||||
color_tool->sample_point_y = color_tool->sample_point->y;
|
||||
|
||||
gimp_tool_control_set_scroll_lock (tool->control, TRUE);
|
||||
|
||||
gimp_display_shell_selection_control (shell, GIMP_SELECTION_PAUSE);
|
||||
|
||||
gimp_draw_tool_start (GIMP_DRAW_TOOL (tool), display);
|
||||
|
@ -299,6 +301,7 @@ gimp_color_tool_button_release (GimpTool *tool,
|
|||
|
||||
gimp_tool_pop_status (tool, display);
|
||||
|
||||
gimp_tool_control_set_scroll_lock (tool->control, FALSE);
|
||||
gimp_draw_tool_stop (GIMP_DRAW_TOOL (tool));
|
||||
|
||||
if (release_type == GIMP_BUTTON_RELEASE_CANCEL)
|
||||
|
@ -811,6 +814,7 @@ gimp_color_tool_start_sample_point (GimpTool *tool,
|
|||
|
||||
tool->display = display;
|
||||
gimp_tool_control_activate (tool->control);
|
||||
gimp_tool_control_set_scroll_lock (tool->control, TRUE);
|
||||
|
||||
if (color_tool->sample_point)
|
||||
gimp_display_shell_draw_sample_point (GIMP_DISPLAY_SHELL (display->shell),
|
||||
|
|
|
@ -1362,7 +1362,6 @@ gimp_draw_tool_on_vectors_handle (GimpDrawTool *draw_tool,
|
|||
GimpStroke *pref_stroke = NULL;
|
||||
GimpAnchor *anchor = NULL;
|
||||
GimpAnchor *pref_anchor = NULL;
|
||||
GList *list;
|
||||
gdouble dx, dy;
|
||||
gdouble pref_mindist = -1;
|
||||
gdouble mindist = -1;
|
||||
|
@ -1377,35 +1376,33 @@ gimp_draw_tool_on_vectors_handle (GimpDrawTool *draw_tool,
|
|||
|
||||
while ((stroke = gimp_vectors_stroke_get_next (vectors, stroke)))
|
||||
{
|
||||
GList *anchor_list;
|
||||
GList *anchor_list = gimp_stroke_get_draw_anchors (stroke);
|
||||
GList *list;
|
||||
|
||||
anchor_list = gimp_stroke_get_draw_anchors (stroke);
|
||||
anchor_list = g_list_concat (gimp_stroke_get_draw_anchors (stroke),
|
||||
gimp_stroke_get_draw_controls (stroke));
|
||||
|
||||
list = gimp_stroke_get_draw_controls (stroke);
|
||||
anchor_list = g_list_concat (anchor_list, list);
|
||||
|
||||
while (anchor_list)
|
||||
for (list = anchor_list; list; list = g_list_next (list))
|
||||
{
|
||||
dx = coord->x - GIMP_ANCHOR (anchor_list->data)->position.x;
|
||||
dy = coord->y - GIMP_ANCHOR (anchor_list->data)->position.y;
|
||||
dx = coord->x - GIMP_ANCHOR (list->data)->position.x;
|
||||
dy = coord->y - GIMP_ANCHOR (list->data)->position.y;
|
||||
|
||||
if (mindist < 0 || mindist > dx * dx + dy * dy)
|
||||
{
|
||||
mindist = dx * dx + dy * dy;
|
||||
anchor = GIMP_ANCHOR (anchor_list->data);
|
||||
anchor = GIMP_ANCHOR (list->data);
|
||||
|
||||
if (ret_stroke)
|
||||
*ret_stroke = stroke;
|
||||
}
|
||||
|
||||
if ((pref_mindist < 0 || pref_mindist > dx * dx + dy * dy) &&
|
||||
GIMP_ANCHOR (anchor_list->data)->type == preferred)
|
||||
GIMP_ANCHOR (list->data)->type == preferred)
|
||||
{
|
||||
pref_mindist = dx * dx + dy * dy;
|
||||
pref_anchor = GIMP_ANCHOR (anchor_list->data);
|
||||
pref_anchor = GIMP_ANCHOR (list->data);
|
||||
pref_stroke = stroke;
|
||||
}
|
||||
|
||||
anchor_list = anchor_list->next;
|
||||
}
|
||||
|
||||
g_list_free (anchor_list);
|
||||
|
|
|
@ -2183,23 +2183,33 @@ gimp_rectangle_tool_synthesize_motion (GimpRectangleTool *rect_tool,
|
|||
gdouble new_x,
|
||||
gdouble new_y)
|
||||
{
|
||||
GimpTool *tool;
|
||||
GimpDrawTool *draw_tool;
|
||||
GimpRectangleToolPrivate *private;
|
||||
GimpRectangleFunction old_function;
|
||||
|
||||
tool = GIMP_TOOL (rect_tool);
|
||||
draw_tool = GIMP_DRAW_TOOL (rect_tool);
|
||||
private = GIMP_RECTANGLE_TOOL_GET_PRIVATE (rect_tool);
|
||||
|
||||
/* We don't want to synthesize motions if the tool control is active
|
||||
* since that means the mouse button is down and the rectangle will
|
||||
* get updated in _motion anyway. The reason we want to prevent this
|
||||
* function from executing is that is emits the rectangle-changed
|
||||
* signal which we don't want in the middle of a rectangle change.
|
||||
* function from executing is that is emits the
|
||||
* rectangle-changed-complete signal which we don't want in the
|
||||
* middle of a rectangle change.
|
||||
*
|
||||
* In addition to that, we don't want to synthesize a motion if
|
||||
* there is no pending rectangle because that doesn't make any
|
||||
* sense.
|
||||
*/
|
||||
if (gimp_tool_control_is_active (GIMP_TOOL (rect_tool)->control))
|
||||
if (gimp_tool_control_is_active (tool->control) ||
|
||||
! tool->display)
|
||||
return;
|
||||
|
||||
private = GIMP_RECTANGLE_TOOL_GET_PRIVATE (rect_tool);
|
||||
|
||||
old_function = private->function;
|
||||
|
||||
gimp_draw_tool_pause (GIMP_DRAW_TOOL (rect_tool));
|
||||
gimp_draw_tool_pause (draw_tool);
|
||||
|
||||
gimp_rectangle_tool_set_function (rect_tool, function);
|
||||
|
||||
|
@ -2212,14 +2222,14 @@ gimp_rectangle_tool_synthesize_motion (GimpRectangleTool *rect_tool,
|
|||
private->center_y_on_fixed_center = (private->y1 + private->y2) / 2;
|
||||
|
||||
gimp_rectangle_tool_update_options (rect_tool,
|
||||
GIMP_TOOL (rect_tool)->display);
|
||||
tool->display);
|
||||
|
||||
gimp_rectangle_tool_set_function (rect_tool, old_function);
|
||||
|
||||
gimp_rectangle_tool_update_highlight (rect_tool);
|
||||
gimp_rectangle_tool_update_handle_sizes (rect_tool);
|
||||
|
||||
gimp_draw_tool_resume (GIMP_DRAW_TOOL (rect_tool));
|
||||
gimp_draw_tool_resume (draw_tool);
|
||||
|
||||
gimp_rectangle_tool_rectangle_change_complete (rect_tool);
|
||||
}
|
||||
|
|
|
@ -198,7 +198,7 @@ gimp_tool_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_TOOL_INFO:
|
||||
tool->tool_info = GIMP_TOOL_INFO (g_value_dup_object (value));
|
||||
tool->tool_info = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -286,6 +286,7 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
gimp_vector_tool_set_vectors (vector_tool, vectors);
|
||||
gimp_image_set_active_vectors (display->image, vectors);
|
||||
}
|
||||
|
||||
vector_tool->function = VECTORS_FINISHED;
|
||||
}
|
||||
|
||||
|
@ -306,7 +307,6 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
gimp_vector_tool_set_vectors (vector_tool, vectors);
|
||||
|
||||
vector_tool->function = VECTORS_CREATE_STROKE;
|
||||
|
||||
}
|
||||
|
||||
gimp_vectors_freeze (vector_tool->vectors);
|
||||
|
@ -335,21 +335,28 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
|
||||
if (vector_tool->function == VECTORS_ADD_ANCHOR)
|
||||
{
|
||||
GimpCoords position = GIMP_COORDS_DEFAULT_VALUES;
|
||||
|
||||
position.x = coords->x;
|
||||
position.y = coords->y;
|
||||
|
||||
gimp_vector_tool_undo_push (vector_tool, _("Add Anchor"));
|
||||
|
||||
vector_tool->undo_motion = TRUE;
|
||||
|
||||
vector_tool->cur_anchor =
|
||||
gimp_bezier_stroke_extend (vector_tool->sel_stroke, coords,
|
||||
gimp_bezier_stroke_extend (vector_tool->sel_stroke,
|
||||
&position,
|
||||
vector_tool->sel_anchor,
|
||||
EXTEND_EDITABLE);
|
||||
|
||||
vector_tool->restriction = GIMP_ANCHOR_FEATURE_SYMMETRIC;
|
||||
|
||||
if (!options->polygonal)
|
||||
if (! options->polygonal)
|
||||
vector_tool->function = VECTORS_MOVE_HANDLE;
|
||||
else
|
||||
vector_tool->function = VECTORS_MOVE_ANCHOR;
|
||||
|
||||
vector_tool->cur_stroke = vector_tool->sel_stroke;
|
||||
}
|
||||
|
||||
|
@ -374,6 +381,7 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
vector_tool->cur_anchor,
|
||||
GIMP_ANCHOR_FEATURE_EDGE);
|
||||
}
|
||||
|
||||
vector_tool->function = VECTORS_MOVE_ANCHOR;
|
||||
}
|
||||
else
|
||||
|
@ -391,7 +399,7 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
|
||||
if (vector_tool->cur_anchor->type == GIMP_ANCHOR_ANCHOR)
|
||||
{
|
||||
if (!vector_tool->cur_anchor->selected)
|
||||
if (! vector_tool->cur_anchor->selected)
|
||||
{
|
||||
gimp_vectors_anchor_select (vector_tool->vectors,
|
||||
vector_tool->cur_stroke,
|
||||
|
@ -406,7 +414,7 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
GIMP_ANCHOR_CONTROL, TRUE,
|
||||
&vector_tool->cur_anchor,
|
||||
&vector_tool->cur_stroke);
|
||||
if (!vector_tool->cur_anchor)
|
||||
if (! vector_tool->cur_anchor)
|
||||
vector_tool->function = VECTORS_FINISHED;
|
||||
}
|
||||
}
|
||||
|
@ -418,7 +426,7 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
{
|
||||
gimp_vector_tool_undo_push (vector_tool, _("Drag Anchor"));
|
||||
|
||||
if (!vector_tool->cur_anchor->selected)
|
||||
if (! vector_tool->cur_anchor->selected)
|
||||
{
|
||||
gimp_vectors_anchor_select (vector_tool->vectors,
|
||||
vector_tool->cur_stroke,
|
||||
|
@ -442,7 +450,9 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
vector_tool->cur_anchor,
|
||||
!vector_tool->cur_anchor->selected,
|
||||
FALSE);
|
||||
|
||||
vector_tool->undo_motion = TRUE;
|
||||
|
||||
if (vector_tool->cur_anchor->selected == FALSE)
|
||||
vector_tool->function = VECTORS_FINISHED;
|
||||
}
|
||||
|
@ -495,6 +505,7 @@ gimp_vector_tool_button_press (GimpTool *tool,
|
|||
gimp_vectors_stroke_remove (vector_tool->vectors,
|
||||
vector_tool->cur_stroke);
|
||||
}
|
||||
|
||||
vector_tool->sel_anchor = vector_tool->cur_anchor;
|
||||
vector_tool->cur_stroke = vector_tool->sel_stroke;
|
||||
|
||||
|
@ -643,11 +654,15 @@ gimp_vector_tool_motion (GimpTool *tool,
|
|||
{
|
||||
GimpVectorTool *vector_tool = GIMP_VECTOR_TOOL (tool);
|
||||
GimpVectorOptions *options = GIMP_VECTOR_TOOL_GET_OPTIONS (tool);
|
||||
GimpCoords position = GIMP_COORDS_DEFAULT_VALUES;
|
||||
GimpAnchor *anchor;
|
||||
|
||||
if (vector_tool->function == VECTORS_FINISHED)
|
||||
return;
|
||||
|
||||
position.x = coords->x;
|
||||
position.y = coords->y;
|
||||
|
||||
gimp_vectors_freeze (vector_tool->vectors);
|
||||
|
||||
if ((vector_tool->saved_state & TOGGLE_MASK) != (state & TOGGLE_MASK))
|
||||
|
@ -675,7 +690,8 @@ gimp_vector_tool_motion (GimpTool *tool,
|
|||
{
|
||||
gimp_stroke_anchor_move_absolute (vector_tool->cur_stroke,
|
||||
vector_tool->cur_anchor,
|
||||
coords, vector_tool->restriction);
|
||||
&position,
|
||||
vector_tool->restriction);
|
||||
vector_tool->undo_motion = TRUE;
|
||||
}
|
||||
break;
|
||||
|
@ -684,8 +700,8 @@ gimp_vector_tool_motion (GimpTool *tool,
|
|||
if (options->polygonal)
|
||||
{
|
||||
gimp_vector_tool_move_selected_anchors (vector_tool,
|
||||
coords->x - vector_tool->last_x,
|
||||
coords->y - vector_tool->last_y);
|
||||
coords->x - vector_tool->last_x,
|
||||
coords->y - vector_tool->last_y);
|
||||
vector_tool->undo_motion = TRUE;
|
||||
}
|
||||
else
|
||||
|
@ -693,7 +709,8 @@ gimp_vector_tool_motion (GimpTool *tool,
|
|||
gimp_stroke_point_move_absolute (vector_tool->cur_stroke,
|
||||
vector_tool->cur_anchor,
|
||||
vector_tool->cur_position,
|
||||
coords, vector_tool->restriction);
|
||||
&position,
|
||||
vector_tool->restriction);
|
||||
vector_tool->undo_motion = TRUE;
|
||||
}
|
||||
break;
|
||||
|
@ -977,6 +994,7 @@ gimp_vector_tool_oper_update (GimpTool *tool,
|
|||
else
|
||||
{
|
||||
vector_tool->function = VECTORS_MOVE_HANDLE;
|
||||
|
||||
if (state & TOGGLE_MASK)
|
||||
vector_tool->restriction = GIMP_ANCHOR_FEATURE_SYMMETRIC;
|
||||
else
|
||||
|
@ -988,6 +1006,7 @@ gimp_vector_tool_oper_update (GimpTool *tool,
|
|||
if (gimp_stroke_point_is_movable (stroke, anchor, position))
|
||||
{
|
||||
vector_tool->function = VECTORS_MOVE_CURVE;
|
||||
|
||||
if (state & TOGGLE_MASK)
|
||||
vector_tool->restriction = GIMP_ANCHOR_FEATURE_SYMMETRIC;
|
||||
else
|
||||
|
@ -1688,9 +1707,9 @@ gimp_vector_tool_move_selected_anchors (GimpVectorTool *vector_tool,
|
|||
{
|
||||
GimpAnchor *cur_anchor;
|
||||
GimpStroke *cur_stroke = NULL;
|
||||
GList *anchors;
|
||||
GList *list;
|
||||
GimpCoords offset = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
|
||||
GList *anchors;
|
||||
GList *list;
|
||||
GimpCoords offset = { 0.0, };
|
||||
|
||||
offset.x = x;
|
||||
offset.y = y;
|
||||
|
@ -1780,7 +1799,7 @@ gimp_vector_tool_verify_state (GimpVectorTool *vector_tool)
|
|||
vector_tool->sel_anchor = NULL;
|
||||
vector_tool->sel_stroke = NULL;
|
||||
|
||||
if (!vector_tool->vectors)
|
||||
if (! vector_tool->vectors)
|
||||
{
|
||||
vector_tool->cur_position = -1;
|
||||
vector_tool->cur_anchor = NULL;
|
||||
|
@ -1832,10 +1851,10 @@ gimp_vector_tool_verify_state (GimpVectorTool *vector_tool)
|
|||
}
|
||||
}
|
||||
|
||||
if (!cur_stroke_valid)
|
||||
if (! cur_stroke_valid)
|
||||
vector_tool->cur_stroke = NULL;
|
||||
|
||||
if (!cur_anchor_valid)
|
||||
if (! cur_anchor_valid)
|
||||
vector_tool->cur_anchor = NULL;
|
||||
|
||||
}
|
||||
|
|
|
@ -611,6 +611,7 @@ gimp_bezier_stroke_nearest_point_get (const GimpStroke *stroke,
|
|||
if (dist < min_dist || min_dist < 0)
|
||||
{
|
||||
min_dist = dist;
|
||||
|
||||
if (ret_pos)
|
||||
*ret_pos = pos;
|
||||
if (ret_point)
|
||||
|
@ -620,6 +621,7 @@ gimp_bezier_stroke_nearest_point_get (const GimpStroke *stroke,
|
|||
if (ret_segment_end)
|
||||
*ret_segment_end = segment_end;
|
||||
}
|
||||
|
||||
segment_start = anchorlist->data;
|
||||
segmentcoords[0] = segmentcoords[3];
|
||||
count = 1;
|
||||
|
@ -635,7 +637,9 @@ gimp_bezier_stroke_nearest_point_get (const GimpStroke *stroke,
|
|||
segmentcoords[count] = GIMP_ANCHOR (anchorlist->data)->position;
|
||||
count++;
|
||||
}
|
||||
|
||||
anchorlist = g_list_next (anchorlist);
|
||||
|
||||
if (anchorlist)
|
||||
{
|
||||
segment_end = GIMP_ANCHOR (anchorlist->data);
|
||||
|
@ -650,6 +654,7 @@ gimp_bezier_stroke_nearest_point_get (const GimpStroke *stroke,
|
|||
if (dist < min_dist || min_dist < 0)
|
||||
{
|
||||
min_dist = dist;
|
||||
|
||||
if (ret_pos)
|
||||
*ret_pos = pos;
|
||||
if (ret_point)
|
||||
|
@ -716,7 +721,8 @@ gimp_bezier_stroke_segment_nearest_point_get (const GimpCoords *beziercoords,
|
|||
for (i = 0; i <= 15; i++)
|
||||
{
|
||||
pos2 *= 0.5;
|
||||
if (3*pos1*pos1*(1-pos1) + pos1*pos1*pos1 < scalar)
|
||||
|
||||
if (3 * pos1 * pos1 * (1-pos1) + pos1 * pos1 * pos1 < scalar)
|
||||
pos1 += pos2;
|
||||
else
|
||||
pos1 -= pos2;
|
||||
|
@ -837,6 +843,7 @@ gimp_bezier_stroke_nearest_tangent_get (const GimpStroke *stroke,
|
|||
if (dist >= 0 && (dist < min_dist || min_dist < 0))
|
||||
{
|
||||
min_dist = dist;
|
||||
|
||||
if (ret_pos)
|
||||
*ret_pos = pos;
|
||||
if (nearest)
|
||||
|
@ -846,6 +853,7 @@ gimp_bezier_stroke_nearest_tangent_get (const GimpStroke *stroke,
|
|||
if (ret_segment_end)
|
||||
*ret_segment_end = segment_end;
|
||||
}
|
||||
|
||||
segment_start = anchorlist->data;
|
||||
segmentcoords[0] = segmentcoords[3];
|
||||
count = 1;
|
||||
|
@ -861,7 +869,9 @@ gimp_bezier_stroke_nearest_tangent_get (const GimpStroke *stroke,
|
|||
segmentcoords[count] = GIMP_ANCHOR (anchorlist->data)->position;
|
||||
count++;
|
||||
}
|
||||
|
||||
anchorlist = g_list_next (anchorlist);
|
||||
|
||||
if (anchorlist)
|
||||
{
|
||||
segment_end = GIMP_ANCHOR (anchorlist->data);
|
||||
|
@ -876,6 +886,7 @@ gimp_bezier_stroke_nearest_tangent_get (const GimpStroke *stroke,
|
|||
if (dist >= 0 && (dist < min_dist || min_dist < 0))
|
||||
{
|
||||
min_dist = dist;
|
||||
|
||||
if (ret_pos)
|
||||
*ret_pos = pos;
|
||||
if (nearest)
|
||||
|
@ -1536,6 +1547,7 @@ gimp_bezier_stroke_make_bezier (const GimpStroke *stroke)
|
|||
bezdesc->status = CAIRO_STATUS_SUCCESS;
|
||||
bezdesc->data = (cairo_path_data_t *) cmd_array->data;
|
||||
bezdesc->num_data = cmd_array->len;
|
||||
|
||||
g_array_free (points, TRUE);
|
||||
g_array_free (cmd_array, FALSE);
|
||||
|
||||
|
@ -1724,10 +1736,10 @@ arcto_circleparam (gdouble h,
|
|||
|
||||
while (dt >= 0.00001)
|
||||
{
|
||||
pt0 = ( y[0]*(1-t0)*(1-t0)*(1-t0) +
|
||||
3*y[1]*(1-t0)*(1-t0)*t0 +
|
||||
3*y[2]*(1-t0)*t0*t0 +
|
||||
y[3]*t0*t0*t0 );
|
||||
pt0 = ( y[0] * (1-t0) * (1-t0) * (1-t0) +
|
||||
3 * y[1] * (1-t0) * (1-t0) * t0 +
|
||||
3 * y[2] * (1-t0) * t0 * t0 +
|
||||
y[3] * t0 * t0 * t0 );
|
||||
|
||||
if (pt0 > h)
|
||||
t0 = t0 - dt;
|
||||
|
@ -1787,12 +1799,13 @@ arcto_ellipsesegment (gdouble radius_x,
|
|||
gdouble phi1,
|
||||
GimpCoords *ellips)
|
||||
{
|
||||
gdouble phi_s, phi_e;
|
||||
GimpCoords template = GIMP_COORDS_DEFAULT_VALUES;
|
||||
const gdouble circlemagic = 4.0 * (G_SQRT2 - 1.0) / 3.0;
|
||||
gdouble y[4];
|
||||
gdouble h0, h1;
|
||||
gdouble t0, t1;
|
||||
const GimpCoords template = GIMP_COORDS_DEFAULT_VALUES;
|
||||
const gdouble circlemagic = 4.0 * (G_SQRT2 - 1.0) / 3.0;
|
||||
|
||||
gdouble phi_s, phi_e;
|
||||
gdouble y[4];
|
||||
gdouble h0, h1;
|
||||
gdouble t0, t1;
|
||||
|
||||
g_return_if_fail (ellips != NULL);
|
||||
|
||||
|
@ -1824,10 +1837,9 @@ arcto_ellipsesegment (gdouble radius_x,
|
|||
|
||||
ellips[0].x = cos (phi_s); ellips[0].y = sin (phi_s);
|
||||
ellips[3].x = cos (phi_e); ellips[3].y = sin (phi_e);
|
||||
gimp_coords_mix (1, &(ellips[0]), circlemagic, &(ellips[3]),
|
||||
&(ellips[1]));
|
||||
gimp_coords_mix (circlemagic, &(ellips[0]), 1, &(ellips[3]),
|
||||
&(ellips[2]));
|
||||
|
||||
gimp_coords_mix (1, &(ellips[0]), circlemagic, &(ellips[3]), &(ellips[1]));
|
||||
gimp_coords_mix (circlemagic, &(ellips[0]), 1, &(ellips[3]), &(ellips[2]));
|
||||
|
||||
if (h0 > y[0])
|
||||
{
|
||||
|
|
|
@ -522,6 +522,7 @@ gimp_vectors_stroke (GimpItem *item,
|
|||
|
||||
retval = gimp_paint_core_stroke_vectors (core, drawable,
|
||||
stroke_desc->paint_options,
|
||||
stroke_desc->emulate_dynamics,
|
||||
vectors, error);
|
||||
|
||||
g_object_unref (core);
|
||||
|
|
|
@ -177,15 +177,19 @@ gimp_action_get_property (GObject *object,
|
|||
case PROP_CONTEXT:
|
||||
g_value_set_object (value, action->context);
|
||||
break;
|
||||
|
||||
case PROP_COLOR:
|
||||
g_value_set_boxed (value, action->color);
|
||||
break;
|
||||
|
||||
case PROP_VIEWABLE:
|
||||
g_value_set_object (value, action->viewable);
|
||||
break;
|
||||
|
||||
case PROP_ELLIPSIZE:
|
||||
g_value_set_enum (value, action->ellipsize);
|
||||
break;
|
||||
|
||||
case PROP_MAX_WIDTH_CHARS:
|
||||
g_value_set_int (value, action->max_width_chars);
|
||||
break;
|
||||
|
@ -210,24 +214,28 @@ gimp_action_set_property (GObject *object,
|
|||
case PROP_CONTEXT:
|
||||
if (action->context)
|
||||
g_object_unref (action->context);
|
||||
action->context = GIMP_CONTEXT (g_value_dup_object (value));
|
||||
action->context = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_COLOR:
|
||||
if (action->color)
|
||||
g_free (action->color);
|
||||
action->color = g_value_dup_boxed (value);
|
||||
set_proxy = TRUE;
|
||||
break;
|
||||
|
||||
case PROP_VIEWABLE:
|
||||
if (action->viewable)
|
||||
g_object_unref (action->viewable);
|
||||
action->viewable = GIMP_VIEWABLE (g_value_dup_object (value));
|
||||
action->viewable = g_value_dup_object (value);
|
||||
set_proxy = TRUE;
|
||||
break;
|
||||
|
||||
case PROP_ELLIPSIZE:
|
||||
action->ellipsize = g_value_get_enum (value);
|
||||
set_proxy = TRUE;
|
||||
break;
|
||||
|
||||
case PROP_MAX_WIDTH_CHARS:
|
||||
action->max_width_chars = g_value_get_int (value);
|
||||
set_proxy = TRUE;
|
||||
|
|
|
@ -174,11 +174,11 @@ gimp_cell_renderer_viewable_set_property (GObject *object,
|
|||
{
|
||||
case PROP_RENDERER:
|
||||
{
|
||||
GimpViewRenderer *renderer;
|
||||
GimpViewRenderer *renderer = g_value_dup_object (value);
|
||||
|
||||
renderer = (GimpViewRenderer *) g_value_dup_object (value);
|
||||
if (cell->renderer)
|
||||
g_object_unref (cell->renderer);
|
||||
|
||||
cell->renderer = renderer;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -410,11 +410,11 @@ gimp_controller_editor_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_CONTROLLER_INFO:
|
||||
editor->info = GIMP_CONTROLLER_INFO (g_value_dup_object (value));
|
||||
editor->info = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_CONTEXT:
|
||||
editor->context = GIMP_CONTEXT (g_value_dup_object (value));
|
||||
editor->context = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -199,17 +199,20 @@ gimp_controller_info_set_property (GObject *object,
|
|||
g_object_unref (info->controller);
|
||||
}
|
||||
|
||||
info->controller = GIMP_CONTROLLER (g_value_dup_object (value));
|
||||
info->controller = g_value_dup_object (value);
|
||||
|
||||
if (info->controller)
|
||||
{
|
||||
GimpControllerClass *controller_class;
|
||||
|
||||
g_signal_connect_object (info->controller, "event",
|
||||
G_CALLBACK (gimp_controller_info_event),
|
||||
G_OBJECT (info),
|
||||
0);
|
||||
|
||||
controller_class = GIMP_CONTROLLER_GET_CLASS (info->controller);
|
||||
gimp_viewable_set_stock_id (GIMP_VIEWABLE (info),
|
||||
GIMP_CONTROLLER_GET_CLASS (info->controller)->stock_id);
|
||||
controller_class->stock_id);
|
||||
}
|
||||
break;
|
||||
case PROP_MAPPING:
|
||||
|
|
|
@ -348,8 +348,9 @@ gimp_controller_list_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_GIMP:
|
||||
list->gimp = GIMP (g_value_dup_object (value));
|
||||
list->gimp = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
@ -369,6 +370,7 @@ gimp_controller_list_get_property (GObject *object,
|
|||
case PROP_GIMP:
|
||||
g_value_set_object (value, list->gimp);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
|
|
@ -170,7 +170,7 @@ gimp_dash_editor_set_property (GObject *object,
|
|||
case PROP_STROKE_OPTIONS:
|
||||
g_return_if_fail (editor->stroke_options == NULL);
|
||||
|
||||
editor->stroke_options = GIMP_STROKE_OPTIONS (g_value_dup_object (value));
|
||||
editor->stroke_options = g_value_dup_object (value);
|
||||
g_signal_connect_object (editor->stroke_options, "notify::dash-info",
|
||||
G_CALLBACK (update_segments_from_options),
|
||||
editor, G_CONNECT_SWAPPED);
|
||||
|
|
|
@ -225,11 +225,13 @@ gimp_dock_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_CONTEXT:
|
||||
dock->context = GIMP_CONTEXT (g_value_dup_object (value));
|
||||
dock->context = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_DIALOG_FACTORY:
|
||||
dock->dialog_factory = g_value_get_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
@ -249,9 +251,11 @@ gimp_dock_get_property (GObject *object,
|
|||
case PROP_CONTEXT:
|
||||
g_value_set_object (value, dock->context);
|
||||
break;
|
||||
|
||||
case PROP_DIALOG_FACTORY:
|
||||
g_value_set_object (value, dock->dialog_factory);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
|
|
@ -246,23 +246,29 @@ gimp_editor_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_MENU_FACTORY:
|
||||
editor->menu_factory = (GimpMenuFactory *) g_value_dup_object (value);
|
||||
editor->menu_factory = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_MENU_IDENTIFIER:
|
||||
editor->menu_identifier = g_value_dup_string (value);
|
||||
break;
|
||||
|
||||
case PROP_UI_PATH:
|
||||
editor->ui_path = g_value_dup_string (value);
|
||||
break;
|
||||
|
||||
case PROP_POPUP_DATA:
|
||||
editor->popup_data = g_value_get_pointer (value);
|
||||
break;
|
||||
|
||||
case PROP_SHOW_NAME:
|
||||
g_object_set_property (G_OBJECT (editor->name_label), "visible", value);
|
||||
break;
|
||||
|
||||
case PROP_NAME:
|
||||
gimp_editor_set_name (editor, g_value_get_string (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
@ -282,18 +288,23 @@ gimp_editor_get_property (GObject *object,
|
|||
case PROP_MENU_FACTORY:
|
||||
g_value_set_object (value, editor->menu_factory);
|
||||
break;
|
||||
|
||||
case PROP_MENU_IDENTIFIER:
|
||||
g_value_set_string (value, editor->menu_identifier);
|
||||
break;
|
||||
|
||||
case PROP_UI_PATH:
|
||||
g_value_set_string (value, editor->ui_path);
|
||||
break;
|
||||
|
||||
case PROP_POPUP_DATA:
|
||||
g_value_set_pointer (value, editor->popup_data);
|
||||
break;
|
||||
|
||||
case PROP_SHOW_NAME:
|
||||
g_object_get_property (G_OBJECT (editor->name_label), "visible", value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
|
|
@ -126,17 +126,21 @@ gimp_grid_editor_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_GRID:
|
||||
editor->grid = GIMP_GRID (g_value_dup_object (value));
|
||||
editor->grid = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_CONTEXT:
|
||||
editor->context = GIMP_CONTEXT (g_value_dup_object (value));
|
||||
editor->context = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_XRESOLUTION:
|
||||
editor->xresolution = g_value_get_double (value);
|
||||
break;
|
||||
|
||||
case PROP_YRESOLUTION:
|
||||
editor->yresolution = g_value_get_double (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
@ -156,15 +160,19 @@ gimp_grid_editor_get_property (GObject *object,
|
|||
case PROP_GRID:
|
||||
g_value_set_object (value, editor->grid);
|
||||
break;
|
||||
|
||||
case PROP_CONTEXT:
|
||||
g_value_set_object (value, editor->context);
|
||||
break;
|
||||
|
||||
case PROP_XRESOLUTION:
|
||||
g_value_set_double (value, editor->xresolution);
|
||||
break;
|
||||
|
||||
case PROP_YRESOLUTION:
|
||||
g_value_set_double (value, editor->yresolution);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
|
|
@ -77,7 +77,7 @@ static GimpDockedInterface *parent_docked_iface = NULL;
|
|||
|
||||
|
||||
static void
|
||||
gimp_histogram_editor_class_init (GimpHistogramEditorClass* klass)
|
||||
gimp_histogram_editor_class_init (GimpHistogramEditorClass *klass)
|
||||
{
|
||||
GimpImageEditorClass *image_editor_class = GIMP_IMAGE_EDITOR_CLASS (klass);
|
||||
|
||||
|
@ -365,6 +365,24 @@ gimp_histogram_editor_layer_changed (GimpImage *image,
|
|||
gimp_histogram_editor_name_update (editor);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gimp_histogram_editor_validate (GimpHistogramEditor *editor)
|
||||
{
|
||||
if (! editor->valid && editor->histogram)
|
||||
{
|
||||
if (editor->drawable)
|
||||
gimp_drawable_calculate_histogram (editor->drawable, editor->histogram);
|
||||
else
|
||||
gimp_histogram_calculate (editor->histogram, NULL, NULL);
|
||||
|
||||
gimp_histogram_editor_info_update (editor);
|
||||
|
||||
editor->valid = TRUE;
|
||||
}
|
||||
|
||||
return editor->valid;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_histogram_editor_frozen_update (GimpHistogramEditor *editor,
|
||||
const GParamSpec *pspec)
|
||||
|
@ -375,10 +393,8 @@ gimp_histogram_editor_frozen_update (GimpHistogramEditor *editor,
|
|||
{
|
||||
if (! editor->bg_histogram)
|
||||
{
|
||||
editor->bg_histogram = gimp_histogram_new ();
|
||||
|
||||
gimp_drawable_calculate_histogram (editor->drawable,
|
||||
editor->bg_histogram);
|
||||
if (gimp_histogram_editor_validate (editor))
|
||||
editor->bg_histogram = gimp_histogram_duplicate (editor->histogram);
|
||||
|
||||
gimp_histogram_view_set_background (view, editor->bg_histogram);
|
||||
}
|
||||
|
@ -538,17 +554,7 @@ gimp_histogram_editor_info_update (GimpHistogramEditor *editor)
|
|||
static gboolean
|
||||
gimp_histogram_view_expose (GimpHistogramEditor *editor)
|
||||
{
|
||||
if (! editor->valid && editor->histogram)
|
||||
{
|
||||
if (editor->drawable)
|
||||
gimp_drawable_calculate_histogram (editor->drawable, editor->histogram);
|
||||
else
|
||||
gimp_histogram_calculate (editor->histogram, NULL, NULL);
|
||||
|
||||
editor->valid = TRUE;
|
||||
|
||||
gimp_histogram_editor_info_update (editor);
|
||||
}
|
||||
gimp_histogram_editor_validate (editor);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -632,7 +632,7 @@ gimp_histogram_view_set_background (GimpHistogramView *view,
|
|||
if (view->bg_histogram != histogram)
|
||||
{
|
||||
if (view->bg_histogram)
|
||||
gimp_histogram_ref (view->bg_histogram);
|
||||
gimp_histogram_unref (view->bg_histogram);
|
||||
|
||||
view->bg_histogram = histogram;
|
||||
|
||||
|
|
|
@ -242,11 +242,11 @@ gimp_pdb_dialog_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_PDB:
|
||||
dialog->pdb = GIMP_PDB (g_value_dup_object (value));
|
||||
dialog->pdb = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_CONTEXT:
|
||||
dialog->caller_context = GIMP_CONTEXT (g_value_dup_object (value));
|
||||
dialog->caller_context = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_SELECT_TYPE:
|
||||
|
@ -265,7 +265,7 @@ gimp_pdb_dialog_set_property (GObject *object,
|
|||
break;
|
||||
|
||||
case PROP_MENU_FACTORY:
|
||||
dialog->menu_factory = (GimpMenuFactory *) g_value_dup_object (value);
|
||||
dialog->menu_factory = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -150,7 +150,7 @@ gimp_plug_in_action_set_property (GObject *object,
|
|||
case PROP_PROCEDURE:
|
||||
if (action->procedure)
|
||||
g_object_unref (action->procedure);
|
||||
action->procedure = GIMP_PLUG_IN_PROCEDURE (g_value_dup_object (value));
|
||||
action->procedure = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -100,6 +100,7 @@ gimp_session_info_aux_new_from_props (GObject *object,
|
|||
}
|
||||
|
||||
g_value_unset (&value);
|
||||
g_string_free (str, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -477,13 +477,21 @@ gimp_session_info_get_geometry (GimpSessionInfo *info)
|
|||
|
||||
if (info->widget->window)
|
||||
{
|
||||
gdk_window_get_root_origin (info->widget->window, &info->x, &info->y);
|
||||
gint x, y;
|
||||
|
||||
gdk_window_get_root_origin (info->widget->window, &x, &y);
|
||||
|
||||
/* Don't write negative values to the sessionrc, they are
|
||||
* interpreted as relative to the right, respective bottom edge
|
||||
* of the screen.
|
||||
*/
|
||||
info->x = MAX (0, x);
|
||||
info->y = MAX (0, y);
|
||||
|
||||
if (! info->toplevel_entry || info->toplevel_entry->remember_size)
|
||||
{
|
||||
gdk_drawable_get_size (GDK_DRAWABLE (info->widget->window),
|
||||
&info->width,
|
||||
&info->height);
|
||||
&info->width, &info->height);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -113,7 +113,7 @@ gimp_stroke_editor_set_property (GObject *object,
|
|||
case PROP_OPTIONS:
|
||||
if (editor->options)
|
||||
g_object_unref (editor->options);
|
||||
editor->options = GIMP_STROKE_OPTIONS (g_value_dup_object (value));
|
||||
editor->options = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_RESOLUTION:
|
||||
|
|
|
@ -437,8 +437,9 @@ gimp_template_editor_set_property (GObject *object,
|
|||
switch (property_id)
|
||||
{
|
||||
case PROP_TEMPLATE:
|
||||
editor->template = GIMP_TEMPLATE (g_value_dup_object (value));
|
||||
editor->template = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
@ -458,6 +459,7 @@ gimp_template_editor_get_property (GObject *object,
|
|||
case PROP_TEMPLATE:
|
||||
g_value_set_object (value, editor->template);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
|
|
|
@ -169,18 +169,24 @@ gimp_view_renderer_imagefile_get_icon (GimpImagefile *imagefile,
|
|||
{
|
||||
GFile *file;
|
||||
GFileInfo *file_info;
|
||||
GIcon *icon;
|
||||
GtkIconInfo *info;
|
||||
|
||||
file = g_file_new_for_uri (gimp_object_get_name (GIMP_OBJECT (imagefile)));
|
||||
file_info = g_file_query_info (file, "standard::icon", 0, NULL, NULL);
|
||||
icon = g_file_info_get_icon (file_info);
|
||||
|
||||
info = gtk_icon_theme_lookup_by_gicon (icon_theme, icon, size, 0);
|
||||
pixbuf = gtk_icon_info_load_icon (info, NULL);
|
||||
if (file_info)
|
||||
{
|
||||
GIcon *icon;
|
||||
|
||||
icon = g_file_info_get_icon (file_info);
|
||||
|
||||
info = gtk_icon_theme_lookup_by_gicon (icon_theme, icon, size, 0);
|
||||
pixbuf = gtk_icon_info_load_icon (info, NULL);
|
||||
|
||||
g_object_unref (file_info);
|
||||
}
|
||||
|
||||
g_object_unref (file);
|
||||
g_object_unref (file_info);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1294,6 +1294,10 @@ cb_scale_grab_notify (GtkWidget *widget,
|
|||
* Scale stuff.
|
||||
*/
|
||||
|
||||
static GType gtk_scale_button_hscale_get_type (void) G_GNUC_CONST;
|
||||
static GType gtk_scale_button_vscale_get_type (void) G_GNUC_CONST;
|
||||
|
||||
|
||||
#define GTK_TYPE_SCALE_BUTTON_VSCALE (gtk_scale_button_vscale_get_type ())
|
||||
#define GTK_SCALE_BUTTON_VSCALE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCALE_BUTTON_VSCALE, GtkScaleButtonVScale))
|
||||
#define GTK_IS_SCALE_BUTTON_VSCALE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCALE_BUTTON_VSCALE))
|
||||
|
|
18
configure.in
18
configure.in
|
@ -401,10 +401,10 @@ fi
|
|||
# Internationalisation
|
||||
######################
|
||||
|
||||
# Note to translators: you MUST have .po files in all 5 directories: po,
|
||||
# po-libgimp, po-plug-ins, po-python and po-script-fu before adding your
|
||||
# language code to ALL_LINGUAS.
|
||||
ALL_LINGUAS="ar bg ca ca@valencia cs da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hu hr id is it ja km ko lt mk ms nb ne nl nn oc pa pl pt pt_BR ro ru rw sk sl sr sr@Latn sv tr tt uk vi xh yi zh_CN zh_TW"
|
||||
# Note to translators: you MUST have .po files in all 6 directories:
|
||||
# po, po-libgimp, po-plug-ins, po-python, po-script-fu and po-tips
|
||||
# before adding your language code to ALL_LINGUAS.
|
||||
ALL_LINGUAS="ar be bg ca ca@valencia cs da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hu hr id is it ja km ko lt mk ms nb ne nl nn oc pa pl pt pt_BR ro ru rw sk sl sr sr@Latn sv tr tt uk vi xh yi zh_CN zh_TW"
|
||||
|
||||
IT_PROG_INTLTOOL(0.35.5)
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
|
@ -1319,8 +1319,6 @@ AC_ARG_WITH(gvfs, [ --without-gvfs build without GIO/GVfs support])
|
|||
AM_CONDITIONAL(HAVE_GVFS, test "x$with_gvfs" != xno)
|
||||
|
||||
|
||||
gnome_vfs_modules="gnome-vfs-2.0 >= gnome_vfs_required_version"
|
||||
|
||||
AC_ARG_WITH(gnomevfs, [ --without-gnomevfs build without gnomevfs support])
|
||||
|
||||
have_gnomeui="no (disabled)"
|
||||
|
@ -1329,6 +1327,8 @@ have_gnomevfs="no (disabled)"
|
|||
|
||||
if test "x$with_gnomevfs" != xno; then
|
||||
|
||||
gnome_vfs_modules="gnome-vfs-2.0 >= gnome_vfs_required_version"
|
||||
|
||||
if $PKG_CONFIG --atleast-version=gnomeui_required_version libgnomeui-2.0; then
|
||||
have_gnomeui=yes
|
||||
gnome_vfs_modules="$gnome_vfs_modules libgnomeui-2.0"
|
||||
|
@ -1343,7 +1343,7 @@ else
|
|||
have_gnome_keyring="no (gnome-keyring-1 not found)"
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES(URI_GNOME_VFS, $gnome_vfs_modules,
|
||||
PKG_CHECK_MODULES(GNOME_VFS, $gnome_vfs_modules,
|
||||
have_gnomevfs=yes,
|
||||
have_gnomevfs="no (gnome-vfs-2.0 not found)")
|
||||
|
||||
|
@ -1352,15 +1352,13 @@ fi
|
|||
AM_CONDITIONAL(HAVE_GNOMEVFS, test "x$have_gnomevfs" = xyes)
|
||||
|
||||
|
||||
libcurl_modules="libcurl >= libcurl_required_version"
|
||||
|
||||
AC_ARG_WITH(libcurl, [ --without-libcurl build without curl support])
|
||||
|
||||
have_libcurl="no (disabled)"
|
||||
|
||||
if test "x$with_libcurl" != xno; then
|
||||
|
||||
PKG_CHECK_MODULES(URI_LIBCURL, $libcurl_modules,
|
||||
PKG_CHECK_MODULES(CURL, libcurl >= libcurl_required_version,
|
||||
have_libcurl=yes,
|
||||
have_libcurl="no (libcurl not found)")
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 152 KiB |
|
@ -1,3 +1,14 @@
|
|||
2008-07-28 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* libgimp/libgimp-sections.txt: added gimp_vectors_copy().
|
||||
|
||||
* libgimp/tmpl/gimpvectors.sgml: regenerated.
|
||||
|
||||
2008-07-21 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* tools/widgets.c: don't use gtk_box_pack_start/end_defaults(),
|
||||
they got deprecated in GTK+ trunk.
|
||||
|
||||
2008-07-16 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* libgimp/libgimp-sections.txt: added gimp_palette_get_colors()
|
||||
|
|
|
@ -931,6 +931,7 @@ gimp_image_undo_thaw
|
|||
<FILE>gimpvectors</FILE>
|
||||
gimp_vectors_new
|
||||
gimp_vectors_new_from_text_layer
|
||||
gimp_vectors_copy
|
||||
gimp_vectors_is_valid
|
||||
gimp_vectors_get_strokes
|
||||
gimp_vectors_get_image
|
||||
|
|
|
@ -37,6 +37,15 @@ gimpvectors
|
|||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gimp_vectors_copy ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@vectors_ID:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gimp_vectors_is_valid ##### -->
|
||||
<para>
|
||||
|
||||
|
|
|
@ -168,7 +168,7 @@ create_browser (void)
|
|||
gtk_box_pack_start (GTK_BOX (GIMP_BROWSER (browser)->left_vbox),
|
||||
gtk_label_new ("TreeView goes here"), TRUE, TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (align), browser);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Browser"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -202,7 +202,7 @@ create_chain_button (void)
|
|||
|
||||
vbox = gtk_vbox_new (FALSE, 6);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.8);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
table = gtk_table_new (2, 5, FALSE);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table), 6);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table), 6);
|
||||
|
@ -231,7 +231,8 @@ create_chain_button (void)
|
|||
gtk_table_attach (GTK_TABLE (table), chain, 4,5, 0,2,
|
||||
GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
|
||||
|
||||
gtk_box_pack_end_defaults (GTK_BOX (vbox), gtk_label_new ("Chain Button"));
|
||||
gtk_box_pack_end (GTK_BOX (vbox), gtk_label_new ("Chain Button"),
|
||||
TRUE, TRUE, 0);
|
||||
|
||||
return new_widget_info ("gimp-chain-button", vbox, MEDIUM);
|
||||
}
|
||||
|
@ -252,7 +253,7 @@ create_color_area (void)
|
|||
gimp_color_area_set_draw_border (GIMP_COLOR_AREA (area), TRUE);
|
||||
gtk_widget_set_size_request (area, -1, 25);
|
||||
gtk_container_add (GTK_CONTAINER (align), area);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Area"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -275,7 +276,7 @@ create_color_button (void)
|
|||
80, 20, &color,
|
||||
GIMP_COLOR_AREA_SMALL_CHECKS);
|
||||
gtk_container_add (GTK_CONTAINER (align), button);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Button"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -297,7 +298,7 @@ create_color_hex_entry (void)
|
|||
entry = gimp_color_hex_entry_new ();
|
||||
gimp_color_hex_entry_set_color (GIMP_COLOR_HEX_ENTRY (entry), &color);
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Hex Entry"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -318,7 +319,7 @@ create_color_profile_combo_box (void)
|
|||
NULL, "sRGB");
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
|
||||
gtk_container_add (GTK_CONTAINER (align), combo);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Profile Combo Box"),
|
||||
FALSE, FALSE, 0);
|
||||
|
@ -345,7 +346,7 @@ create_color_scale (void)
|
|||
gimp_color_scale_set_color (GIMP_COLOR_SCALE (scale), &rgb, &hsv);
|
||||
gtk_range_set_value (GTK_RANGE (scale), 40);
|
||||
gtk_container_add (GTK_CONTAINER (align), scale);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Scale"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -369,7 +370,7 @@ create_color_selection (void)
|
|||
gimp_color_selection_set_color (GIMP_COLOR_SELECTION (selection), &color);
|
||||
gtk_widget_set_size_request (selection, 400, -1);
|
||||
gtk_container_add (GTK_CONTAINER (align), selection);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Color Selection"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -412,7 +413,7 @@ create_enum_combo_box (void)
|
|||
combo = gimp_enum_combo_box_new (GIMP_TYPE_CHANNEL_TYPE);
|
||||
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), GIMP_BLUE_CHANNEL);
|
||||
gtk_container_add (GTK_CONTAINER (align), combo);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Enum Combo Box"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -430,7 +431,7 @@ create_enum_label (void)
|
|||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
label = gimp_enum_label_new (GIMP_TYPE_IMAGE_BASE_TYPE, GIMP_RGB);
|
||||
gtk_container_add (GTK_CONTAINER (align), label);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Enum Label"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -450,7 +451,7 @@ create_file_entry (void)
|
|||
"wilber.png",
|
||||
FALSE, TRUE);
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("File Entry"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -491,7 +492,7 @@ create_number_pair_entry (void)
|
|||
entry = gimp_number_pair_entry_new (":/", TRUE, 0.001, GIMP_MAX_IMAGE_SIZE);
|
||||
gimp_number_pair_entry_set_values (GIMP_NUMBER_PAIR_ENTRY (entry), 4, 3);
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Number Pair Entry"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -517,7 +518,7 @@ create_int_combo_box (void)
|
|||
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), 1);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (align), combo);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Int Combo Box"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -536,7 +537,7 @@ create_memsize_entry (void)
|
|||
entry = gimp_memsize_entry_new ((3 * 1024 + 512) * 1024,
|
||||
0, 1024 * 1024 * 1024);
|
||||
gtk_container_add (GTK_CONTAINER (align), entry);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Memsize Entry"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -560,7 +561,7 @@ create_offset_area (void)
|
|||
gimp_offset_area_set_size (GIMP_OFFSET_AREA (area), 180, 160);
|
||||
gimp_offset_area_set_offsets (GIMP_OFFSET_AREA (area), 30, 30);
|
||||
gtk_container_add (GTK_CONTAINER (frame), area);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Offset Area"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -579,7 +580,7 @@ create_page_selector (void)
|
|||
gimp_page_selector_set_n_pages (GIMP_PAGE_SELECTOR (selector), 16);
|
||||
gimp_page_selector_select_range (GIMP_PAGE_SELECTOR (selector),
|
||||
"1,3,7-9,12-15");
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), selector);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), selector, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Page Selector"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -600,7 +601,7 @@ create_path_editor (void)
|
|||
editor = gimp_path_editor_new ("Path Editor", path);
|
||||
gtk_widget_set_size_request (editor, -1, 240);
|
||||
gtk_container_add (GTK_CONTAINER (align), editor);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Path Editor"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -621,7 +622,7 @@ create_pick_button (void)
|
|||
align = gtk_alignment_new (0.5, 0.5, 0.5, 1.0);
|
||||
button = gimp_pick_button_new ();
|
||||
gtk_container_add (GTK_CONTAINER (align), button);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Pick Button"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -664,7 +665,7 @@ create_preview_area (void)
|
|||
gdk_pixbuf_get_width (pixbuf),
|
||||
gdk_pixbuf_get_height (pixbuf));
|
||||
g_object_unref (pixbuf);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Preview Area"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -689,7 +690,7 @@ create_string_combo_box (void)
|
|||
gimp_string_combo_box_set_active (GIMP_STRING_COMBO_BOX (combo), "Foo");
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (align), combo);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("String Combo Box"), FALSE, FALSE, 0);
|
||||
|
||||
|
@ -707,7 +708,7 @@ create_unit_menu (void)
|
|||
align = gtk_alignment_new (0.5, 0.5, 0.5, 0.0);
|
||||
menu = gimp_unit_menu_new ("%p", GIMP_UNIT_MM, TRUE, FALSE, FALSE);
|
||||
gtk_container_add (GTK_CONTAINER (align), menu);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (vbox), align);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox),
|
||||
gtk_label_new ("Unit Menu"), FALSE, FALSE, 0);
|
||||
|
||||
|
|
|
@ -657,6 +657,7 @@ EXPORTS
|
|||
gimp_vectors_bezier_stroke_lineto
|
||||
gimp_vectors_bezier_stroke_new_ellipse
|
||||
gimp_vectors_bezier_stroke_new_moveto
|
||||
gimp_vectors_copy
|
||||
gimp_vectors_export_to_file
|
||||
gimp_vectors_export_to_string
|
||||
gimp_vectors_get_image
|
||||
|
|
|
@ -132,6 +132,39 @@ gimp_vectors_new_from_text_layer (gint32 image_ID,
|
|||
return vectors_ID;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_vectors_copy:
|
||||
* @vectors_ID: The vectors object to copy.
|
||||
*
|
||||
* Copy a vectors object.
|
||||
*
|
||||
* This procedure copies the specified vectors object and returns the
|
||||
* copy.
|
||||
*
|
||||
* Returns: The newly copied vectors object.
|
||||
*
|
||||
* Since: GIMP 2.6
|
||||
*/
|
||||
gint32
|
||||
gimp_vectors_copy (gint32 vectors_ID)
|
||||
{
|
||||
GimpParam *return_vals;
|
||||
gint nreturn_vals;
|
||||
gint32 vectors_copy_ID = -1;
|
||||
|
||||
return_vals = gimp_run_procedure ("gimp-vectors-copy",
|
||||
&nreturn_vals,
|
||||
GIMP_PDB_VECTORS, vectors_ID,
|
||||
GIMP_PDB_END);
|
||||
|
||||
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
|
||||
vectors_copy_ID = return_vals[1].data.d_vectors;
|
||||
|
||||
gimp_destroy_params (return_vals, nreturn_vals);
|
||||
|
||||
return vectors_copy_ID;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_vectors_get_image:
|
||||
* @vectors_ID: The vectors object.
|
||||
|
|
|
@ -34,6 +34,7 @@ gint32 gimp_vectors_new (gint32
|
|||
const gchar *name);
|
||||
gint32 gimp_vectors_new_from_text_layer (gint32 image_ID,
|
||||
gint32 layer_ID);
|
||||
gint32 gimp_vectors_copy (gint32 vectors_ID);
|
||||
gint32 gimp_vectors_get_image (gint32 vectors_ID);
|
||||
gchar* gimp_vectors_get_name (gint32 vectors_ID);
|
||||
gboolean gimp_vectors_set_name (gint32 vectors_ID,
|
||||
|
|
|
@ -169,7 +169,7 @@ gimp_color_profile_combo_box_set_property (GObject *object,
|
|||
{
|
||||
case PROP_DIALOG:
|
||||
g_return_if_fail (combo_box->dialog == NULL);
|
||||
combo_box->dialog = (GtkWidget *) g_value_dup_object (value);
|
||||
combo_box->dialog = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_MODEL:
|
||||
|
|
|
@ -138,7 +138,6 @@ libexec_PROGRAMS = \
|
|||
$(POPPLER) \
|
||||
postscript \
|
||||
procedure-browser \
|
||||
psd-save \
|
||||
$(PSP) \
|
||||
qbist \
|
||||
raw \
|
||||
|
@ -1808,22 +1807,6 @@ procedure_browser_LDADD = \
|
|||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
psd_save_SOURCES = \
|
||||
psd-save.c
|
||||
|
||||
psd_save_LDADD = \
|
||||
$(libgimpui) \
|
||||
$(libgimpwidgets) \
|
||||
$(libgimpmodule) \
|
||||
$(libgimp) \
|
||||
$(libgimpmath) \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
$(GTK_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS)
|
||||
|
||||
psp_SOURCES = \
|
||||
psp.c
|
||||
|
||||
|
|
|
@ -412,8 +412,9 @@ alienmap2_dialog (void)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_zoom_preview_new (drawable);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (dialog_update_preview),
|
||||
drawable);
|
||||
|
|
|
@ -245,8 +245,9 @@ blinds_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_aspect_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (dialog_update_preview),
|
||||
drawable);
|
||||
|
|
|
@ -511,8 +511,9 @@ cm_dialog (CmParamsType *mix,
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_zoom_preview_new (drawable);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (cm_preview),
|
||||
mix);
|
||||
|
|
|
@ -307,7 +307,7 @@ exchange_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
frame = gimp_frame_new (_("Middle-Click Inside Preview to Pick \"From Color\""));
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), frame);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), frame, TRUE, TRUE, 0);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
|
|
|
@ -396,8 +396,9 @@ color_to_alpha_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect (preview, "invalidated",
|
||||
G_CALLBACK (color_to_alpha_preview),
|
||||
drawable);
|
||||
|
|
|
@ -305,7 +305,7 @@ retinex_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_zoom_preview_new (drawable);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
|
|
|
@ -927,8 +927,9 @@ convolve_image_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (convolve_image),
|
||||
drawable);
|
||||
|
|
|
@ -287,8 +287,9 @@ cubism_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, &cvals.preview);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (cubism),
|
||||
drawable);
|
||||
|
|
|
@ -344,7 +344,7 @@ deinterlace_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (deinterlace),
|
||||
|
|
|
@ -457,8 +457,9 @@ destripe_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (destripe),
|
||||
drawable);
|
||||
|
|
|
@ -297,8 +297,9 @@ dog_dialog (gint32 image_ID,
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, FALSE, FALSE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect (preview, "invalidated",
|
||||
G_CALLBACK (preview_update_preview),
|
||||
drawable);
|
||||
|
|
|
@ -652,8 +652,9 @@ edge_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect (preview, "invalidated",
|
||||
G_CALLBACK (edge_preview_update),
|
||||
NULL);
|
||||
|
|
|
@ -465,7 +465,7 @@ emboss_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (emboss),
|
||||
|
|
|
@ -228,8 +228,9 @@ engrave_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (engrave),
|
||||
drawable);
|
||||
|
|
|
@ -1333,7 +1333,7 @@ fp_advanced_dialog (GtkWidget *parent)
|
|||
gtk_widget_show (inner_vbox);
|
||||
|
||||
alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (inner_vbox), alignment);
|
||||
gtk_box_pack_start (GTK_BOX (inner_vbox), alignment, TRUE, TRUE, 0);
|
||||
gtk_widget_show (alignment);
|
||||
|
||||
innermost_vbox = gtk_vbox_new (FALSE, 0);
|
||||
|
|
|
@ -1051,7 +1051,7 @@ save_dialog (gint32 image_ID)
|
|||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (hbox), scrolled_window);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), scrolled_window, TRUE, TRUE, 0);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
|
|
|
@ -369,7 +369,7 @@ illusion_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_zoom_preview_new (drawable);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect (preview, "invalidated",
|
||||
|
|
|
@ -2435,8 +2435,9 @@ jigsaw_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_aspect_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (jigsaw),
|
||||
drawable);
|
||||
|
|
|
@ -412,8 +412,9 @@ lens_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_aspect_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (drawlens),
|
||||
drawable);
|
||||
|
|
|
@ -504,8 +504,9 @@ lens_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_zoom_preview_new (drawable);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (lens_distort_preview),
|
||||
drawable);
|
||||
|
|
|
@ -278,8 +278,9 @@ max_rgb_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_zoom_preview_new (drawable);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (main_function),
|
||||
drawable);
|
||||
|
|
|
@ -1216,8 +1216,9 @@ newsprint_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (hbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (newsprint),
|
||||
drawable);
|
||||
|
|
|
@ -1034,8 +1034,9 @@ nlfilter_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (nlfilter),
|
||||
drawable);
|
||||
|
|
|
@ -380,7 +380,7 @@ scatter_hsv_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect (preview, "invalidated",
|
||||
|
|
|
@ -582,8 +582,9 @@ solid_noise_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_aspect_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (solid_noise),
|
||||
drawable);
|
||||
|
|
|
@ -333,7 +333,7 @@ pixelize_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (pixelize),
|
||||
|
|
|
@ -319,8 +319,9 @@ plasma_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_aspect_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (plasma_seed_changed_callback),
|
||||
drawable);
|
||||
|
|
|
@ -101,7 +101,6 @@
|
|||
'poppler' => { ui => 1, optional => 1, cflags => 1 },
|
||||
'postscript' => { ui => 1 },
|
||||
'procedure-browser' => { ui => 1 },
|
||||
'psd-save' => { ui => 1 },
|
||||
'psp' => { ui => 1, optional => 1, libopt => 'z' },
|
||||
'qbist' => { ui => 1 },
|
||||
'raw' => { ui => 1 },
|
||||
|
|
|
@ -612,8 +612,9 @@ polarize_dialog (GimpDrawable *drawable)
|
|||
|
||||
/* Preview */
|
||||
preview = gimp_zoom_preview_new (drawable);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (dialog_update_preview),
|
||||
drawable);
|
||||
|
|
|
@ -488,8 +488,9 @@ ripple_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (ripple),
|
||||
drawable);
|
||||
|
|
|
@ -374,10 +374,12 @@ shift_dialog (gint32 image_ID,
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (shift), drawable);
|
||||
G_CALLBACK (shift),
|
||||
drawable);
|
||||
|
||||
frame = gimp_int_radio_group_new (FALSE, NULL,
|
||||
G_CALLBACK (gimp_radio_button_update),
|
||||
|
|
|
@ -356,7 +356,7 @@ sparkle_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (sparkle),
|
||||
|
|
|
@ -269,8 +269,9 @@ glasstile_dialog (GimpDrawable *drawable)
|
|||
gtk_widget_show (main_vbox);
|
||||
|
||||
preview = gimp_drawable_preview_new (drawable, NULL);
|
||||
gtk_box_pack_start_defaults (GTK_BOX (main_vbox), preview);
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), preview, TRUE, TRUE, 0);
|
||||
gtk_widget_show (preview);
|
||||
|
||||
g_signal_connect_swapped (preview, "invalidated",
|
||||
G_CALLBACK (glasstile),
|
||||
drawable);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue