2003-09-30 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: replaced
gimp_scan_convert_set_resolution with
gimp_scan_convert_set_pixel_ratio where you specify the pixel
ratio (width/height). Also made the stroke-width consistent
with other places in the gimp by using the Y-Resolution as
the base for the calculations.
* app/core/gimpdrawable-stroke.c: changed accordingly.
2003-09-30 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-stroke.c
* app/core/gimpstrokeoptions.[ch]
* app/gui/stroke-dialog.c: removed the resolution property again.
The object should stay resolution independent. The resolution can
be taken from the image it is used with.
2003-09-30 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: Added support for setting
X- and Y-resolution for stroking paths. The width of a path
has to be given in pixels, using X-resolution.
* app/core/gimpstrokeoptions.[ch]: Added "resolution" property,
so that conversion between various width-units can happen.
Should be set to the target images X-resolution.
* app/gui/stroke-dialog.c: set the resolution of the options.
* app/core/gimpdrawable-stroke.c: Use that stuff, cleanup.
2003-09-29 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/gimpitem-preview.[ch]: new files with preview code
factored out of GimpDrawable.
* app/core/gimpdrawable-preview.[ch]: code removed here.
* app/core/gimpdrawable.c
* app/core/gimpitem.c: let GimpItem implement
GimpViewable::get_preview_size and GimpViewable::get_popup_size.
* app/widgets/gimppreviewrenderervectors.c: simple scale to the
renderer's size; it already respects the aspect ratio.
2003-09-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptooloptionseditor.c: connect to the "add" and
"remove" signals of the current tool_option's presets container
and set the "Restore" and "Delete" buttons insensitive when there
are no saved tool options. Also show the "Enter Name" dialog
directly instead of popping up a menu with only one item.
2003-09-30 Michael Natterer <mitch@gimp.org>
* app/gui/tool-options-menu.[ch] (tool_options_menu_setup): new
function for stuff which needs to be done once, not on every
tool_options_menu_update(). Cleanup.
* app/gui/menus.c: register it as setup_func of <ToolOptions>.
* app/gui/tool-options-commands.c: removed the "Reset"
implementations and activate GimpToolOptionsEditor's buttons
accordingly.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_TOOL_OPTIONS_DELETE.
* app/widgets/gimptooloptionseditor.[ch]: moved "Reset"
implementations to this file. Added "Delete" button. Pop up the
"Save", "Restore" and "Delete" submenus of the <ToolOptions>
item_factory when the resp. buttons are clicked.
2003-09-29 Michael Natterer <mitch@gimp.org>
* app/core/gimptoolinfo.[ch]: added a GimpContainer of tool
options presets.
* app/core/gimptooloptions.[ch] (gimp_tool_options_set_property):
silently accept setting the *same* tool_info again.
(gimp_tool_options_build_filename): is public now.
* app/tools/gimp-tools.c (gimp_tools_restore,save): load and save
the presets container.
* app/gui/tool-options-dialog.[ch]: removed.
* app/gui/tool-options-commands.[ch]
* app/gui/tool-options-menu.[ch]: new files implementing a menu
for the new GimpToolOptionsEditor widget. Has submenus for saving,
loading, and deleting tool options to/from the
tool_info->options_presets container.
* app/gui/Makefile.am
* app/gui/dialogs-constructors.c
* app/gui/menus.c: changed accordingly.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimptooloptionseditor.[ch]: the tool options dialog
as proper widget. The "Load" and "Save" buttons still do the same
stuff as before. Will make them use the new presets since making
them do something useful was the reason for this whole change.
* app/widgets/gimphelp-ids.h: added missing help IDs for the tool
options dialog.
2003-09-29 Michael Natterer <mitch@gimp.org>
Fixed handling of G_PARAM_CONSTRUCT_ONLY properties:
* app/config/gimpconfig.c (gimp_config_iface_duplicate): build
a GParameter array of G_PARAM_CONSTRUCT_ONLY properties and
use g_object_newv() instead of g_object_new() to create the
copy.
* app/config/gimpconfig-utils.c
(gimp_config_copy_properties)
(gimp_consif_reset_properties): don't try to copy/reset
G_PARAM_CONSTRUCT_ONLY properties because it is impossible.
(gimp_config_connect_notify): ditto. Also don't try to read
from unreadable or write to unwritable properties.
2003-09-29 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcroptool.c: minor cleanups.
(gimp_crop_tool_modifier_key): s/crop-type/crop-mode/. Fixes tool
toggling which was broken after my GimpCropMode change.
(crop_tool_crop_image): replaced parameter "gboolean crop_layers"
by "GimpCropMode crop_mode". Makes its callers simpler and more
readable.
2003-09-29 Simon Budig <simon@gimp.org>
* app/widgets/gimppreviewrenderervectors.c: Fixed a bad
crash (Thanks to Sven for spotting that). Minor cleanups.
2003-09-29 Simon Budig <simon@gimp.org>
* app/widgets/gimppreviewrenderervectors.c: Made the preview
respect the aspect ratio and resolutions of the image. There
apparently still is an off-by-one error in it.
* app/tools/gimpvectortool.c: (Hopefully) fixed a crash when a new
image gets opened with the vectors tool active.
2003-09-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimppreviewrenderer.[ch]: made draw a virtual method
of GimpPreviewRenderer. Draw the border in the wrapper function.
* app/widgets/gimppreviewrenderervectors.c: implement
GimpPreviewRenderer::draw instead of GimpPreviewRenderer::render.
2003-09-29 Simon Budig <simon@gimp.org>
* app/widgets/gimppreviewrenderervectors.c: Made these widgets
show a preview of the vectors object. Does not work everywhere
right now, also most probably has scaling issues for non-square
images.
* app/tools/gimpdrawtool.c: Fixed Svens fix.
2003-09-28 Sven Neumann <sven@gimp.org>
* app/gui/stroke-dialog.c (stroke_dialog_new): as a temporary hack,
let the Stroke Dialog remember the last used stroke options.
2003-09-28 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.c (gimp_scan_convert_free)
(gimp_scan_convert_finish): plugged memleaks and added some sanity
checks.
* app/base/pixel-region.c
* app/core/gimpdrawable-preview.c: removed trailing whitespace.
* app/tools/gimpdrawtool.c (gimp_draw_tool_on_vectors_curve):
gimp_stroke_nearest_point_get() doesn't set cur_pos when there are
no strokes; don't use the uninitialized variable.
2003-09-28 Simon Budig <simon@gimp.org>
Fabian Franz <debian@fabian-franz.de>
Ok, this time for real... :-)
* plug-ins/common/animoptimize.c
* plug-ins/common/screenshot.c
* plug-ins/common/smooth_palette.c
* plug-ins/common/tile.c: Fixed Undo issues. Plugins creating
new images should create an empty undo history. Sprinkeling
gimp_image_enable_undo() at the end of the plugins operations
does the trick. It makes sense to do this *before* you add
a display to the image, otherwise the UI gets out of sync.
2003-09-28 Simon Budig <simon@gimp.org>
"The last of the Oldenburg commits"
Thanks to the team of the Oldenburg Linux Developers Meeting 2003
for providing a nice hacking environment.
* app/vectors/gimpvectors.c: Add a default stock_id.
* app/widgets/gimppreviewrenderervectors.[ch]: New Widget
to render the preview of vectors. Just renders a stock item
now, since I was unable to figure out how to properly draw
in the GtkWidget.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h: Changed accordingly.
* app/widgets/gimppreviewrenderer-utils.c: Use the new widget.
* app/core/gimpscanconvert.c
* app/core/gimpdrawable-stroke.c: Use higher prescision for
libart-stroking vectors. Reduces artefacts.
* app/pdb/paths_cmds.c
* libgimp/gimppaths_pdb.c: Regenerated after Tors changes.
2003-09-28 Sven Neumann <sven@gimp.org>
* app/gui/resolution-calibrate-dialog.c (resolution_calibrate_ok):
use the GIMP_COORDINATES_CHAINBUTTON() macro instead of trying to
get it using a hardcoded and misspelled identifier.
2003-09-28 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.c (gimp_image_transform_temp_buf): use a much
simpler and shorter method of determining how to transform the
TempBuf.
2003-09-27 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-bucket-fill.c
(gimp_drawable_bucket_fill_full): set the transformed color's
alpha to OPAQUE so it works with color_region().
* app/core/gimpdrawable-stroke.c (gimp_drawable_stroke_vectors):
no need to transform the color into a newly allocated array,
simply use guchar[MAX_CHANNELS] instead.
Cleaned up both functions to use RED_PIX, GREEN_PIX and BLUE_PIX
instead of 0, 1 and 2.
2003-09-27 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: added new functions
color_region_mask() which works like color_region() but takes an
additional maskPR parameters and pattern_region() which fills
destPR with a TempBuf of *matching color depth*.
* app/paint-funcs/paint-funcs-generic.h: added corresponding
color_pixels_mask() and pattern_pixels().
* app/core/gimpimage.[ch] (gimp_image_transform_temp_buf): new
function which transforms a TempBuf to a specified drawable's
color space.
* app/core/gimpdrawable-bucket-fill.c: the functions were factored
out here. Removed them and use the new stuff.
* app/core/core-enums.[ch]: added enum GimpStrokeStyle which can
be one of { SOLID, PATTERN }.
* app/core/gimpstrokeoptions.[ch]: added "GimpStrokeStyle style"
property, cleanup.
* app/core/gimpdrawable-stroke.c: honor the new "style" property
and call the new color_region_mask() and pattern_region()
functions accordingly, cleanup.
* app/widgets/gimpstrokeeditor.c: added a GUI for the stroke
style. Ugly but works.
* app/gui/stroke-dialog.c: undefine "foreground" and "pattern" and
set the user context as parent context so we get these properties
from the global settings.
2003-09-27 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-cap-[butt|round|square]-16.png
* themes/Default/images/stock-join-[miter|round|bevel]-16.png:
added placeholders for GimpCapStyle and GimpJoinStyle icons.
* libgimpwidgets/gimpstock.[ch]: register the new icons.
* app/widgets/gimpstrokeeditor.c: made "options" a construct-only
property of the editor and create the widgets in a constructor
method. Use stock boxes with the new icons.
* app/gui/stroke-dialog.c (stroke_dialog_new): let the Cancel
button destroy the dialog instead of itself.
2003-09-27 Simon Budig <simon@gimp.org>
* app/core/gimpdrawable-stroke.[ch]: changed the API of
gimp_drawable_stroke_vectors to accept GimpStrokeOptions
instead of lots of individual parameters.
* app/vectors/gimpvectors.c: changed accordingly.
2003-09-27 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokeoptions.[ch]: added unit properties for
stroke width and dashes. Use convenience macros from GimpConfig to
register the properties. Removed init function since all values
are construct properties.
* app/vectors/gimpvectors.c: respect the stroke width unit.
* app/widgets/gimpstrokeeditor.c: added a unit menu here.
2003-09-27 Michael Natterer <mitch@gimp.org>
* app/gui/stroke-dialog.[ch]: made it a view on the GimpItem to
stroke, not on the image, so the dialog goes away automatically if
the item is removed from the image. Don't pass a GimpStrokeOptions
to stroke_dialog_new() until we figured how to handle a list of
presets or at least the last used options object. Also don't pass
a GimpDrawable, get the active_drawable in the "ok" callback
instead. Attach less pointers to the dialog and simplified stuff.
* app/gui/vectors-commands.c (vectors_stroke_vectors): changed
accordingly, removed commented out cruft.