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>
"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.
2003-09-27 Michael Natterer <mitch@gimp.org>
* app/core/gimppaintinfo.[ch]: derive it from GimpViewable.
* app/core/gimptoolinfo.c (gimp_tool_info_new): set the
paint_info's stock_id from the tool_info's stock_id.
* app/widgets/widgets-types.h: resurrected GimpItemStrokeFunc.
* app/widgets/gimpvectorstreeview.[ch]: added a item_stroke_func
pointer and use it instead of implementing stroking here.
* app/gui/vectors-commands.[ch]: added vectors_stroke_vectors()
which has the signature of a GimpItemStrokeFunc.
* app/gui/dialogs-constructors.c: use it for the paths dialog.
* app/gui/stroke-dialog.[ch]: extended to handle both libart and
GimpPaintCore stroking. Use a GimpContainerMenu view on the
gimp->paint_info_list container to select the paint core to use.
2003-09-27 Sven Neumann <sven@gimp.org>
* app/gui/info-window.c (info_window_update): improved readability
of this code by introducing a local GimpImage* variable.
* app/composite/gimp-composite-regression.c: use a matching format
string for an u_long variable (should probably use gulong instead).
* app/composite/make-installer.py: output a short note about what
tests are going to be run.
* app/composite/gimp-composite-3dnow-test.c
* app/composite/gimp-composite-altivec-test.c
* app/composite/gimp-composite-mmx-test.c
* app/composite/gimp-composite-sse-test.c
* app/composite/gimp-composite-sse2-test.c
* app/composite/gimp-composite-vis-test.c: regenerated.
2003-09-27 Michael Natterer <mitch@gimp.org>
* app/gui/info-window.c (info_window_update): honor the
default-resolution-unit when displaying the image's resolution.
Fixes bug #123336.
* app/composite/gimp-composite-altivec-test.c
* app/composite/gimp-composite-mmx-test.c
* app/composite/gimp-composite-mmx-installer.c
* app/composite/gimp-composite-sse-test.c
* app/composite/gimp-composite-sse-installer.c
* app/composite/gimp-composite-sse2-test.c
* app/composite/gimp-composite-sse2-installer.c
* app/composite/gimp-composite-vis-test.c
* app/composite/gimp-composite-vis-installer.c:
Regenerated.
* app/composite/gimp-composite-altivec.[ch]
* app/composite/gimp-composite-mmx.[ch]
* app/composite/gimp-composite-sse.[ch]
* app/composite/gimp-composite-sse2.[ch]
* app/composite/gimp-composite-vis.[ch]
* app/composite/make-installer.py:
Make it such that when a test is run on the wrong kind of
machine, don't fail without an explanation.
2003-09-27 Simon Budig <simon@gimp.org>
This still is very much in progress. I just want to commit this
to avoid lossage. It kind of works but there definitely is
code in the wrong place now.
* app/gui/stroke-dialog.[ch]: New files implementing a dialog
containing Svens GimpStrokeEditor-Widget.
* app/gui/Makefile.am: changed accordingly.
* app/gui/vectors-commands.c: Open the StrokeOptions-Dialog when
the "stroke" menu entry gets selected.
* app/vectors/gimpvectors.c: Remove bad #ifdef hacks and use
Libart/Paintcore-Stroking depending on the type of the stroke_desc
Parameter.
* app/core/gimpstrokeoptions.c: Proper handle the Enum-Properties.
* app/core/gimpscanconvert.[ch]: make the antialias-parameter
to gimp_scan_convert_new a gboolean.
* app/tools/gimpiscissorstool.c
* app/core/gimpdrawable-stroke.c
* app/core/gimpimage-mask-select.c: Changed accordingly.
2003-09-26 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpstrokeeditor.[ch]: added a (yet rudimentary)
widget to view/edit a GimpStrokeOption.
* app/widgets/gimptemplateeditor.[ch]: derive it directly from
GtkVBox; it doesn't need any GimpEditor functionality.
2003-09-26 Manish Singh <yosh@gimp.org>
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: apply Simon's changes (GIMP_OBJECT
casts) to here, since they are generated files.
2003-09-26 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: #include
"widgets/gimpwidgets-utils.h" for gimp_button_menu_position().
2003-09-26 Michael Natterer <mitch@gimp.org>
* tools/pdbgen/Makefile.am: don't scan "app/tools/tools-enums.h"
for PDB types since the PDB doesn't depend on app/tools/ any more.
* app/tools/tools-enums.h: removed lengthy "skip" vs. "pdb-skip"
comment. Removed "pdb-skip" from all enums. Renamed GimpCropType
to GimpCropMode, renamed the enum's values to GIMP_CROP_MODE_*.
* app/tools/tools-enums.c: regenerated.
* app/tools/gimpcropoptions.[ch]
* app/tools/gimpcroptool.c: changed accordingly.
2003-09-26 Simon Budig <simon@gimp.org>
* app/core/gimpstrokeoptions.[ch]: New Object, holding the
Options for a Libart-Stroke.
* app/core/Makefile.am
* app/core/core-types.h: Changed accordingly.
* app/core/gimpitem.[ch]: Changed the Signature of
gimp_item_stroke to accept a GimpObject instead of a
GimpPaintInfo. This enables us to pass GimpStrokeOptions
to it. To be cleaned up for 2.2.
* app/core/gimpselection.c
* app/core/gimpchannel.c
* app/vectors/gimpvectors.c: Changed accordingly
* app/gui/edit-commands.c
* app/gui/vectors-commands.c
* app/pdb/edit_cmds.c
* app/pdb/paths_cmds.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpvectorstreeview.c: Fixed warnings by
casting the GimpPaintInfo to GimpObject.
2003-09-26 Michael Natterer <mitch@gimp.org>
Cleaned up all places which pick colors to work consistently: the
concept of an "active color" has disappeared, instead <ctrl> picks
the BG color all over the place (fixes bug #122931).
* app/tools/tools-enums.[ch]: added enum GimpColorPickMode which
can be one of { FOREGROUND, BACKGROUND }. Reordered enums so
non-registered ones are at the end of the file. Removed trailing
whitespace.
* app/tools/gimpcolorpickeroptions.[ch]: added a "pick-mode"
property and a GUI for it. Renamed the "update-active" property to
"update-toolbox".
* app/tools/gimpcolorpickertool.c: honor the new option. Toggle
pick-mode on <ctrl>.
* app/tools/gimpcolortool.[ch]: added pick_mode member and change
the cursor accordingly.
* app/widgets/gimpcolormapeditor.[ch]: added "GdkModifierType
state" to the "selected" signal. Removed the signal's default
implementation.
* app/gui/dialogs-constructors.c: fixed the signal handler which
lives here and set BG if <ctrl> was pressed.
* app/widgets/gimppaletteeditor.c: removed weird <ctrl> <->
active_color interaction and pick BG on <ctrl>. Don't change the
toolbox color when editing a color in the palette.
* app/widgets/gimptoolbox-color-area.[ch]: made the whole
active_color stuff private. Will remove these artefacts soon...
* app/gui/colormap-editor-menu.c
* app/gui/palette-editor-menu.c: added separate menu entries
for adding a color from the current FG and BG.
* app/gui/colormap-editor-commands.c
* app/gui/palette-editor-commands.[ch]: changed callbacks
accordingly.
* cursors/background.xbm
* cursors/background_mask.xbm
* cursors/foreground.xbm
* cursors/foreground_mask.xbm
* cursors/gimp-tool-cursors.xcf: moved the FG/BG cursor modifiers
closer to the upper right corner.
* app/widgets/gimpcursor.c: ignore the cursor modifiers' hotspots
since they are not relevant and I didn't save the hotspot in the
updated cursor files for that reason.
2003-09-26 Simon Budig <simon@gimp.org>
* app/core/gimpscanconvert.[ch]: Add some parameters to
gimp_scan_convert_stroke () to expose the Miter-Setting
and enable dashing of vectors.
* app/core/gimpdrawable-stroke.c: Use the dashing feature.
* app/vectors/gimpvectors.c: Expose a bad hack (opacity
controls the libart-stroke width) in a #define. Default
is not enabled.
2003-09-25 Sven Neumann <sven@gimp.org>
* app/config/gimpxmlparser.c (gimp_xml_parser_parse_io_channel):
removed debugging output.
* app/vectors/gimpvectors-import.c: simplified viewport handling
and make it adhere to the spec again (hopefully my interpretation
of the spec is right).
2003-09-25 Sven Neumann <sven@gimp.org>
* app/vectors/gimpvectors-import.[ch]: optionally scale the
imported SVG to fit the image.
* app/gui/vectors-commands.c: changed accordingly.
* tools/pdbgen/pdb/paths.pdb: export the new scale parameter to
the PDB.
* app/pdb/paths_cmds.c
* libgimp/gimppaths_pdb.[ch]: regenerated.
* plug-ins/common/svg.c: scale the imported vectors to image size.
This makes them always fit :)
2003-09-24 Michael Natterer <mitch@gimp.org>
* app/gui/dialogs-constructors.c (dialogs_get_view_menu_func):
using gimp_container_view_get_by_dockable() was a bad idea since
not all our GimpEditor subclasses actually are GimpContainerViews.
Find the right GimpEditor manually instead (fixes missing popup
menus).
* app/gui/colormap-editor-menu.c (colormap_editor_menu_update):
make the menu entries insensitive if the image is not indexed.
fixes bug #123066.
2003-09-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_menu_position)
* app/widgets/gimpcontainerpopup.c (gimp_container_popup_show):
more menus which pop up correctly with RTL languages.
2003-09-23 Sven Neumann <sven@gimp.org>
* app/gui/resize-dialog.c
* app/widgets/gimptemplateeditor.c
* plug-ins/common/svg.c: use horizontal boxes instead of alignments.
Fixes dialog layout for RTL rendering.
* plug-ins/common/png.c (save_dialog): only set the comment toggle
active if there's a comment to save.
2003-09-23 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added a utility function
that positions a menu that pops up from a button widget.
* app/display/gimpdisplayshell-callbacks.c
* app/widgets/gimpdockable.c: use the new utility function instead
of duplicating the code.
2003-09-23 Sven Neumann <sven@gimp.org>
* app/widgets/gimplayertreeview.c (gimp_layer_tree_view_init):
pack the widgets without using an alignment. Looks better and
works in RTL mode as well.
2003-09-23 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.[ch]: added the title pango layout to
the GimpDockable struct. Made gimp_dockable_menu_position() handle
RTL layout correctly.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_origin_menu_position): handle RTL layout.