Commit Graph

3713 Commits

Author SHA1 Message Date
Michael Natterer 2a17435e7e Started to abstract item transformation so we can easily transform
2003-05-07  Michael Natterer  <mitch@gimp.org>

	Started to abstract item transformation so we can easily
	transform multiple linked items later:

	* app/core/gimpitem.[ch]: added new virtual function
	GimpItem::scale() with the same signature as the former
	gimp_layer_scale_lowlevel().

	* app/core/gimpdrawable.c: implement scale() and do the
	common parts of layer/channel scaling here.

	* app/core/gimpchannel.[ch]
	* app/core/gimplayer.[ch]: implement scale() for the
	channel/layer specific parts of scaling.

	* app/core/gimplayer.[ch]: renamed gimp_layer_scale() to
	gimp_layer_scale_by_origin().

	* app/vectors/gimpvectors.c: added empty scale() implementation.

	* app/core/gimpimage-scale.c
	* app/core/gimpimage-undo-push.c
	* app/gui/layers-commands.c
	* tools/pdbgen/pdb/layer.pdb: changed accordingly.

	* app/pdb/layer_cmds.c: regenerated.

	Unrelated:

	* app/core/gimpimage-undo-push.c: fixed item rename undo to
	take the size of the saved name into account. Removed old
	path_undo stuff.
2003-05-07 11:09:00 +00:00
Michael Natterer f3747dbac2 removed GimpToolState (ACTIVE, INACTIVE).
2003-05-06  Michael Natterer  <mitch@gimp.org>

	* app/tools/tools-enums.[ch]: removed GimpToolState (ACTIVE,
	INACTIVE).

	* app/tools/gimptoolcontrol.[ch]: replaced "GimpToolState state"
	by "gboolean active".

	* app/tools/gimptool.c (gimp_tool_control)
	* app/tools/tool_manager.c (tool_manager_control_active): check
	for gimp_tool_control_is_active() before calling
	gimp_tool_control_halt().
2003-05-06 11:11:15 +00:00
Michael Natterer 1317d1809e added g_return_if_fail (gimp_tool_control_is_active (tool->control)) since
2003-05-06  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.c (gimp_tool_motion): added
	g_return_if_fail (gimp_tool_control_is_active (tool->control))
	since that's a basic constraint of tool event handling.

	* app/tools/gimpbezierselecttool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpfuzzyselecttool.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimpmagnifytool.c
	* app/tools/gimprectselecttool.c (gimp_*_tool_motion):
	removed checks for gimp_tool_control_is_active().
2003-05-06 10:30:34 +00:00
Pedro Gimeno 9e7d814ac8 Cleanups. (gradient_calc_linear_factor): Apply the gradient to both sides
2003-05-05  Pedro Gimeno  <pggimeno@wanadoo.es>

	* app/core/gimpdrawable-blend.c: Cleanups.
	(gradient_calc_linear_factor): Apply the gradient to both sides
	when Repeat is set to Sawtooth Wave. Fixes bug #112106.

	* app/core/gimpdrawable-transform.c
	(gimp_drawable_transform_tiles_affine): Fix copy'n'paste slip in
	coordinates calculation for supersampling code. Transform the
	pixel centers properly. Fixes bug #10466.

	* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_rectangle,
	gimp_draw_tool_draw_arc): Ported the fix for bug #17904 from the
	STABLE branch (off-by-one when drawing the rectangle/ellipse
	previews).

	* app/tools/gimpeditselectiontool.c: Renamed
	gimp_edit_selection_tool_snap to
	gimp_edit_selection_tool_calc_coords, as it is no longer used for
	snapping.
	(gimp_edit_selection_tool_calc_coords): Use floor instead of
	rounding. Callers changed to remove rounding, as it deals with
	gdoubles directly. Thanks to Mitch for the help refining this
	one. Fixes bug #17906.
2003-05-05 18:45:58 +00:00
Michael Natterer f1d317a302 some more code cleanup.
2003-05-05  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-scale.c: some more code cleanup.
2003-05-05 15:33:11 +00:00
Michael Natterer 1204865d04 new utility function which takes GimpZoomType and zooms "scalesrc" and
2003-05-05  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-scale.[ch]
	(gimp_display_shell_scale_zoom_fraction): new utility function
	which takes GimpZoomType and zooms "scalesrc" and "scaledest".
	(gimp_display_shell_scale_calc_fraction): new utility function
	which takes an exact double scale factor and calculates "scalesrc"
	and "scaledest".

	(gimp_display_shell_scale): use the first.
	(gimp_display_shell_scale_fit): use the second.

	* app/tools/gimpmagnifytool.[ch]: use the first to click-zoom and
	the second to area-zoom. Fixes bug #112115. Removed zoom_in() and
	zoom_out() utiliy functions. Removed "GimpZoomType op" from the
	GimpMagnifyTool struct. Cleanup.
2003-05-05 14:48:15 +00:00
Michael Natterer 5067bec93b don't change the passed GimpCoords if we didn't snap.
2003-05-05  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell.c (gimp_display_shell_snap_coords):
	don't change the passed GimpCoords if we didn't snap.
2003-05-05 11:26:01 +00:00
Michael Natterer 95f8fca15e set GDK_HINT_USER_POS for all session managed dialogs, not only for those
2003-05-04  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdialogfactory.c: set GDK_HINT_USER_POS for all
	session managed dialogs, not only for those which already have
	saved session info. This way the dialogs keep their position
	acrosss hide/show within the same session, even if they have never
	been used before.

	* app/gui/dialogs.c: added entries for the file open/save dialogs.
	Fixed some entries.

	* app/gui/file-dialog-utils.[ch]
	* app/gui/file-open-dialog.c
	* app/gui/file-save-dialog.c: register the file dialogs with
	the dialog factory.
2003-05-03 23:02:26 +00:00
Michael Natterer 31becaf4d0 Update the splash before calling plug_in_query() and plug_in_init()
2003-05-03  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/plug-ins.c (plug_ins_init): Update the splash before
	calling plug_in_query() and plug_in_init() (applied a modified
	patch from Raphael Quinet). Fixes bug #112156.
2003-05-03 20:18:03 +00:00
Michael Natterer a51bff58f9 added "dockable_added", "dockable_removed" and "dockable_reordered"
2003-05-03  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdockbook.[ch]: added "dockable_added",
	"dockable_removed" and "dockable_reordered" signals and emit them.

	* app/widgets/gimpimagedock.[ch]: implement GimpDock::book_added()
	and GimpDock::book_removed(). Connect to the above signals and
	update the window title as proposed in bug #111971. Idle-update
	the title so subsequent changes are compressed. Fixes bug #111971.

	* app/widgets/gimpdock.c: cleanup.
2003-05-03 11:59:44 +00:00
Michael Natterer c18b6554b1 app/gui/dialogs.c app/tools/gimphistogramtool.c register their dialogs
2003-05-03  Michael Natterer  <mitch@gimp.org>

	* app/gui/dialogs.c
	* app/tools/gimphistogramtool.c
	* app/tools/gimpmeasuretool.c: register their dialogs too.
2003-05-03 09:56:25 +00:00
Michael Natterer fefaf61b28 added new function gimp_dialog_factory_add_foreign() which adds a dialog
2003-05-02  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdialogfactory.[ch]: added new function
	gimp_dialog_factory_add_foreign() which adds a dialog that was not
	created by the factory itself. Its identifier however must be
	registered with the factory. Connect to all toplevel dialogs'
	"configure_event" and remember the resulting window geometry so we
	get session management for *all* dialogs, not only for those which
	were open on exit.

	* app/gui/dialogs.c: added the "File New" dialog. Added foreign
	entries (without constructor) for all dialogs opened by tools.

	* app/gui/dialogs-constructors.[ch]: added a constructor for
	the file_new dialog.

	* app/gui/file-new-dialog.[ch]: renamed file_new_dialog_create()
	to file_new_dialog_new() and removed the gimage and template
	paramaters. Adder new function file_new_dialog_set() to set
	gimage and template after creation.

	* app/gui/file-commands.c
	* app/gui/templates-commands.c: changed accordingly.

	* app/tools/gimpimagemaptool.[ch]
	* app/tools/gimptransformtool.[ch]: added
	"const gchar *shell_identifier" to the tool structs. Register the
	tool dialogs using gimp_dialog_factory_add_foreign().

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpperspectivetool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimprotatetool.c
	* app/tools/gimpscaletool.c
	* app/tools/gimpsheartool.c
	* app/tools/gimpthresholdtool.c: set "shell_identifier" so the
	dialogs become session managed. Fixes bug #61091.

	* app/tools/gimpcroptool.c: register the crop dialog with the
	dialog factory. Fixes bug #52849.

	* app/tools/gimpcolorpickertool.c: ditto.

	Unrelated:

	* app/tools/gimptool.c: no need to cast the return value of
	g_object_new().
2003-05-02 18:43:15 +00:00
Pedro Gimeno a115c7b5ab Save brush pointer before first stroke and restore it after. Fixes bug
2003-05-02  Pedro Gimeno  <pggimeno@wanadoo.es>

	* app/paint/gimppaintcore-stroke.c (gimp_paint_core_stroke,
	gimp_paint_core_stroke_vectors): Save brush pointer before first
	stroke and restore it after. Fixes bug #102162.

	* plug-ins/common/flarefx.c (FlareFX): Use
	gimp_fixme_preview_do_row instead of memcpy. Fixes bug #112042 for
	this plug-in.

	* plug-ins/common/jigsaw.c: Several cleanups.
	(jigsaw_values_changed): New function as a result of the cleanups.
	(jigsaw): Use gimp_fixme_preview_do_row instead of memcpy.
	Together with the fix to flarefx, fixes bug #112042.
	(draw_jigsaw): Warn if passed a NULL buffer (solves the crash
	reported in bug #112012).

	* plug-ins/gimpressionist/orientation.c: Slightly reformatted.
	(create_orientationpage): Modify orientfirst/orientlast instead of
	sizefirst/sizelast in the corresponding adjustments. Fixes bug
	#112061.
2003-05-02 12:10:40 +00:00
Manish Singh 3511123863 Query fontconfig directly for the font list, avoiding scanning the
2003-05-01  Manish Singh  <yosh@gimp.org>

        * app/text/gimpfontlist.c: Query fontconfig directly for the font
        list, avoiding scanning the internal fontconfig list over and over
        again. There are differences in the font list that the old and new
        code produce however. The new code will generate descriptions for
        more fonts, and some of the styles will be different. Also, pango
        font description strings aren't specific enough for all cases, so
        a font name may appear more than once in the list. I'm not sure
        how to solve this best, but this code is Good Enough (TM) for now.
2003-05-02 05:50:36 +00:00
Pedro Gimeno 99f249ced3 Don't try to compress the left and right ends. Fixes bug #89274.
2003-04-30  Pedro Gimeno  <pggimeno@wanadoo.es>

	* app/widgets/gimpgradienteditor.c (control_compress_range): Don't
	try to compress the left and right ends. Fixes bug #89274.
2003-04-30 14:31:27 +00:00
Michael Natterer 909a28ced2 skip guides with negative positions. Fixes warning since
2003-04-30  Michael Natterer  <mitch@gimp.org>

	* app/xcf/xcf-load.c (xcf_load_image_props): skip guides with
	negative positions. Fixes warning since gimp_image_add_[hv]guide()
	doesn't allow positions < 0 any more.
2003-04-30 12:51:11 +00:00
Michael Natterer bf1b054cfe when editing an object's name, make sure we really edit its name, not its
2003-04-29  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpcontainertreeview.c
	(gimp_container_tree_view_button_press): when editing an object's
	name, make sure we really edit its name, not its description.
2003-04-29 18:25:12 +00:00
Pedro Gimeno 06a65279ae Serialize access to source and destination memory to reduce the chance of
2003-04-29  Pedro Gimeno  <pggimeno@wanadoo.es>

	* app/paint-funcs/paint-funcs.c (shrink_line): Serialize access to
	source and destination memory to reduce the chance of cache misses
	when dealing with large images. Enable some assertions temporarily
	to ensure that the algorithm works properly before backporting it.
2003-04-29 15:50:39 +00:00
Pedro Gimeno c8ecdeec5c Mostly rewritten to improve accuracy. Fixes bug #104693.
2003-04-27  Pedro Gimeno  <pggimeno@wanadoo.es>

	* app/paint-funcs/paint-funcs.c (shrink_line): Mostly rewritten to
	improve accuracy. Fixes bug #104693.
2003-04-27 18:58:56 +00:00
Pedro Gimeno df21fe5276 Some reformattings to improve readability. (shrink_line): Added some
2003-04-25  Pedro Gimeno  <pggimeno@wanadoo.es>

	* app/paint-funcs/paint-funcs.c: Some reformattings to improve
	readability.
	(shrink_line): Added some explanatory comments.
	(border_region): Fixed wrong (though harmless) allocation bug: used
	sizeof(gint16 *) where sizeof(gint16) was needed.
2003-04-25 23:08:09 +00:00
Sven Neumann 2e2f9fcfd5 applied patch from Pedro Gimeno that fixes bug #51883.
2003-04-17  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimage-contiguous-region.c
	(find_contiguous_region_helper): applied patch from Pedro Gimeno
	that fixes bug #51883.

	* plug-ins/common/bumpmap.c (bumpmap): applied patch from Pedro
	Gimeno that fixes bug #52543.
2003-04-17 12:06:03 +00:00
Michael Natterer 2a55fbeda6 new functions snapping to one axis only. (gimp_image_snap_rectangle): use
2003-04-17  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage-guides.c (gimp_image_add_x,y): new functions
	snapping to one axis only.
	(gimp_image_snap_rectangle): use them to enable snapping the
	rectangle to all its corners, not just the NW and SE one.
2003-04-17 10:22:13 +00:00
Michael Natterer d5edd5308e added an API to specify a "snap_offset" and a "snap_width/height". Needed
2003-04-17  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptoolcontrol.[ch]: added an API to specify a
	"snap_offset" and a "snap_width/height". Needed for tools which
	want to snap to a rectangle and/or a position which is not the
	current cursor position.

	* app/display/gimpdisplayshell.[ch]: removed
	gimp_display_shell_find_guide(), gimp_display_shell_snap_point()
	and gimp_display_shell_snap_rectangle().
	Added gimp_display_shell_snap_coords() which works on GimpCoords
	and gets passed the above snap offsets.

	* app/display/gimpdisplayshell-callbacks.c: use the new snap
	function, using the values from GimpToolControl.

	* app/tools/gimpcroptool.c: set snap offsets so the handles can be
	guide-aligned after creating. Fixes bug #110957.

	* app/tools/gimpeditselectiontool.c: removed snapping code (which
	was broken anyway) and set appropriate snap offsets in
	init_edit_selection().
2003-04-17 02:57:33 +00:00
Michael Natterer b123d9f027 modify the focus chain so it doesn't go line-by-line, but spinbuttons
2003-04-16  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimptemplateeditor.c (gimp_template_editor_init):
	modify the focus chain so it doesn't go line-by-line, but
	spinbuttons first, then the widgets right of them.
2003-04-16 12:59:36 +00:00
Michael Natterer 8cee4963fb check for GIMP_IS_DISPLAY(gdisp) again.
2003-04-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimptool.c: check for GIMP_IS_DISPLAY(gdisp) again.

	* app/tools/gimptool.h: don't #include "gimptoolcontrol.h"

	* app/tools/[all tools].c: #include "gimptoolcontrol.h"
2003-04-15 16:05:52 +00:00
Sven Neumann 032c13098d app/tools/Makefile.am app/tools/gimptoolgui.[ch] removed unused files.
2003-04-15  Sven Neumann  <sven@gimp.org>

	* app/tools/Makefile.am
	* app/tools/gimptoolgui.[ch]
	* app/tools/gimptoolmodule.[ch]: removed unused files.
2003-04-15 14:24:03 +00:00
Sven Neumann 0c399e5c93 Removed support for pluggable tools:
2003-04-15  Sven Neumann  <sven@gimp.org>

	Removed support for pluggable tools:

	* configure.in: bumped version number to 1.3.15.

	* Makefile.am
	* libgimpproxy
	* libgimptool
	* plug-ins/Makefile.am
	* plug-ins/plugin-helper
	* plug-ins/tools: removed libgimpproxy, libgimptool and plug-ins
	that used it.

	* tools/Makefile.am
	* tools/gimp-mkproxy: removed tool that used to generate
	libgimpproxy.

	* app/core/core-enums.h
	* app/core/gimpchannel.h
	* app/display/display-types.h
	* app/widgets/widgets-enums.h: removed proxy-skip/resume stuff.

	* app/core/gimpobject.c: use gimp marshallers.

	* app/tools/Makefile.am
	* app/tools/gimptool.h
	* app/tools/tools-enums.[ch]: moved these files back from
	libgimptool.

	* app/tools/gimptool.c
	* app/tools/gimptoolcontrol.h: merged back functionality from
	libgimptool.

	* app/Makefile.am
	* app/display/gimpdisplay.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/gui/tools-commands.c
	* app/tools/gimpairbrushtool.c
	* app/tools/gimpbucketfilltool.h
	* app/tools/gimpdrawtool.h
	* app/tools/gimpimagemaptool.h
	* app/tools/gimpinktool.h
	* app/tools/gimptoolmodule.c
	* app/tools/tool_manager.c
	* app/tools/tools-types.h
	* app/tools/tools.c
	* tools/pdbgen/Makefile.am: changed accordingly.
2003-04-15 14:20:19 +00:00
Michael Natterer e745778f25 added a "selected_item" pointer to the GimpContainerGridView struct so we
003-04-15  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpcontainergridview.[ch]: added a "selected_item"
	pointer to the GimpContainerGridView struct so we don't need to
	remember it using g_object_[set|get]_data(). Also make sure that
	the selected item doesn't get out of sight when resizing the view
	and that it is always visible initially.
2003-04-15 14:13:14 +00:00
Michael Natterer 5b631a8cab make sure all progress bars and at 1.0. Build the list of extension
2003-04-15  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/plug-ins.c (plug_ins_init): make sure all progress
	bars and at 1.0. Build the list of extension procedures to start
	before starting them (and don't start them while iterating the
	list of procedures because the list changes if we start an
	extension).
2003-04-15 11:35:31 +00:00
Michael Natterer 1d5d809c93 use a smaller preview size for the gradient popup than for the button.
2003-04-15  Michael Natterer  <mitch@gimp.org>

	* app/tools/paint_options.c (gimp_paint_options_gui): use a smaller
	preview size for the gradient popup than for the button.
2003-04-15 11:11:25 +00:00
Sven Neumann cdea262d75 tools/pdbgen/pdb/drawable.pdb don't request viewable previews with a width
2003-04-14  Sven Neumann  <sven@gimp.org>

	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/image.pdb: don't request viewable previews with
	a width or height of 0 and don't crash if no preview is returned.

	* app/pdb/drawable_cmds.c
	* app/pdb/image_cmds.c
	* libgimp/gimpdrawable_pdb.c: regenerated.
2003-04-14 15:41:46 +00:00
Michael Natterer 21cd66d275 made gimp_vector_tool_clear_vectors() private. Connect to the vector's
2003-04-14  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpvectortool.[ch]: made
	gimp_vector_tool_clear_vectors() private. Connect to the vector's
	"changed" signal (and do nothing in the callback for now...).
	Alwayws set tool->gdisp in button_press(). Use for() loops to
	iterate strokes. Fixed gimp_vector_tool_set_vectors() to hopefully
	do the right thing in all cases now. s/ptr/list/g. Cleanup.
2003-04-14 14:52:00 +00:00
Michael Natterer 8c6159c41d made "changed" a real signal, don't crash when iterating a NULL stroke
2003-04-14  Michael Natterer  <mitch@gimp.org>

	* app/vectors/gimpvectors.[ch]: made "changed" a real signal,
	don't crash when iterating a NULL stroke list, cleanup.
2003-04-14 14:46:34 +00:00
Michael Natterer dfdb1917cd check for !GIMP_IS_PREVIEW(widget), not for GTK_WIDGET_NO_WINDOW(widget)
2003-04-14  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): check
	for !GIMP_IS_PREVIEW(widget), not for GTK_WIDGET_NO_WINDOW(widget)
	when deciding whether to put the tab_widget in a GtkEventBox
	because GimpPreview is NO_WINDOW now but still handles events.
	Fixes dockable DND.
2003-04-14 14:44:30 +00:00
Sven Neumann b7cf188359 don't try to reparent the children of GtkInputDialog but simply pop up the
2003-04-14  Sven Neumann  <sven@gimp.org>

	* app/gui/preferences-dialog.c: don't try to reparent the children
	of GtkInputDialog but simply pop up the dialog as provided by
	GTK+. Looks ugly but shouldn't crash any longer. Fixes bug #104423.
2003-04-14 14:15:20 +00:00
Simon Budig 740983b06f app/vectors/gimpstroke.[ch] Changed vectors->strokes to a GList and
2003-04-14  Simon Budig  <simon@gimp.org>

        * app/vectors/gimpstroke.[ch]
        * app/vectors/gimpvectors.[ch]: Changed vectors->strokes to a
        GList and removed stroke->next. Implemented stuff for duplicating
        strokes. Duplicating a vector works now.

        * app/tools/gimpvectortool.c: added not-yet-used function to
        determine where a click has been. Refcounting stuff changed.

        * app/core/gimpimage-mask-select.c
        * app/paint/gimppaintcore-stroke.c: Changed accordingly.
2003-04-14 00:37:04 +00:00
Michael Natterer 86ec502c46 connect to "realize" of the scrolled window's viewport and scroll to the
2003-04-13  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpcontainergridview.c: connect to "realize" of the
	scrolled window's viewport and scroll to the correct item
	(because GtkViewport is too dumb to this by itself).

	* app/widgets/gimpcontainerpopup.[ch]: added a "view_type"
	parameter.

	* app/widgets/gimpviewablebutton.[ch]: added new function
	gimp_viewable_button_set_view_type() and pass the view_type
	to the GimpContainerPopup.

	* app/widgets/gimptemplateeditor.c: default to GIMP_VIEW_TYPE_GRID
	for the stock icon popup.
2003-04-13 20:19:07 +00:00
Michael Natterer 1a204234a4 Added g_return_if_fail (gimp_drawable_is_rgb (drawable)), cleanup.
2003-04-13  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-desaturate.c (gimp_drawable_desaturate):
	Added g_return_if_fail (gimp_drawable_is_rgb (drawable)), cleanup.
2003-04-13 18:45:38 +00:00
Michael Natterer 6663cee5f3 invalidate the preview when the stock_id changes.
2003-04-13  Michael Natterer  <mitch@gimp.org>

	* app/core/gimptemplate.c (gimp_template_notify): invalidate
	the preview when the stock_id changes.

	* app/widgets/gimptemplateeditor.[ch]: added an optional entry
	to edit the template's name.

	* app/widgets/gimptemplateview.[ch]: added a "duplicate" button and
	function pointers for creating templates, editing templates and
	creating images from templates.

	* app/gui/file-new-dialog.[ch] (file_new_dialog_create): added an
	optional template parameter.

	* app/gui/file-commands.c: pass template == NULL.

	* app/gui/templates-menu.c: added a "Duplicate Template" menu entry.

	* app/gui/templates-commands.[ch]: added the callback for the
	duplicate menu item. Added "New Template" and "Edit Template"
	dialogs. Added a function which opens a file_new_dialog with
	a template preselected.

	* app/gui/dialogs-constructors.c: let GimpTemplateView know
	about the functions.
2003-04-13 16:25:14 +00:00
Sven Neumann c16bc592a0 changed the "fade-length" and "gradient-length" minimum values to 0.0 for
2003-04-13  Sven Neumann  <sven@gimp.org>

	* app/paint/gimppaintoptions.c: changed the "fade-length" and
	"gradient-length" minimum values to 0.0 for compatibility with
	the PDB API.

	* app/paint/gimppaintcore.c (gimp_paint_core_get_color_from_gradient):
	check that gradient_length > 0.0 before dividing by it.

	* plug-ins/gfig/gfig.c (gfig_paint_callback): push an undo group
	around the paint operations (bug #110446).
2003-04-13 13:55:09 +00:00
Michael Natterer 1501733056 made the names editable in the tree view.
2003-04-13  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimptemplateview.c: made the names editable in the
	tree view.
2003-04-13 13:47:16 +00:00
Michael Natterer ffa291d6ce app/core/gimpcontext.c (gimp_context_deserialize_property) g_free() the
2003-04-13  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpcontext.c (gimp_context_deserialize_property)
	* app/core/gimpcontainer.c (gimp_container_deserialize): g_free()
	the string returned by gimp_scanner_parse_string(). Replace
	NULL object names by "".
2003-04-13 12:27:44 +00:00
Michael Natterer 4799083c69 g_memdup() the segments returned by gimp_image_mask_boundary(). Just
2003-04-13  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpeditselectiontool.c (init_edit_selection):
	g_memdup() the segments returned by gimp_image_mask_boundary().
	Just caching the pointers leads to bug #22375 because the image's
	mask boundary changes while we live-move stuff.

	* app/tools/gimpmovetool.c (gimp_move_tool_button_press): pause
	the selection when starting to move a guide, since we also resume
	it when we're finished.

	(both bugs tracked down by Pedro Gimeno).
2003-04-13 11:43:47 +00:00
Michael Natterer a4be816fa6 app/widgets/gimpcontainerpopup.[ch] added "preview_size" and
2003-04-12  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpcontainerpopup.[ch]
	* app/widgets/gimpviewablebutton.[ch]: added "preview_size" and
	"preview_border_width" parameters to the constructors and use them
	when creating the popup.

	* app/tools/gimptextoptions.c
	* app/tools/paint_options.c
	* app/widgets/gimptemplateeditor.c: changed accordingly. Create the
	icon popup without borders.
2003-04-12 20:02:16 +00:00
Michael Natterer f82440ff48 made object properties G_PARAM_READWRITE by default. Added flag
2003-04-12  Michael Natterer  <mitch@gimp.org>

	* app/config/gimpconfig-params.h: made object properties
	G_PARAM_READWRITE by default. Added flag GIMP_PARAM_AGGREGATE
	which indicates that an object property is not a reference but a
	real part of its owner.

	* app/config/gimpconfig-deserialize.c: g_object_set_property()
	object properties only if they are not GIMP_PARAM_AGGREGATE.

	* app/config/gimpconfig-utils.c (gimp_config_copy_properties,
	gimp_config_reset_properties): copy and reset GIMP_PARAM_AGGREGATE
	object properties correctly.

	* app/config/gimpconfig-serialize.c: don't call
	gimp_config_writer_open/close() for properties which are handled
	by a GimpConfigIface::serialize_property() implementation.

	* app/core/gimpcontext.c: removed exlicit G_PARAM_WRITABLE from
	object properties since that's the default now. Call
	gimp_config_writer_open/close() when serializing properties.

	* app/core/gimpviewable.c (gimp_viewable_get_property): use
	gimp_viewable_get_stock_id().
	(gimp_viewable_set_stock_id): set stock_id to NULL if the new
	stock_id is the same as viewable_class->default_stock_id.
	Added serialize_property() which skips stock_id serialization
	if it is NULL.

	* app/tools/gimptextoptions.c: made the "text" property
	GIMP_PARAM_AGGREGATE. Added gimp_text_options_set_property()
	(which does nothing).

	* app/widgets/gimptemplateeditor.[ch]: added an optional
	GimpViewableButton to change the template's icon.

	* app/gui/file-new-dialog.c: create it with the icon button so it
	gets some testing.
2003-04-12 19:06:25 +00:00
Sven Neumann 5aae2c2306 fixed fnord that caused the dialog to sometimes show a ratio of 0:0.
2003-04-11  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-scale.c
	(gimp_display_shell_scale_dialog): fixed fnord that caused the
	dialog to sometimes show a ratio of 0:0.
2003-04-11 22:00:09 +00:00
Sven Neumann a24b7de0c4 return GTK_ICON_SIZE_INVALID for non-existant icons.
2003-04-11  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpwidgets-utils.c (gimp_get_icon_size): return
	GTK_ICON_SIZE_INVALID for non-existant icons.

	* app/widgets/gimppreviewrenderer.c: handle GTK_ICON_SIZE_INVALID.
2003-04-11 21:23:34 +00:00
Michael Natterer 3343455c13 s/NewImageInfo/FileNewDialog/g, cleanup.
2003-04-11  Michael Natterer  <mitch@gimp.org>

	* app/gui/file-new-dialog.c: s/NewImageInfo/FileNewDialog/g,
	cleanup.
2003-04-11 17:42:59 +00:00
Michael Natterer fde9575781 derive it from GtkBin, not from GtkVBox. Removed "content_spacing" style
2003-04-11  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpdockable.[ch]: derive it from GtkBin, not from
	GtkVBox. Removed "content_spacing" style property.

	* app/widgets/gimpcontainerview-utils.c
	* etc/gtkrc_user
	* themes/Default/gtkrc: changed accordingly.
2003-04-11 16:51:49 +00:00
Michael Natterer d47eedc279 app/widgets/Makefile.am app/widgets/widgets-types.h new widget chopped out
2003-04-11  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimptemplateeditor.[ch]: new widget chopped out
	of file-new-dialog.c

	* app/gui/file-new-dialog.c: use it.
2003-04-11 13:17:23 +00:00