mirror of https://github.com/GNOME/gimp.git
150 Commits
Author | SHA1 | Message | Date |
---|---|---|---|
Michael Natterer | 8848558f95 |
More GtkAction stuff (still unused):
2004-04-19 Michael Natterer <mitch@gimp.org> More GtkAction stuff (still unused): * configure.in: added new directories menus/ and app/actions/ * Makefile.am: build menus/ * menus/.cvsignore * menus/Makefile.am * menus/*-menu.xml: new files: XML menu descriptions for each menu which is now defined in gui/*-menu.c. * app/widgets/widgets-types.h: some typedefs for GimpActionGroup. * app/widgets/gimpactiongroup.[ch]: added a "Gimp" construct-only property. Added APIs to set actions visible/sensitive/active and an unimplemented stub for setting the action's color. * app/Makefile.am: build actions/ and link libappactions.a * app/actions/.cvsignore * app/actions/Makefile.am * app/actions/*-actions.[ch]: new files: GtkActions for each *-commands.c file in gui/. Ported all "update" functions from the *-menu.c files. (everything completely unused, untested and partly #if 0'ed) * app/core/gimpimage.[ch]: for reasons of (action-) symmetry, added API to raise/lower channels/vectors to top/bottom. * app/gui/channels-commands.[ch] * app/gui/vectors-commands.[ch]: added callbacks for the new to top/bottom functions. * app/gui/Makefile.am * app/gui/dockable-commands.[ch]: new files split out of dialogs-commands.[ch]. * app/gui/dialogs-commands.[ch] * app/gui/dialogs-menu.c: changed accordingly. * app/gui/edit-commands.[ch]: added edit_paste_into_cmd_callback() and remove usage of "guint action". * app/gui/image-menu.c: changed accordingly. * app/gui/palette-editor-commands.[ch]: split +palette_editor_new_color_cmd_callback() into separate callbacks for adding from FG and BG. * app/gui/palette-editor-menu.c: changed accordingly. |
|
Michael Natterer | 18d9161eea |
Get rid of the "current_context" which was in fact just a bunch of global
2004-04-15 Michael Natterer <mitch@gimp.org> Get rid of the "current_context" which was in fact just a bunch of global variables. Instead, pass the needed context all the way from the GUI and the PDB to the core. This is a prerequisite for macro recording and generally helps separating the various subsystems from each other. Work in progress... * app/core/gimp.[ch]: removed member "current_context" and gimp_[get|set]_current_context(). * app/core/gimp-edit.[ch] * app/core/gimpdrawable-blend.[ch] * app/core/gimpdrawable-bucket-fill.[ch] * app/core/gimpdrawable-offset.[ch] * app/core/gimpdrawable-transform.[ch] * app/core/gimpimage-crop.[ch] * app/core/gimpimage-flip.[ch] * app/core/gimpimage-merge.[ch] * app/core/gimpimage-resize.[ch] * app/core/gimpimage-rotate.[ch] * app/core/gimpimage.[ch] * app/core/gimpimagefile.[ch] * app/core/gimpitem-linked.[ch] * app/core/gimpitem.[ch] * app/core/gimplayer.[ch] * app/core/gimpselection.[ch] * app/core/gimptemplate.[ch] * app/file/file-open.[ch] * app/file/file-save.[ch] * app/pdb/procedural_db.[ch] * app/text/gimptext-compat.[ch] * app/text/gimptextlayer-transform.[ch] * app/gui/brush-select.[ch] * app/gui/font-select.[ch] * app/gui/gradient-select.[ch] * app/gui/palette-select.[ch] * app/gui/pattern-select.[ch]: added tons of "GimpContext *context" parameters and use the passed context instead of gimp_get_current_context(). * app/app_procs.c * app/batch.c * app/core/gimpchannel.c * app/core/gimpdrawable.c * app/paint/gimperaser.c * app/paint/gimppaintbrush.c * app/plug-in/plug-in-message.c * app/plug-in/plug-ins.c * app/text/gimptextlayer.c * app/tools/gimpblendtool.c * app/tools/gimpbucketfilltool.c * app/tools/gimpcroptool.c * app/tools/gimpeditselectiontool.c * app/tools/gimpfliptool.c * app/tools/gimpinktool.c * app/tools/gimptransformtool.c * app/vectors/gimpvectors.c * app/gui/convert-dialog.c * app/gui/drawable-commands.c * app/gui/edit-commands.c * app/gui/file-commands.c * app/gui/file-new-dialog.c * app/gui/file-open-dialog.c * app/gui/file-save-dialog.c * app/gui/image-commands.c * app/gui/layers-commands.c * app/gui/offset-dialog.c * app/gui/select-commands.c * app/gui/vectors-commands.c * app/widgets/gimpdnd.c * app/widgets/gimpdocumentview.c * app/widgets/gimphelp.c * app/widgets/gimpthumbbox.c: pass gimp_get_user_context() or GIMP_CONTEXT(tool_options) or whatever is the right context to the changed core functions. * tools/pdbgen/app.pl: pass "GimpContext *context" to all generated PDB invokers. * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/edit.pdb * tools/pdbgen/pdb/font_select.pdb * tools/pdbgen/pdb/gradient_select.pdb * tools/pdbgen/pdb/gradients.pdb * tools/pdbgen/pdb/image.pdb * tools/pdbgen/pdb/layer.pdb * tools/pdbgen/pdb/paint_tools.pdb * tools/pdbgen/pdb/palette.pdb * tools/pdbgen/pdb/palette_select.pdb * tools/pdbgen/pdb/palettes.pdb * tools/pdbgen/pdb/paths.pdb * tools/pdbgen/pdb/pattern_select.pdb * tools/pdbgen/pdb/patterns.pdb * tools/pdbgen/pdb/selection.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: pass the new context parameter to the changed core functions. * app/pdb/*_cmds.c: regenerated. |
|
Michael Natterer | 800b7a5d53 |
added "gboolean alpha_changed" to GimpImageFlushAccumulator. Install an
2004-03-15 Michael Natterer <mitch@gimp.org> * app/core/gimpimage.[ch]: added "gboolean alpha_changed" to GimpImageFlushAccumulator. Install an "alpha_changed" handler on gimage->layers and set flush_accum.alpha_changed = TRUE whenever the image's *only* layer changed its alpha. * app/core/gimpimage-undo-push.c (undo_pop_layer_mod) * app/core/gimplayer.c (gimp_layer_add_alpha): removed explicit calls to gimp_image_alpha_changed(). |
|
Simon Budig | dfd41249fe |
app/core/gimpimage.[ch] renamed gimage->freeze_count to
2004-03-15 Simon Budig <simon@gimp.org> * app/core/gimpimage.[ch] * app/core/gimpimage-undo.c: renamed gimage->freeze_count to gimage->undo_freeze_count (more explicit). * app/file/file-open.c: Ensure that the undo system is enabled after loading an image (to protect against broken loaders). |
|
Simon Budig | 657bd9fff7 |
app/core/gimpimage.[ch] introduced a freeze counter, so that
2004-03-14 Simon Budig <simon@gimp.org> * app/core/gimpimage.[ch] * app/core/gimpimage-undo.c: introduced a freeze counter, so that undo_freeze(); undo_freeze(); undo_thaw(); no longer results in an thawed undo stack. Fixes Bug #124176. This might reveal other places in the code where gimp_image_undo_freeze/thaw or gimp_image_undo_disable/enable were used in an inconsistent (not-paired) manner. * app/file/file-open.c: e.g. here, where _enable was called on the new image. The intention was to free a potential undo stack, so now call gimp_image_undo_free() instead. |
|
Michael Natterer | 25b81b1570 |
Fixed lots of QuickMask brokenness by letting the image adjust its
2004-02-14 Michael Natterer <mitch@gimp.org> Fixed lots of QuickMask brokenness by letting the image adjust its qmask_state automatically: * app/core/gimpimage-qmask.h: #define GIMP_IMAGE_QMASK_NAME "Qmask". Use the define in all files below. * app/core/gimpimage.[ch]: split gimp_image_drawable_add,_remove() into separate handlers for layers and channels. Added a "name_changed" handler for all channels. In the channel "add", "remove" and "name_changed" handlers, check if it was a channel named "Qmask" that was added, removed or renamed and call gimp_image_set_qmask_state() accordingly. * app/core/core-enums.[ch] * app/core/gimpimage-undo-push.[ch] * app/core/gimpundo.c: removed all Qmask undo code because the image does the right thing without undo interaction now. * app/core/gimpimage-qmask.c (gimp_image_set_qmask_state): set gimage->qmask_state early so we can return early when called recursively. Removed calls to gimp_image_undo_push_image_qmask(). Returned "removed" callback (it was utterly broken the way it was implemented). * app/display/gimpdisplayshell-callbacks.c (gimp_display_shell_qmask_toggled): check if the image's qmask state needs to be changed before changing it. * app/xcf/xcf-load.c (xcf_load_channel): removed code which recognized the qmask. GimpImage does this automatically now. * app/gui/qmask-commands.c: cleanup. * app/widgets/gimpimagedock.c (gimp_image_dock_constructor): destroy the "/Select/By Color" and "/Select/Toggle QuickMask" menu items. * app/widgets/image-menu.c (image_menu_update): changed accordingly. |
|
Michael Natterer | 748d432f3a |
removed gimp_image_owns_item() again.
2004-01-26 Michael Natterer <mitch@gimp.org> * app/core/gimpimage.[ch]: removed gimp_image_owns_item() again. * app/core/gimpitem.[ch]: instead, added new virtual function GimpItem::is_attached(). * app/core/gimpchannel.c * app/core/gimplayer.c * app/core/gimplayermask.c * app/core/gimpselection.c * app/vectors/gimpvectors.c: implement it. * app/core/gimp-edit.c * app/core/gimpdrawable-transform.c * app/core/gimplayer-floating-sel.c * app/text/gimptext-compat.c * tools/pdbgen/pdb/edit.pdb * tools/pdbgen/pdb/floating_sel.pdb * tools/pdbgen/pdb/selection.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb_ changed accordingly. * app/pdb/edit_cmds.c * app/pdb/floating_sel_cmds.c * app/pdb/selection_cmds.c * app/pdb/text_tool_cmds.c * app/pdb/transform_tools_cmds.c: regenerated. |
|
Michael Natterer | dc3ac41965 |
add the layer to the image before pasting to it. Fixes bug #132504.
2004-01-26 Michael Natterer <mitch@gimp.org> * plug-ins/script-fu/scripts/unsharp-mask.scm: add the layer to the image before pasting to it. Fixes bug #132504. Fixed the underlying problem: make it impossible to attach floating selections to drawables which are not currently part of the image's layer or channel stacks. Also cleaned up image <-> floating_sel interaction: * app/core/gimplayer-floating-sel.[ch] (floating_sel_attach): added assertion that the drawable is part of the image (see below). Don't call gimp_image_floating_selection_changed(), it's emitted by gimp_image_add_layer() now. (floating_sel_remove) (floating_sel_anchor): don't emit "floating_selection_changed", it's emitted by gimp_image_remove_layer() now. (floating_sel_anchor): removed the fix for bug #132162 because gimp_image_remove_layer() behaves correctly now (see below). Renamed floating_sel_reset() to floating_sel_activate_drawable(). Added g_return_if_fail() all over the place. * app/core/gimpimage.[ch]: added new function gimp_image_owns_item() which return TRUE if the passed item is part of the image. (gimp_image_add_layer): emit "floating_selection_changed" here if needed. (gimp_image_remove_layer): emit "floating_selection_changed" if needed, don't try to activate a layer if we called floating_sel_activate_drawable(). This is the real fix for bug #132162. * app/core/gimpimage-undo-push.c (undo_pop_layer): apply the same fixes as to gimp_image_add,remove_layer(). Don't call gimp_drawable_invalidate_preview() on the previously active layer because that's done by gimp_image_set_active_layer() now. * app/xcf/xcf-load.c: remember the "floating_sel_drawable" in the XcfInfo struct and attach it *after* all layers and channels are loaded to avoid attaching the floating selection to an out-of-image drawable. * app/core/gimp-edit.c (gimp_edit_paste) * app/core/gimpdrawable-transform.c (gimp_drawable_transform_affine, gimp_drawable_transform_flip, gimp_drawable_transform_rotate) * app/core/gimpselection.c (gimp_selection_float) * app/text/gimptext-compat.c (text_render): added checks for gimp_image_owns_item() in all functions which can produce floating selections. * tools/pdbgen/pdb/edit.pdb * tools/pdbgen/pdb/floating_sel.pdb * tools/pdbgen/pdb/selection.pdb * tools/pdbgen/pdb/text_tool.pdb * tools/pdbgen/pdb/transform_tools.pdb: added checks for gimp_item_owns_image() and return an execution error if invoked with a drawable which is not part of the image. * app/pdb/edit_cmds.c * app/pdb/floating_sel_cmds.c * app/pdb/selection_cmds.c * app/pdb/text_tool_cmds.c * app/pdb/transform_tools_cmds.c: regenerated. |
|
Michael Natterer | 9efe077ca2 |
also return the color's alpha byte if it has alpha, not only the converted
2004-01-18 Michael Natterer <mitch@gimp.org> * app/core/gimpimage.[ch] (gimp_image_get_color): also return the color's alpha byte if it has alpha, not only the converted RGB values. Return OPAQUE_OPACITY for drawables without alpha. Fixes bug #131706. * app/core/gimpdrawable.c (gimp_drawable_get_color_at) * app/core/gimpimage-contiguous-region.c (gimp_image_contiguous_region_by_color) * app/core/gimpimage-projection.c (gimp_image_projection_get_color_at) * app/core/gimpimagemap.c (gimp_image_map_get_color_at) * app/paint/gimpclone.c (gimp_clone_line_image): removed separate handling of the alpha byte from all users of gimp_image_get_color(). |
|
Michael Natterer | 9d43b0669b |
added GIMP_IMAGE_TYPE_WITHOUT_ALPHA() macro as counterpart to
2004-01-14 Michael Natterer <mitch@gimp.org> * app/core/gimpimage.h: added GIMP_IMAGE_TYPE_WITHOUT_ALPHA() macro as counterpart to GIMP_IMAGE_TYPE_WITH_ALPHA(). * app/core/gimpdrawable.[ch]: added gimp_drawable_type_without_alpha() and gimp_drawable_bytes_without_alpha() convenience functions. |
|
Michael Natterer | 896b00074a |
removed unused "gint proj_level" from the GimpImage struct.
2003-12-04 Michael Natterer <mitch@gimp.org> * app/core/gimpimage.h: removed unused "gint proj_level" from the GimpImage struct. |
|
Sven Neumann | 3ac7d14d19 |
app/core/gimpimage-grid.c app/core/gimpimage.[ch] removed the
2003-10-14 Sven Neumann <sven@gimp.org> * app/core/gimpimage-grid.c * app/core/gimpimage.[ch] * app/gui/grid-dialog.c: removed the "grid_changed" signal from GimpImage. * app/display/gimpdisplayshell-handlers.c: connect to notifications from the image grid instead. |
|
Michael Natterer | a20e04bdaf |
added new virtual functions GimpDrawable::get_active_components(),
2003-10-06 Michael Natterer <mitch@gimp.org> * app/core/gimpdrawable.[ch]: added new virtual functions GimpDrawable::get_active_components(), apply_region() and replace_region(). * app/core/Makefile.am * app/core/gimpdrawable-combine.[ch]: new files containing apply_region()'s and replace_region()'s default implementation. They are identical to the ones removed from GimpImage except that they don't mask the selection with itself (bug #107949). * app/core/gimpchannel.c * app/core/gimplayer.c: implement get_active_components(). * app/core/gimpchannel.c: implement apply_region() and replace_region() and invalidate the channel's boundary before upchaining (bug #107949). * app/core/gimpimage.[ch]: removed gimp_image_apply_image(), gimp_image_replace_image() and gimp_image_get_active_components(). * app/core/gimpimage-undo-push.c (undo_pop_image): invalidate boundary and bounds if the drawable is a channel (bug #107949). (undo_pop_mask) (undo_pop_channel_mod): finish previous commit :) * app/core/gimp-edit.c * app/core/gimpdrawable-blend.c * app/core/gimpdrawable-bucket-fill.c * app/core/gimpdrawable-stroke.c * app/core/gimpimagemap.c * app/core/gimplayer-floating-sel.c * app/paint/gimppaintcore.c * app/tools/gimpinktool.c: changed accordingly. |
|
Michael Natterer | f0372cad0f |
Treat changes to the selection like changes to any other drawable:
2003-10-06 Michael Natterer <mitch@gimp.org> Treat changes to the selection like changes to any other drawable: * app/core/gimpchannel.c * app/core/gimpchannel-combine.c: call gimp_drawable_update() after changing the channel. * app/core/gimpimage.[ch]: added struct GimpImageFlushAccumulator with one member "gboolean mask_changed". Connect to "update" of the selection and set accum.mask_changed to TRUE in the callback. Added default implementation for GimpImage::flush() and emit "mask_changed" there. Unrelated: * app/core/gimpimage.h: removed GimpGuide struct... * app/core/gimpimage-guides.h: ...and added it here. * app/core/gimpimage-undo-push.c (undo_pop_mask) (undo_pop_channel_mod): don't distinguish between selection and non-selection channels and just call gimp_drawable_update(). * app/core/gimpundo.h * app/core/gimpimage-undo.c: removed "gboolean mask_changed" from the GimpUndoAccumulator struct since we don't have to care about that signal explicitly any more. * app/display/gimpdisplay-foreach.[ch]: removed gimp_displays_flush(). * tools/pdbgen/pdb/display.pdb (displays_flush_invoker): call gimp_image_flush() on all images so the flush accumulator is honored. This generalization enables the removal of more special purpose code which was needed to treat the selection different: * app/core/gimpimage-mask-select.[ch]: removed... * app/core/gimpchannel-select.[ch]: ...and added under a new name because it's not selection specific any more. * app/core/gimpimage-mask.[ch]: removed... * app/core/gimpselection.[ch]: ...added the two remaining functions here. Removed all calls to gimp_image_mask_changed(). * app/core/Makefile.am * app/core/gimp-edit.c * app/core/gimpdrawable-transform.c * app/core/gimpimage-scale.c * app/core/gimpimage-snap.c * app/display/gimpdisplayshell.c * app/gui/channels-commands.c * app/gui/layers-commands.c * app/gui/select-commands.c * app/gui/vectors-commands.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpeditselectiontool.c * app/tools/gimpellipseselecttool.c * app/tools/gimpfreeselecttool.c * app/tools/gimpfuzzyselecttool.c * app/tools/gimpiscissorstool.c * app/tools/gimprectselecttool.c * app/tools/gimptransformtool.c * app/widgets/gimpchanneltreeview.c * app/widgets/gimpselectioneditor.c * app/widgets/gimpvectorstreeview.c * app/xcf/xcf-save.c * tools/pdbgen/pdb/paths.pdb * tools/pdbgen/pdb/selection.pdb * tools/pdbgen/pdb/selection_tools.pdb: changed accordingly. * app/core/gimpdrawable-bucket-fill.c * app/core/gimpimage-colormap.c * app/core/gimplayer-floating-sel.c * app/core/gimplayer.c * app/gui/image-menu.c * app/paint/gimppaintcore.c * app/tools/gimpcroptool.c * app/tools/gimpinkoptions.c * app/tools/gimpvectortool.c: removed useless and/or obsolete #includes. * app/pdb/display_cmds.c * app/pdb/paths_cmds.c * app/pdb/selection_cmds.c * app/pdb/selection_tools_cmds.c: regenerated. |
|
Michael Natterer | ab34b3ee94 |
added new functions color_region_mask() which works like color_region()
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. |
|
Michael Natterer | 7a5f914866 |
To optimize duplicate and/or wrong image updates away, introduced new
2003-09-06 Michael Natterer <mitch@gimp.org> To optimize duplicate and/or wrong image updates away, introduced new policy that a child object must never explicitly update or invalidate its parent object (just like the GUI is not updated explicitly by the core): * app/core/gimpdrawable.[ch]: added new signal GimpDrawable::update(). Never update or invalidate the image when the drawable is updated or invalidated. (gimp_drawable_set_visible): don't gimp_drawable_update() the drawable since its pixels have not changed. * app/core/gimpimage.[ch]: connect to the "add" and "remove" signals of the layers and channels containers. Also connect to the "update" and "visibility_changed" signals of all drawables in these containers (optimizes away updates issued by drawables which are not yet added to the image and updates of the selection mask). Also, don't propagate updates to the image if the emitting drawable is invisible (optimizes away updates issued by invisible drawables). (gimp_image_add_layer,channel) (gimp_image_remove_layer,channel): don't update the image since that's done by our "add" and "remove" handlers now. (gimp_image_position_layer,channel): update just the image, not the drawable since its pixels have not changed. (gimp_image_real_colormap_changed) (gimp_image_set_component_visible): always call gimp_image_update() *and* gimp_viewable_invalidate_preview() to get everything updated, since update and invalidate of images are not connected. * app/core/gimpimage-undo-push.c (undo_pop_layer,channel): don't update the drawable since (a) its pixels don't change and (b) the image updates itself upon adding/removing now. (undo_pop_layer_mod): replaced gimp_image_update() by gimp_drawable_update() (just for consistency with other similar functions). * app/core/gimplayer.c: connect to "update" of the layer mask and issue updates on the layer if the mask update has any effect on the projection. (gimp_layer_create_mask): don't set the mask's offsets here since they may be different when we later add the mask to the layer. * app/core/gimplayermask.c (gimp_layer_mask_set_layer): set the mask offsets here instead. * app/core/gimpchannel.c (gimp_channel_translate): update the channel even if push_undo == FALSE. * app/paint/gimppaintcore.c (gimp_paint_core_finish) * app/tools/gimpinktool.c (ink_finish): invalidate both the drawable and the image preview since invalidating the drawable doesn't invalidate the image any more. * app/text/gimptextlayer.c (gimp_text_layer_render_now): also update the new extents of the text layer, not only the old one. (gimp_text_layer_render_layout): don't update the drawable since gimp_drawable_fill() already updated it. |
|
Michael Natterer | aaf84a73d2 |
removed function map_to_color() since it does not belong here and the two
2003-09-05 Michael Natterer <mitch@gimp.org> * app/paint-funcs/paint-funcs.[ch]: removed function map_to_color() since it does not belong here and the two places using it look much cleaner when doing that stuff themselves. * app/core/gimpdrawable-preview.c: cleanup. (gimp_drawable_preview_scale): do the indexed palette lookup here instead of calling map_to_color(). * app/core/gimpimage.c (gimp_image_get_color): transform the colors here instead of calling map_to_color(). * app/core/gimpimage.[ch] (gimp_image_get_color): reordered parameters src parameters are before dest parameters. Made the src color const. (gimp_image_transform_color): reordered so src parameters are *after* dest parameters (since this function operates on the dest image and it makes sense to have the dest parameters together). Made the src color const here, too. * app/core/gimpdrawable-bucket-fill.c * app/core/gimpdrawable.c * app/core/gimpimage-contiguous-region.c * app/core/gimpimage-projection.c * app/core/gimpimagemap.c * app/core/gimplayer.c * app/core/gimppalette-import.c * app/paint/gimpclone.c * app/paint/gimppaintcore.c: changed accordingly. * app/core/gimpedit.c (gimp_edit_cut,copy): simplified by moving the "cropped" variable to a local scope. * app/core/gimpimage-mask.c: calling gimp_image_update() followed by gimp_viewable_imvalidate_preview(drawable) is equal to calling gimp_drawable_update() directly. |
|
Michael Natterer | 420d17d286 |
made all functions which push an undo step virtual and added them all as
2003-09-03 Michael Natterer <mitch@gimp.org> * app/core/gimpchannel.[ch]: made all functions which push an undo step virtual and added them all as default implementations. * app/core/Makefile.am * app/core/core-types.h * app/core/gimpselection.[ch]: new object which is a GimpChannel subclass and implements all of its virtual functions, pushes an image_mask undo and chains up with "push_undo = FALSE". * app/core/gimpimage-mask.[ch]: made most functions simple wrappers like gimp_channel_invert(gimp_image_get_mask(gimage)); so the API stays the same for now. * app/core/gimpimage.[ch]: create a GimpSelection object as gimage->selection_mask. Removed "gboolean mask_stroking" since it is in GimpSelection now. * app/xcf/xcf-load.c (xcf_load_channel_props): added an evil hack which turns a GimpChannel into a GimpSelection once we figured the loaded channel is the selection. * app/core/gimplayer.c (gimp_layer_create_mask): gimp_channel_clear() takes an additional "const gchar *undo_desc" parameter now. * app/core/gimpscanconvert.c (gimp_scan_convert_to_channel): set mask->bounds_known to FALSE before returning the new channel * app/tools/gimpiscissorstool.c (iscissors_convert): no need to call gimp_channel_invalidate_boundary() on the channel returned by the above function. * app/core/gimpchannel.[ch]: removed gimp_channel_invalidate_boundary() since it is no longer needed. |
|
Michael Natterer | dcb6f225d9 |
added new virtual function GimpItem::stroke().
2003-09-01 Michael Natterer <mitch@gimp.org> * app/core/gimpitem.[ch]: added new virtual function GimpItem::stroke(). * app/core/gimpchannel.c * app/vectors/gimpvectors.c: implement GimpItem::stroke(). * app/core/gimpimage-mask.[ch] (gimp_image_mask_stroke): changed signature to match gimp_item_stroke() (the selection mask *really* should be a GimpChannel subclass). Removed global variable "gboolean gimp_image_mask_stroking"... * app/core/gimpimage.[ch]: ...and added "gboolean mask_stroking" to the GimpImage struct. * app/gui/vectors-commands.[ch]: removed vectors_stroke_vectors(). * app/widgets/widgets-types.h: removed GimpStrokeItemFunc typedef. * app/widgets/gimpvectorstreeview.[ch]: removed "stroke_item_func" member and use gimp_item_stroke() instead. * app/gui/dialogs-constructors.c (dialogs_vectors_list_view_new) * app/gui/edit-commands.c (edit_stroke_cmd_callback) * app/gui/vectors-commands. (vectors_stroke_cmd_callback) * app/widgets/gimpselectioneditor.c (gimp_selection_editor_stroke_clicked) * tools/pdbgen/pdb/edit.pdb (gimp_edit_stroke): changed accordingly. * app/pdb/edit_cmds.c: regenerated. Note that there is no GUI for "stroke channel", although it would be utterly cool to have one, since currently slelection stroking cannot be masked by a selection (because we stroke the selection). Anyway, if anyone has an idea how to trigger "stroke channel" with another drawable active (the one to stroke to), please let me know... |
|
Henrik Brix Andersen | 5943f03135 |
Added persistent storage of image grid in XCF files.
2003-07-04 Henrik Brix Andersen <brix@gimp.org> Added persistent storage of image grid in XCF files. * app/core/gimpimage.[ch]: removed gimp_image_get_grid() and gimp_image_set_grid() ... * app/core/Makefile.am * app/core/gimpimage-grid.[ch]: ... and added them to these new files. Added gimp_grid_parasite_name(), gimp_grid_to_parasite() and gimp_grid_from_parasite() functions. * app/core/gimpimage-snap.c * app/gui/grid-dialog.c: #include "gimpimage-grid.h" * app/core/gimpimage-undo-push.c: #include "gimpimage-grid.h". (gimp_image_undo_push_image_grid) mark image as dirty. * app/xcf/xcf-save.c (xcf_save_image_props): save GimpGrid object as a parasite. * app/xcf/xcf-load.c (xcf_load_image): load GimpGrid from parasite. * devel-docs/parasites.txt: documented the new "gimp-image-grid" parasite. |
|
Henrik Brix Andersen | edd5c33923 |
Added a per image configurable grid.
This fixes bug #65198 * app/core/Makefile.am * app/core/core-types.h: * app/core/gimpgrid.[ch]: added new class GimpGrid. * app/core/core-enums.[ch]: added new enum GimpGridType. * app/core/gimpimage-guides.[ch]: removed the gimp_image_snap_*() functions... * app/core/gimpimage-snap.[ch]: ...and added them here since they are no longer guide specific. * app/core/gimpimage-undo-push.[ch]: added gimp_image_undo_push_image_grid() * app/display/gimpdisplayshell-handlers.c: * app/core/gimpimage.[ch]: added grid member to _GimpImage. Added new signal "grid_changed", added gimp_image_grid_changed(), gimp_image_get_grid() and gimp_image_set_grid(). * app/display/gimpdisplayshell-appearance.[ch]: added gimp_display_shell_set_show_grid(), gimp_display_shell_get_show_grid(), gimp_display_shell_set_snap_to_grid() and gimp_display_shell_get_snap_to_grid(). * app/display/gimpdisplayshell-callbacks.c: added call to gimp_display_shell_draw_grid() * app/display/gimpdisplayshell.[ch]: added grid member to _GimpDisplayShellVisibility, added snap_to_grid and grid_dialog members to _GimpDisplayShell, added gimp_display_shell_draw_grid(), modified gimp_display_shell_snap_coords() to use the new gimp_image_snap_*() functions. * app/gui/image-menu.c: added grid entries to image_menu_entries[]. * app/gui/view-commands.[ch]: added view_configure_grid_cmd_callback(), view_toggle_grid_cmd_callback() and view_snap_to_grid_cmd_callback(). * app/gui/Makefile.am * app/gui/grid-dialog.[ch]: added a grid dialog. |
|
Michael Natterer | 487f71ba05 |
Removed the old paths and the remaining legacy stuff it needed. Fixes bug
2003-05-21 Michael Natterer <mitch@gimp.org> Removed the old paths and the remaining legacy stuff it needed. Fixes bug #104471. * Makefile.am * configure.in * pixmaps/*: removed the pixmaps/ directory. * app/ops_buttons.[ch] * app/path.[ch] * app/pathP.h * app/path_transform.h * app/gui/paths-dialog.[ch] * app/tools/gimpbezierselecttool.[ch]: removed these files. * app/Makefile.am * app/gui/Makefile.am * app/tools/Makefile.am: changed accordingly. * app/core/core-types.h: removed the Path* types. * app/core/gimpimage.[ch] * app/core/gimpimage-duplicate.c: removed gimage->paths. * app/gui/about-dialog.c: inline wilber2_xpm for now. * app/gui/dialogs-constructors.c * app/gui/dialogs-menu.c * app/gui/dialogs.c * app/gui/menus.c: removed the old paths dialog. * app/gui/gui.c: removed gui_rotate_the_shield_harmonics() hack which was broken anyway. * app/tools/gimptransformtool.c: #if 0 path_transform preview stuff. * app/tools/gimpiscissorstool.c: removed useless include. * app/tools/tools.c: removed the bezier select tool. * app/vectors/gimpvectors.c (gimp_vectors_real_stroke_add): use g_list_append(), not g_list_prepend() so some ugly side conditions of legacy path loading are honored. * app/xcf/xcf-load.c * app/xcf/xcf-save.c: load and save only GimpVectors. |
|
Michael Natterer | dfd7df9a58 |
added new functions gimp_image_active_[layer|channel|vectors]_changed()
2003-03-25 Michael Natterer <mitch@gimp.org> * app/core/gimpimage.[ch]: added new functions gimp_image_active_[layer|channel|vectors]_changed() which emit the resp. signals. * app/core/gimpimage-undo-push.c (undo_pop_layer,channel,vectors): fixed them to not leave the image's active layer, channel, vectors pointers undefined (fixes bug #109110). Call gimp_item_removed() from all of them. * app/core/gimpimage-qmask.c: cleanup. |
|
Michael Natterer | 94590602b0 |
Added an API for image colormap manupulation and made colormap changes
2003-03-18 Michael Natterer <mitch@gimp.org> Added an API for image colormap manupulation and made colormap changes undoable (fixes bug #25963). * app/core/Makefile.am * app/core/gimpimage-colormap.[ch]: new files implementing colormap getters/setters. The setters push undos using the new function below. * app/core/core-enums.[ch]: added GIMP_UNDO_IMAGE_COLORMAP. * app/core/gimpimage-undo-push.[ch]: added gimp_image_undo_push_image_colormap(). Use GimpItemUndo even more often. Cleanup. * app/core/gimpimage.[ch]: removed gimp_image_get_colormap() here. * app/core/gimpimage-convert.c * app/gui/colormap-editor-commands.c * app/widgets/gimpcolormapeditor.c * app/widgets/gimptoolbox.c * tools/pdbgen/pdb/image.pdb: use the new API. * app/pdb/image_cmds.c: regenerated. * plug-ins/common/vinvert.c: removed the comment about the bug, cosmetic cleanup. Unrelated: * app/gui/splash.c: added a frame around the splash. Please eek if it doesn't please you. |
|
Michael Natterer | f2ca257438 |
added descriptions to the GimpChannelType enum.
2003-03-12 Michael Natterer <mitch@gimp.org> * app/core/core-enums.[ch]: added descriptions to the GimpChannelType enum. * app/core/gimpimage.[ch]: added gimp_image_get_component_index() utility function which does the GIMP_RED_CHANNEL -> RED_PIX etc. mapping. Use it in all component getters/setters. * app/widgets/gimpcomponenteditor.[ch]: new widget implementing the component list using GtkListStore/GtkTreeView. Still a bit ugly because it uses the standard check instead of the eye icon. * app/widgets/gimpcomponentlistitem.[ch]: removed. * app/widgets/Makefile.am * app/widgets/widgets-types.h * app/widgets/gimpvectorslistview.c: changed accordingly. * app/widgets/gimpchannellistview.[ch]: create a GimpComponentEditor and removed the old GtkList based stuff. * app/widgets/gimpitemlistview.[ch]: keep around a pointer to the GimpMenuFactory passed to the constructor. * app/gui/channels-menu.c (channels_menu_update): do the right thing if "data" is a GimpComponentEditor. * app/gui/channels-commands.[ch]: ditto. Implemented duplicating of components and component to selection (bug #61018). |
|
Sven Neumann | c65a2dd1af |
made gimp_image_get_active_components() a static function and changed its
2003-03-11 Sven Neumann <sven@gimp.org> * app/core/gimpimage.[ch]: made gimp_image_get_active_components() a static function and changed its behaviour so that the image's active components are only used for layers, not for channels. Fixes bug #108083. |
|
Michael Natterer | c8b4394d71 |
Reimplemented the undo history:
2003-02-20 Michael Natterer <mitch@gimp.org> Reimplemented the undo history: * app/Makefile.am * app/undo_history.[ch]: removed. Changes/cleanups to the undo system to enable/simplify the new undo history implementation: * app/core/core-types.h: removed enum undo_event_t. Removed the GimpImage parameter from GimpUndoPopFunc and GimpUndoFreeFunc because GimpUndo has a GimpImage pointer now (see below). * app/core/core-enums.[ch]: added enum GimpUndoEvent. Added an enum value for REDO_EXPIRED. * app/core/gimpimage.[ch]: added a GimpUndo pointer to the "undo_event" signal which needs to be passed for all events except UNDO_FREE. * app/display/gimpdisplayshell-handlers.c: changed accordingly. * app/core/gimpundo.[ch]: added a GimpImage pointer to the GimpUndo struct. Removed GimpImage parameters all over the place. Added preview stuff. The preview creation needs to be triggered explicitly using gimp_undo_create_preview() because the GimpUndo can't know when it's possible to create the preview. * app/core/gimpimage-undo-push.c * app/paint/gimppaintcore-undo.c * app/tools/gimptransformtool-undo.c: changed accordingly, cleanup. * app/core/gimpundostack.[ch]: ditto. Return the freed undo from gimp_undo_stack_free_bottom(). Removed unused container signal handlers. * app/core/gimpimage-undo.c: free the redo stack the same way old undos are freed (from bottom up). Emit "undo_event" with event == REDO_EXPIRED for each removed redo. * app/core/gimpmarshal.list: added new marshallers. New undo history implementation: * app/widgets/Makefile.am * app/widgets/widgets-types.h * app/widgets/gimpundoeditor.[ch] * app/widgets/gimpundopreview.[ch]: new widgets for the undo step previews and the history itself. * app/widgets/gimppreview-utils.c: added GimpUndoPreview to the list of possible preview types. * app/gui/dialogs-constructors.[ch] * app/gui/dialogs-menu.c * app/gui/dialogs.c * app/gui/image-menu.c * app/gui/toolbox-menu.c: removed the old and added the new undo history to the dialog factory and the various dialog menus. * app/widgets/gimpdnd.[ch]: don't warn if a GType has no corresponding DND type. Instead, return FALSE from the function that failed. * app/widgets/gimppreview.c: check the return value of gimpdnd functions. Not only add drag sources but also remove them when no longer needed. * app/widgets/gimpselectioneditor.h: removed unneeded inclusion of "gui/gui-types.h". |
|
Michael Natterer | fefaa3092f |
added "undo_desc" parameters.
2003-02-17 Michael Natterer <mitch@gimp.org> * app/core/gimpimage.[ch] (gimp_image_position_*): added "undo_desc" parameters. * app/core/gimpimage-undo-push.c: changed accordingly. * app/widgets/gimpitemlistview.[ch]: moved the item stack manipulation function pointers from the instance to the class struct. Added lots of descriptive strings to be used by tooltips and undo steps. * app/widgets/gimpchannellistview.c * app/widgets/gimpitemlistitem.c * app/widgets/gimplayerlistview.[ch] * app/widgets/gimpvectorslistview.c * app/gui/dialogs-constructors.c * app/gui/layers-commands.[ch] * app/gui/vectors-commands.c: changed accordingly. Cleanup. |
|
Michael Natterer | 7a6a8d9dbb |
Moved the undo step implementations to the core and pass around lots of
2003-02-14 Michael Natterer <mitch@gimp.org> Moved the undo step implementations to the core and pass around lots of "const gchar *undo_desc". Fixes bug #104367. * app/Makefile.am * app/undo.[ch]: removed... * app/core/Makefile.am * app/core/gimpimage-undo-push.[ch]: ...and added here. * app/paint/Makefile.am * app/tools/Makefile.am * app/paint/gimppaintcore-undo.[ch] * app/tools/gimptransformtool-undo.[ch]: new files for the paint and transform undos. * app/core/gimppaintinfo.[ch]: added a blurb. * app/paint/gimpairbrush.c * app/paint/gimpclone.c * app/paint/gimpconvolve.c * app/paint/gimpdodgeburn.c * app/paint/gimperaser.c * app/paint/gimppaintbrush.c * app/paint/gimppaintcore.c * app/paint/gimppencil.c * app/paint/gimpsmudge.c * app/paint/paint-types.h * app/paint/paint.c: pass the blurb when registering the core. * app/core/gimpdrawable.[ch] * app/core/gimpimage.[ch] * app/core/gimpimage-mask-select.[ch] * app/core/gimpimage-mask.[ch] * app/core/gimpimagemap.[ch] * app/core/gimplayer-floating-sel.[ch]: added "undo_desc" parameters to all undo pushing helper functions. * app/undo_history.c * app/core/gimpchannel.c * app/core/gimpdrawable-blend.c * app/core/gimpdrawable-bucket-fill.c * app/core/gimpdrawable-desaturate.c * app/core/gimpdrawable-equalize.c * app/core/gimpdrawable-invert.c * app/core/gimpdrawable-offset.c * app/core/gimpdrawable-transform.c * app/core/gimpedit.c * app/core/gimpimage-convert.c * app/core/gimpimage-crop.c * app/core/gimpimage-guides.c * app/core/gimpimage-merge.c * app/core/gimpimage-qmask.c * app/core/gimpimage-resize.c * app/core/gimpimage-scale.c * app/core/gimpimage-undo.c * app/core/gimpitem.c * app/core/gimplayer.c * app/core/gimplayermask.c * app/display/gimpdisplayshell-dnd.c * app/file/file-open.c * app/file/file-save.c * app/gui/channels-commands.c * app/gui/file-commands.c * app/gui/file-open-dialog.c * app/gui/image-commands.c * app/gui/layers-commands.c * app/gui/paths-dialog.c * app/gui/select-commands.c * app/gui/vectors-commands.c * app/text/gimptext-compat.c * app/tools/gimpbezierselecttool.c * app/tools/gimpbucketfilltool.c * app/tools/gimpeditselectiontool.c * app/tools/gimpfreeselecttool.c * app/tools/gimpfuzzyselecttool.c * app/tools/gimpimagemaptool.c * app/tools/gimpinktool.c * app/tools/gimpiscissorstool.c * app/tools/gimpmeasuretool.c * app/tools/gimpmovetool.c * app/tools/gimppainttool.c * app/tools/gimprectselecttool.c * app/tools/gimptexttool.c * app/tools/gimptransformtool.c * app/widgets/gimpchannellistview.c * app/widgets/gimpdrawablelistview.c * app/widgets/gimpselectioneditor.c * tools/pdbgen/pdb/color.pdb * tools/pdbgen/pdb/drawable.pdb * tools/pdbgen/pdb/guides.pdb * tools/pdbgen/pdb/layer.pdb * tools/pdbgen/pdb/selection.pdb * tools/pdbgen/pdb/selection_tools.pdb: changed accordingly: pass "undo_desc" strings, changed includes or simply removed inclusion of "undo.h". Some random cleanups. * tools/pdbgen/pdb/guides.pdb: cleaned up a lot. Fixed gimp_image_find_next_guide() to not return guides with position < 0 (and made it shorter and readable). * app/pdb/color_cmds.c * app/pdb/drawable_cmds.c * app/pdb/guides_cmds.c * app/pdb/layer_cmds.c * app/pdb/selection_cmds.c * app/pdb/selection_tools_cmds.c: regenerated. |
|
Michael Natterer | be70105d3b |
Moved the undo system to the core: Keep GimpUndoStack objects as undo and
2003-02-12 Michael Natterer <mitch@gimp.org> Moved the undo system to the core: Keep GimpUndoStack objects as undo and redo stack. Use GimpUndo objects as members of the stacks. GimpUndoStack is derived from GimpUndo and keeps undo groups, so undo group handling is much simpler than before (the whole group is just a single GimpUndo object on the stack and not everything between group boundary markers). * app/Makefile.am * app/undo_types.h: removed. * app/config/gimpcoreconfig.[ch]: added "gulong undo_size". * app/config/gimprc-blurbs.h: and its blurb. * app/core/core-enums.[ch]: added GimpUndoMode and GimpUndoType. * app/core/core-types.h: removed UndoType, added GimpUndoAccumulator, GimpUndoPopFunc and GimpUndoFreeFunc. * app/core/gimpundo.[ch]: do everything the old "Undo" struct did. Removed the virtual push() function and added free(). * app/core/gimpundostack.[ch]: keeps the new undo/redo stacks and also acts as undo group. * app/core/gimpimage-undo.[ch]: moved the undo apparatus here. * app/core/gimpimage.[ch]: removed the old stuff. * app/core/gimpmarshal.list: added marshaller needed for GimpUndo. * app/undo.[ch]: removed the whole undo mechanism. Only the actual undo pushing functions are left. * app/undo_history.c * app/gui/edit-commands.c * app/gui/file-commands.c * app/gui/image-menu.c * app/gui/preferences-dialog.c * app/tools/gimpeditselectiontool.c: changed accordingly. |
|
Michael Natterer | eeec3cedb8 |
Added object properties for almost all tool_options values and registered
2003-02-07 Michael Natterer <mitch@gimp.org> Added object properties for almost all tool_options values and registered lots of enums with the type system: Part I (enum and type cleanup): * app/core/core-enums.[ch] * app/core/core-types.h: removed InternalOrientaionType and register GimpOrientationType. Register GimpChannelOps. Removed GimpToolOptionsGUIFunc. * app/xcf/xcf-private.h: added XcfOrientationType with the same values as the old InternalOrientationType * app/xcf/xcf-load.c * app/xcf/xcf-save.c: translate between GimpOrientationType and XcfOrientationType. * app/core/gimpdrawable-transform-utils.[ch] * app/core/gimpdrawable-transform.[ch] * app/core/gimpimage-crop.c * app/core/gimpimage-duplicate.c * app/core/gimpimage-guides.c * app/core/gimpimage-resize.c * app/core/gimpimage-scale.c * app/core/gimpimage.h * app/display/gimpdisplayshell.c * tools/pdbgen/stddefs.pdb * tools/pdbgen/pdb/transform_tools.pdb: changed accordingly. * app/pdb/guides_cmds.c * app/pdb/transform_tools_cmds.c * libgimp/gimpenums.h * libgimpproxy/gimpproxytypes.h * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * libgimptool/gimptoolenums.[ch]: added GimpTransformGridType. * libgimptool/gimptooltypes.h: removed GimpToolOptionsResetFunc, added GimpToolOptionsGUIFunc. Part II (tool options changes): * app/config/gimpconfig-utils.c (gimp_config_reset_properties): don't reset object properties because they have NULL as default value. * app/widgets/gimppropwidgets.[ch]: added gimp_prop_[enum|boolean]_radio_frame_new(), gimp_prop_paint_mode_menu_new() and gimp_prop_scale_entry_new(), which are all needed by the new tool options GUI code. * app/tools/tool_options.[ch]: removed the "reset_func" since the virtual reset() method is used now. * app/paint/gimpairbrushoptions.[ch] * app/paint/gimpcloneoptions.[ch] * app/paint/gimpconvolveoptions.[ch] * app/paint/gimpdodgeburnoptions.[ch] * app/paint/gimperaseroptions.[ch] * app/paint/gimppaintoptions.[ch] * app/paint/gimpsmudgeoptions.[ch]: added properties all over the place and removed the widget and default_value members from the structs. Renamed some values (e.g. s/type/clone_type/). Don't #include <gtk/gtk.h>. * app/paint/gimpairbrush.c * app/paint/gimpclone.c * app/paint/gimpconvolve.c * app/paint/gimpdodgeburn.c * app/paint/gimperaser.c * app/paint/gimppaintbrush.c * app/paint/gimppaintcore-stroke.c * app/paint/gimppaintcore.c * app/paint/gimppencil.c * app/paint/gimpsmudge.c * app/paint/paint-types.h * app/paint/paint.c: changed accordingly. Don't #include <gtk/gtk.h>. * tools/pdbgen/pdb/paint_tools.pdb: changed accordingly. * app/pdb/paint_tools_cmds.c: regenerated. * app/tools/gimpblendoptions.[ch] * app/tools/gimpbucketfilloptions.[ch] * app/tools/gimpcolorpickeroptions.[ch] * app/tools/gimpcropoptions.[ch] * app/tools/gimpflipoptions.[ch] * app/tools/gimpinkoptions.c * app/tools/gimpmagnifyoptions.[ch] * app/tools/gimpmeasureoptions.[ch] * app/tools/gimpmoveoptions.[ch] * app/tools/gimptextoptions.c * app/tools/paint_options.[ch] * app/tools/selection_options.[ch] * app/tools/transform_options.[ch]: ditto: added properties and removed widget and default_value stuff. Removed most reset functions. Use gimp_prop widgets all over the place, renamed some values as above. * app/tools/Makefile.am * app/tools/gimpairbrushtool.c * app/tools/gimpblendtool.c * app/tools/gimpbucketfilltool.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpclonetool.c * app/tools/gimpconvolvetool.c * app/tools/gimpcroptool.c * app/tools/gimpdodgeburntool.c * app/tools/gimperasertool.c * app/tools/gimpfliptool.c * app/tools/gimpfuzzyselecttool.c * app/tools/gimpmagnifytool.c * app/tools/gimpmovetool.c * app/tools/gimpselectiontool.c * app/tools/gimpsheartool.c * app/tools/gimpsmudgetool.c * app/tools/gimptransformtool.c * app/tools/gimpvectoroptions.c: changed accordingly. Ported the paint_options GUI constructors to gimp_prop widgets. * app/widgets/gimpselectioneditor.c * app/gui/tool-options-dialog.c: changed accordingly. |
|
Michael Natterer | ea95a3227d |
Replaced Garry's fix for bug #98843 by a more general solution which stops
2003-01-02 Michael Natterer <mitch@gimp.org> Replaced Garry's fix for bug #98843 by a more general solution which stops the active tool when an undo group start is pushed: * app/core/gimpimage.[ch]: removed the "layer_merge" signal and added "undo_start" instead. * app/undo.c: emit "undo_start" in undo_push_group_start() _before_ checking if gimage->undo_on is TRUE. * app/tools/tool_manager.c: connect to "undo_start" and HALT the active tool if neccessary. * app/core/core-types.h: added EDIT_COPY_UNDO_GROUP. * app/core/gimpedit.c: push an undo group around the copy operation. Will probably have to add more undo group types to wrap other critical image modifications with. * app/core/gimpimage-merge.c * app/gui/convert-dialog.c * app/gui/edit-commands.c * app/gui/test-commands.c * app/tools/gimpimagemaptool.c: removed all special code to stop the active tool. |
|
Garry R. Osgood | d8fd3b04c1 |
Updated my CVS. app/undo.c app/undo_history.c app/core/gimpimage.[ch]
2003-01-01 Garry R. Osgood <grosgood@rcn.com> * MAINTAINERS: Updated my CVS. * app/undo.c * app/undo_history.c * app/core/gimpimage.[ch] * app/tools/gimpimagemaptool.c * app/core/gimpimage-merge.c: implementation of LAYER_MERGE signal emitters and listeners. (see bug #98843); listeners thaw undo stack (image map tools, usually). * app/widgets/gimpviewabledialog.c: gimp_viewable_dialog_close () Check if the widget has a non-null reference to a window before using it to synthesize a cancel event. These seven deltas closes bug #98843. * app/core/gimpimage-merge.c: (gimp_image_merge_layers()) Regardless of merge type, temporarily set composition mode of bottom layer to NORMAL, then merge. Closes bug #101036. |
|
Michael Natterer | 413b9d3329 |
renamed gimp_drawable_apply_image() to gimp_drawable_push_undo() because
2002-06-06 Michael Natterer <mitch@gimp.org> * app/core/gimpdrawable.[ch]: renamed gimp_drawable_apply_image() to gimp_drawable_push_undo() because that's what it actually does. * app/image_map.c * app/core/gimpdrawable-offset.c * app/core/gimpimage-mask.c * app/core/gimpimage.c * app/core/gimplayer.c * app/paint/gimppaintcore.c * app/tools/gimpinktool.c: changed accordingly. Removed redundant comments because it's now obvious what the function does from looking at its name. * app/core/gimpdrawable.[ch] * app/core/gimpimage.h: renamed "gboolean undo" parameters to "gboolean push_undo". |
|
Michael Natterer | a3bb0b0dad |
Started to get rid of the gdisplays_foo() functions in
2002-05-08 Michael Natterer <mitch@gimp.org> Started to get rid of the gdisplays_foo() functions in app/display/gimpdisplay-foreach.[ch]. Work in progress... * app/core/gimp.[ch]: added the display list to the Gimp object (as a GimpList of GimpObjects). This way we get more independent from whether there is GUI or not, as gimp->displays will simply be an empty list for the --no-interface case. * app/display/gimpdisplay.[ch]: Removed the global "display_list" and "display_num" variables. Use gimp->displays instead. * app/display/gimpdisplay-foreach.[ch]: renamed most functions from gdisplays_foo() to gimp_displays_foo() and pass them a Gimp pointer. * app/core/gimpimage.[ch]: added a "flush" signal. * app/display/gimpdisplay-handlers.c: connect to "flush" and call gimp_display_flush() in the callback. * tools/pdbgen/pdb/display.pdb: use gimp_displays_flush(gimp) here and only here. * app/pdb/display_cmds.c: regenerated. * app/app_procs.c * app/gui/gui.c * app/gui/preferences-dialog.c: s/gdislays_foo()/gimp_displays_foo(gimp)/ * app/image_map.c * app/undo_history.c * app/display/gimpdisplayshell-callbacks.c * app/display/gimpdisplayshell-dnd.c * app/display/gimpdisplayshell-layer-select.c * app/display/gimpdisplayshell-scale.c * app/gui/channels-commands.c * app/gui/colormap-editor-commands.c * app/gui/convert-dialog.c * app/gui/drawable-commands.c * app/gui/edit-commands.c * app/gui/file-commands.c * app/gui/image-commands.c * app/gui/layers-commands.c * app/gui/offset-dialog.c * app/gui/qmask-commands.c * app/gui/select-commands.c * app/gui/vectors-commands.c * app/paint/gimpairbrush.c * app/tools/gimpbezierselecttool.c * app/tools/gimpblendtool.c * app/tools/gimpbrightnesscontrasttool.c * app/tools/gimpbucketfilltool.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpcolorbalancetool.c * app/tools/gimpcurvestool.c * app/tools/gimpeditselectiontool.c * app/tools/gimpfreeselecttool.c * app/tools/gimpfuzzyselecttool.c * app/tools/gimphuesaturationtool.c * app/tools/gimpinktool.c * app/tools/gimpiscissorstool.c * app/tools/gimplevelstool.c * app/tools/gimpmeasuretool.c * app/tools/gimpmovetool.c * app/tools/gimppainttool.c * app/tools/gimpposterizetool.c * app/tools/gimprectselecttool.c * app/tools/gimptexttool.c * app/tools/gimpthresholdtool.c * app/tools/gimptransformtool.c * app/tools/gimpvectortool.c * app/widgets/gimpbufferview.c * app/widgets/gimpchannellistview.c * app/widgets/gimpcomponentlistitem.c * app/widgets/gimpdocumentview.c * app/widgets/gimpdrawablelistitem.c * app/widgets/gimpdrawablelistview.c * app/widgets/gimpimageview.c * app/widgets/gimpitemlistitem.c * app/widgets/gimpitemlistview.c * app/widgets/gimplayerlistitem.c * app/widgets/gimplayerlistview.c * app/widgets/gimpvectorslistview.c: replaced gdisplays_flush() with calls to gimp_image_flush(gimage). Removed inclusion of "display/gimpdisplay-foreach.h" from most files. |
|
Michael Natterer | 5e51cebc15 |
Use UTF-8 encoded escaped URIs for GimpImage and GimpImageFile.
2002-04-14 Michael Natterer <mitch@gimp.org> Use UTF-8 encoded escaped URIs for GimpImage and GimpImageFile. * app/file/file-open.[ch] * app/file/file-save.[ch] * app/file/file-utils.[ch]: port everything to using URIs, removed file_open_absolute_filename() and added file_utils_filename_to_uri() instead. * app/core/gimpimage.[ch]: added gimp_image_[get|set]_uri() which works like the old gimp_image_[get|set]_filename(). Changed gimp_image_[get|set]_filename() to call uri conversion functions. * app/app_procs.c: removed lots of code and use the new uri functions to open images passed on the command line. * app/gui/file-open-dialog.c * app/gui/file-save-dialog.c: changed accordingly. * app/nav_window.c * app/undo_history.c * app/display/gimpdisplayshell.c * app/gui/info-window.c * app/gui/palette-import-dialog.c * app/tools/gimpbycolorselecttool.c * app/widgets/gimpcontainerview-utils.c: s/gimp_image_get_filename()/gimp_image_get_uri()/g. Need to add a utility function which returns the basename in unescaped UTF-8. * app/gui/file-commands.c * app/widgets/gimpdocumentview.c: use "uri", not "filename" as variable name where appropriate. * app/gui/menus.c: some broken code for the "Open Recent" items, will be fixed soon... * app/widgets/gimpdnd.c: evil (!!!) hackery to convert dropped filenames to uris. * tools/pdbgen/pdb/fileops.pdb: changed accordingly. Clarified the meaning of the "raw_filename" parameter. * tools/pdbgen/pdb/message.pdb: use g_message("%s", message), *not* g_message(message). * app/pdb/fileops_cmds.c * app/pdb/message_cmds.c * libgimp/gimpfileops_pdb.c: regenerated. |
|
Michael Natterer | ce643d2722 |
Use gdouble in a [0.0..1.0] range for opacity values in the whole core's
2002-03-03 Michael Natterer <mitch@gimp.org> Use gdouble in a [0.0..1.0] range for opacity values in the whole core's API. Convert them using (opacity * 255.999) when passing them to base/ and paint-funcs/ Affected functions: * app/core/gimpchannel.[ch]: gimp_channel_[set|get]_opacity() * app/core/gimpimage.[ch]: gimp_image_[apply|replace]_image() * app/paint/gimppaintcore.[ch]: gimp_paint_core_[paste|replace]_canvas() * app/core/core-types.h: added defines GIMP_OPACITY_TRANSPARENT and GIMP_OPACITY_OPAQUE, just like the ones from paint-funcs/paint-funcs-types.h * app/gimprc.c * app/image_map.c * app/core/gimpcontext.c * app/core/gimpdrawable-blend.c * app/core/gimpdrawable-bucket-fill.c * app/core/gimpdrawable.c * app/core/gimpedit.c * app/core/gimplayer.c * app/core/gimplayer-floating-sel.c * app/core/gimppalette.c * app/paint/gimpairbrush.c * app/paint/gimpclone.c * app/paint/gimpconvolve.c * app/paint/gimpdodgeburn.c * app/paint/gimperaser.c * app/paint/gimppaintbrush.c * app/paint/gimpsmudge.c * app/tools/gimpinktool.c * app/widgets/gimpcolorpanel.c * app/widgets/gimplayerlistitem.c * app/widgets/gimppreview.c * app/xcf/xcf-load.c: changed accordingly, use the new constants. |
|
Michael Natterer | a3c3e7d3a6 |
General undo cleanup:
2002-02-23 Michael Natterer <mitch@gimp.org> General undo cleanup: * app/undo.[ch]: made all undo structs private. Changed all undo_push_foo() functions to take useful parameters instead of "gpointer foo_ptr" and create the undo structs internally. Renamed lots of functions so they are more self-explanatory (like undo_push_gimage_mod -> undo_push_image_size). Added some undo functions (channel reordering is undoable now). Never pass in a UndoType, as they are reseved for groups now (see below). Lots of cleanup and stuff... * app/undo_types.h: is a private header now which defines "enum UndoImplType" which is reserved for actual undo operations. All enum values are named "FOO_UNDO". * app/core/core-types.h: added the "UndoType" enum here and don't include "undo_types.h" any more. The UndoType values are all named "FOO_UNDO_GROUP" and are reserved for undo groups. The ID space of actual undo operations and undo groups is now strictly disjunct. * app/core/gimpchannel.h * app/core/gimpimage.h * app/core/gimplayer.h * app/core/gimplayermask.h * app/paint/gimppaintcore.h * app/tools/gimptransformtool.h: removed undo stuct definitions. * app/undo_history.c * app/path_transform.h * app/core/gimpchannel.c * app/core/gimpdrawable-transform.c * app/core/gimpedit.c * app/core/gimpimage-convert.c * app/core/gimpimage-crop.c * app/core/gimpimage-mask.c * app/core/gimpimage-merge.c * app/core/gimpimage-qmask.c * app/core/gimpimage-resize.c * app/core/gimpimage-scale.c * app/core/gimpimage.c * app/core/gimplayer-floating-sel.c * app/core/gimplayer.c * app/display/gimpdisplayshell-dnd.c * app/gui/channels-commands.c * app/gui/image-commands.c * app/gui/layers-commands.c * app/gui/paths-dialog.c * app/paint/gimppaintcore.c * app/tools/gimpbezierselecttool.c * app/tools/gimpeditselectiontool.c * app/tools/gimpmeasuretool.c * app/tools/gimpmovetool.c * app/tools/gimptexttool.c * app/tools/gimptransformtool.c * tools/pdbgen/pdb/guides.pdb * tools/pdbgen/pdb/layer.pdb * tools/pdbgen/pdb/undo.pdb: changed accordingly. * app/pdb/guides_cmds.c * app/pdb/layer_cmds.c * app/pdb/undo_cmds.c: regenerated. * app/core/gimpimage.[ch]: added infrastructure for holding a GimpList of GimpVectors objects. The API is the same as for layers and channels. Not used yet. |
|
Michael Natterer | 65d3b34d15 |
removed gimp_layer_has_alpha(), use gimp_drawable_has_alpha() instead.
2002-01-31 Michael Natterer <mitch@gimp.org> * app/core/gimplayer.[ch]: removed gimp_layer_has_alpha(), use gimp_drawable_has_alpha() instead. * app/core/gimpimage-convert.c * app/core/gimpimage-merge.c * app/core/gimpimage-projection.c * app/display/gimpdisplayshell.c * app/gui/layers-commands.c: changed accordingly. * app/core/gimpimage.[ch]: added gimp_image_has_alphe(), made some variable names more verbose and use enum types instead of "gint" in functions calling initial_region() and combine_regions(). * app/widgets/gimpchannellistview.c: show an alpha channel preview only if the image has alpha. * app/widgets/gimppreview.c: reordered functions, gimp_preview_render_and_flush(): fixed channel preview rendering, calculate the component byte offsets before entering the render loop instead of duplicating the render code for the gray/alpha case. |
|
Michael Natterer | 3726976963 |
added GIMP_IMAGE_TYPE_IS_[RGB|GRAY|INDEXED]() and
2001-12-14 Michael Natterer <mitch@gimp.org> * app/core/gimpimage.[ch]: added GIMP_IMAGE_TYPE_IS_[RGB|GRAY|INDEXED]() and GIMP_IMAGE_TYPE_BASE_TYPE() macros. * app/plug-in/plug-in.[ch]: new enum PlugInImageType instead of multiple #defines. * app/gui/file-dialog-utils.[ch]: file_dialog_update_menus(): take a GimpImageType instead of the PlugInImageType. * app/core/gimpdrawable-preview.c * app/core/gimpdrawable-transform.c * app/core/gimpdrawable.c * app/core/gimpimage-contiguous-region.c * app/core/gimpimage-mask.c * app/core/gimpimage-merge.c * app/core/gimplayermask.c * app/core/gimppalette-import.c * app/display/gimpdisplay-handlers.c * app/display/gimpdisplayshell-render.c * app/gui/file-save-dialog.c * app/gui/toolbox.c * app/tools/gimpclonetool.c * app/tools/gimpcolorpickertool.c * tools/pdbgen/pdb/convert.pdb * tools/pdbgen/pdb/image.pdb: use the new macros, cleanups like storing GimpImageType in GimpImageType variables, not just gint. * app/pdb/convert_cmds.c * app/pdb/image_cmds.c: regenerated. * app/widgets/gimpdialogfactory.c: save the state of the "Auto" button in sessionrc. |
|
Sven Neumann | 94e7e1e55e |
app/config/gimpconfig-deserialize.h fixed typos.
2001-12-13 Sven Neumann <sven@gimp.org> * app/config/gimpconfig-deserialize.h * app/config/gimpconfig-serialize.c: fixed typos. * app/core/core-enums.h * app/core/core-types.h: converted ChannelType enum to GimpChannelType and moved it to core-enums.h. * app/core/gimpimage.[ch] * app/widgets/gimpchannellistview.c * app/widgets/gimpcomponentlistitem.[ch] * tools/pdbgen/pdb/image.pdb: changed accordingly. * app/pdb/image_cmds.c * libgimp/gimpenums.h * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. |
|
Michael Natterer | 9b8bf8de5c |
made gimp->global_buffer a GimpBuffer, not TileManager.
2001-12-13 Michael Natterer <mitch@gimp.org> * app/core/gimp.[ch]: made gimp->global_buffer a GimpBuffer, not TileManager. * app/core/gimpbuffer.[ch]: added a "gboolean copy_pixels" to gimp_buffer_new(). * app/core/gimpimage-new.c * app/core/gimpedit.[ch] * app/core/gimpimage-qmask.c * app/widgets/gimpbufferpreview.c * app/widgets/gimpbufferview.c * app/widgets/gimpcontainerview-utils.c: chaned accordingly, don't include "base/tile-manager.h". * app/core/gimpdrawable.[ch]: added gimp_drawable_copy(). * app/core/gimpchannel.[ch] * app/core/gimplayer.[ch] * app/core/gimplayermask.[ch]: use it in gimp_[channel|layer|layer_mask]_copy(), added "GType new_type" as paramater to all of them. * app/core/gimpimage-duplicate.c * app/gui/channels-commands.c * app/gui/edit-commands.c * app/gui/layers-commands.c * app/widgets/gimpchannellistview.c * tools/pdbgen/pdb/channel.pdb * tools/pdbgen/pdb/layer.pdb * tools/pdbgen/pdb/selection.pdb: changed accordingly. * app/pdb/channel_cmds.c * app/pdb/layer_cmds.c * app/pdb/selection_cmds.c: regenerated. * app/core/gimplayer.[ch]: removed the "layer_type" parameter from gimp_layer_new_from_tiles() because it always needed to be equal to gimp_image_base_type_with_alpha() of the passed image. * app/core/gimpdrawable-transform.c * app/core/gimpedit.c * app/core/gimpimage-mask.c: cahanged accordingly. * app/core/gimpimage.[ch]: added some new GIMP_IMAGE_TYPE_FOO() marcos to get rid of magic values like "pixels = 3" all over the place. * app/core/gimplayer.[ch]: added gimp_layer_new_from_drawable() which creates a layer from an other image's drawable. * app/core/gimpimage-convert.[ch]: made the RGB and GRAY converters public to use them above, use the new GIMP_IMAGE_TYPE() macros. * app/display/gimpdisplayshell-dnd.c * app/gui/toolbox.c: removed tile manager stuff and use the new functions. * app/widgets/gimpdrawablelistview.[ch]: added a "convert_drawable_func" which is used to handle drops from other images. * app/widgets/gimpdrawablelistitem.c * app/widgets/gimplayerlistitem.c * app/widgets/gimplistitem.[ch]: implemented DND of layers between images using gimp_layer_new_from_drawable(). * app/gui/dialogs-constructors.c: changed accordingly. |
|
Sven Neumann | 03a6c04419 |
app/base/base-enums.h moved all remaining enums to base-enums.h
2001-12-11 Sven Neumann <sven@gimp.org> * app/base/base-enums.h * app/base/base-types.h: moved all remaining enums to base-enums.h * app/core/core-enums.h * app/core/core-types.h: moved GimpImageType to core-enums.h and changed the values from RGB_GIMAGE to GIMP_RGB_IMAGE and the like. * app/core/gimpchannel.c * app/core/gimpdrawable-preview.c * app/core/gimpdrawable-transform.c * app/core/gimpdrawable.c * app/core/gimpimage-contiguous-region.c * app/core/gimpimage-convert.c * app/core/gimpimage-mask.c * app/core/gimpimage-merge.c * app/core/gimpimage-new.c * app/core/gimpimage-projection.c * app/core/gimpimage.[ch] * app/core/gimplayer.c * app/core/gimplayermask.c * app/core/gimppalette-import.c * app/display/gimpdisplayshell-dnd.c * app/display/gimpdisplayshell-render.c * app/gui/file-save-dialog.c * app/gui/toolbox.c * app/plug-in/plug-in.c * app/tools/gimpblendtool.c * app/tools/gimpcolorpickertool.c * app/tools/gimpdodgeburntool.c: changed accordingly. * tools/pdbgen/Makefile.am: no need to parse app/base/base-types.h any longer. * app/pdb/color_cmds.c * app/pdb/drawable_cmds.c * app/pdb/layer_cmds.c * app/pdb/paint_tools_cmds.c * tools/pdbgen/enums.pl: regenerated. |
|
Sven Neumann | a65e1a39e4 |
app/core/Makefile.am new file that holds enums that are registered with
2001-12-08 Sven Neumann <sven@gimp.org> * app/core/Makefile.am * app/core/core-enums.h: new file that holds enums that are registered with the type system and is used to generate core-enums.c. * app/core/core-types.h: include core-enums.h * app/base/base-types.h: namespace cleanup. Prefix all enumeration types with Gimp and their values with GIMP. Moved GimpLayerModeEffects enum ... * app/base/base-enums.h: ... here. * app/image_map.c * app/base/temp-buf.c * app/core/gimpcontext.[ch] * app/core/gimpdrawable-transform.c * app/core/gimpdrawable.c * app/core/gimpedit.c * app/core/gimpimage-mask.c * app/core/gimpimage-merge.c * app/core/gimpimage-new.c * app/core/gimpimage-projection.c * app/core/gimpimage.[ch] * app/core/gimplayer.[ch] * app/display/gimpdisplayshell-dnd.c * app/display/gimpdisplayshell-render.c * app/gui/brush-select.c * app/gui/layers-commands.c * app/gui/preferences-dialog.c * app/gui/toolbox.c * app/paint-funcs/paint-funcs.[ch] * app/tools/gimpconvolvetool.c * app/tools/gimperasertool.c * app/tools/gimpiscissorstool.c * app/tools/gimppainttool.[ch] * app/tools/gimptexttool.c * app/tools/paint_options.c * app/widgets/gimplayerlistview.c * app/widgets/gimpwidgets-constructors.[ch] * app/xcf/xcf-load.c * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/brushes.pdb * tools/pdbgen/pdb/color.pdb * tools/pdbgen/pdb/layer.pdb * tools/pdbgen/pdb/tools.pdb: changed accordingly. * libgimpbase/gimpbasetypes.h: no need to chop GIMP prefix off the enums any longer. * app/pdb/brush_select_cmds.c * app/pdb/brushes_cmds.c * app/pdb/color_cmds.c * app/pdb/layer_cmds.c * app/pdb/message_cmds.c * app/pdb/procedural_db_cmds.c * app/pdb/tools_cmds.c * libgimp/gimpenums.h * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. * app/gimprc.c: removed code to parse for "plug_in" keyword which was left over from some very early gimp days. * app/plug-in/plug-in.[ch]: removed now unused function plug_in_add(). |
|
Sven Neumann | 4ba6db4e94 |
Michael Natterer <mitch@gimp.org>
2001-12-03 Sven Neumann <sven@gimp.org> Michael Natterer <mitch@gimp.org> * app/paint-funcs/paint-funcs-mmx.h: removed redefiniton of HAS_ALPHA macro. * app/core/gimp.c: reverted Daniel's change; it doesn't make the code simpler, only more error-prone. * app/gui/info-dialog.h * app/gui/resize-dialog.h * app/core/gimp.h * app/core/gimpbrushgenerated.h * app/core/gimpbrushpipe.h * app/core/gimpchannel.[ch] * app/core/gimpcontainer.h * app/core/gimpcoreconfig.h * app/core/gimpdata.h * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-blend.c * app/core/gimpdrawable.[ch] * app/core/gimpimage.h * app/core/gimpimagefile.h * app/core/gimplayer.h * app/core/gimplayermask.h * app/core/gimpmoduleinfo.h * app/core/gimppalette.h * app/core/gimpundo.h * app/widgets/gimpbrushfactoryview.h * app/widgets/gimpconstrainedhwrapbox.h * app/widgets/gimpcontainermenu.h * app/widgets/gimpcontainerview.h * app/widgets/gimpdialogfactory.h * app/widgets/gimpimagedock.h * app/widgets/gimplistitem.h * app/widgets/gimpmenuitem.h * app/widgets/gimpnavigationpreview.h * app/widgets/gimppreview.h * app/gimprc.h * app/pathP.h * app/tools/gimpbezierselecttool.h * app/tools/gimpcolorbalancetool.h * app/tools/gimpcurvestool.h * app/tools/gimpdodgeburntool.c * app/tools/gimpfreeselecttool.h * app/tools/gimphuesaturationtool.h * app/tools/gimpinktool-blob.h * app/tools/gimpinktool.h * app/tools/gimpiscissorstool.h * app/tools/gimpmagnifytool.h * app/tools/gimpmeasuretool.h * app/tools/gimppainttool.h * app/tools/gimppathtool.h * app/tools/gimprectselecttool.h * app/tools/gimpthresholdtool.h * app/tools/gimptool.h * app/tools/gimptransformtool.h * app/base/base-config.h * app/base/gimplut.[ch] * app/base/pixel-region.h * app/base/pixel-surround.[ch] * app/base/temp-buf.[ch] * app/base/tile-manager-private.h * app/base/tile-manager.[ch] * app/base/tile-private.h * app/base/tile.[ch] * app/display/gimpdisplay.h * app/display/gimpdisplayshell-selection.h * app/display/gimpdisplayshell.h * app/gui/brush-select.h * app/gui/gradient-editor.h * app/gui/gradient-select.h: reverted most of Daniel's changes. There's no reason to use unsigned integers here and in lots of places it is even wrong. Then it's way too early to convert gbooleans into bitfields. This change may make sense in a few places but can happen later when the API has settled and the code is more stable. * app/gimprc.c: reverted Daniel's change. This is a GCC-ism and this code is about to die soon anyway. |
|
Daniel Egger | 1ed9180112 |
Convert ugly comments into named structure fields. Much cleaner and less
2001-12-02 Daniel Egger <degger@fhm.edu> * app/gimprc.c: Convert ugly comments into named structure fields. Much cleaner and less errorprone though may cause troubles on older compilers and then needs to be reverted. Please report! * app/base/base-types.h: Add FIXME reminder. * app/base/gimplut.c: Use CLAMP macro instead of if-cascade. * app/base/temp-buf.c: Remove duplicated calculations and simplify checks. * app/base/tile-manager.c: - (tile_manager_get_tile_num): Return success and take an additional pointer for the tilenumber. - Simplify logic in the rest of the file as a result. - Remove rotten debugging cruft. * app/core/gimpbrushgenerated.c: Fix two stylistic nits. * app/app_procs.c: Include <stdlib.h> for exit () prototype. * app/core/gimpdrawable-blend.c: Include <stdlib.h> for abs () prototype. * app/display/gimpdisplay.c: Include <string.h> for memcpy () prototype. * app/core/gimpimage-convert.c: (HIST_RGB): First parameter is not const. Fixes a gcc warning for a wrong return value. * libgimpwidgets/gimpunitmenu.c * app/core/gimpunit.c: Add suggested (by gcc 3.1 cvs) parentheses to group correct logic tests together. * app/paint-funcs/paint-funcs-generic.h: Fix my HAS_ALPHA macro to avoid gcc 3.1 cvs warning. * app/gimprc.h * pathP.h * base-config.h * app/base/boundary.h * app/base/gimplut.[ch] * app/base/pixel-region.h * app/base/pixel-surround.[ch] * app/base/temp-buf.[ch] * app/base/tile-manager-private.h * app/base/tile-manager.c * app/base/tile-private.h * app/base/tile.[ch] * app/core/gimp.h * app/core/gimpbrushgenerated.h * app/core/gimpbrushpipe.h * app/core/gimpchannel.[ch] * app/core/gimpcontainer.h * app/core/gimpcoreconfig.h * app/core/gimpdata.h * app/core/gimpdatafactory.[ch] * app/core/gimpdrawable-blend.c * app/core/gimpdrawable.[ch] * app/core/gimpimage.h * app/core/gimpimagefile.h * app/core/gimplayer.h * app/core/gimplayermask.h * app/core/gimpmoduleinfo.h * app/core/gimppalette.h * app/core/gimpundo.h * app/display/gimpdisplay.h * app/display/gimpdisplayshell-selection.h * app/display/gimpdisplayshell.h * app/gui/brush-select.h * app/gui/gradient-editor.h * app/gui/gradient-select.h * app/gui/info-dialog.h * app/gui/resize-dialog.h * app/tools/gimpbezierselecttool.h * app/tools/gimpcolorbalancetool.h * app/tools/gimpcolorpickertool.h * app/tools/gimpcurvestool.h * app/tools/gimpdodgeburntool.c * app/tools/gimpfreeselecttool.h * app/tools/gimpfuzzyselecttool.h * app/tools/gimphuesaturationtool.h * app/tools/gimpinktool-blob.h * app/tools/gimpinktool.h * app/tools/gimpiscissorstool.h * app/tools/gimpmagnifytool.h * app/tools/gimpmeasuretool.h * app/tools/gimppainttool.h * app/tools/gimppathtool.h * app/tools/gimprectselecttool.h * app/tools/gimpthresholdtool.h * app/tools/gimptool.h * app/tools/gimptransformtool.h * app/tools/path_toolP.h * app/widgets/gimpbrushfactoryview.h * app/widgets/gimpconstrainedhwrapbox.h * app/widgets/gimpcontainermenu.h * app/widgets/gimpcontainerview.h * app/widgets/gimpdialogfactory.h * app/widgets/gimpimagedock.h * app/widgets/gimplistitem.h * app/widgets/gimpmenuitem.h * app/widgets/gimpnavigationpreview.h * app/widgets/gimppreview.h: Unsignify lots of variables and parameters and use bitfields in structs where possible. First part of a huge cleanup all over the code... |
|
Michael Natterer | bba8413773 |
app/core/Makefile.am new files: the QMask stuff stripped from GUI code.
2001-11-30 Michael Natterer <mitch@gimp.org> * app/core/Makefile.am * app/core/gimpimage-qmask.[ch]: new files: the QMask stuff stripped from GUI code. Added gimp_image_qmask_invert(). * app/core/gimpimage.[ch]: removed the QMask functions. * app/display/Makefile.am * app/display/gimpdisplayshell-qmask.[ch]: removed. * app/gui/Makefile.am * app/gui/qmask-commands.[ch]: new files for the new QMask item factory callbacks and the qmask query dialog. * app/gui/menus.c: added a context menu for the QMask button. * app/display/gimpdisplayshell.c * app/display/gimpdisplayshell-handlers.c: don't include the qmask stuff. * app/display/gimpdisplayshell-callbacks.[ch]: Moved the 2 qmask callbacks here. Don't popup the dialog on double_click. Show the contect menu on right-click. * app/display/gimpdisplayshell-callbacks.[ch]: gimp_display_shell_canvas_events(): removed the hack of conntecting "key_press_event" to gtk_true() while a tool is active. Instead, check for (event & GDK_BUTTON1_MASK) in the key_press and key_release handlers and stop signal emission. Save the modifier state on "button_press" and restore it after "button_release". Changed the way context menus are updated/shown: - removed GimpContainerContextFunc. - pass around item factory identifiers (e.g. "<Brushes>") - added voodoo to update the menus before showing them. * app/widgets/gimpitemfactory.[ch]: gimp_item_factory_new(): take a GimpItemFactoryUpdateFunc parameter, attach it as data to the factory and use it to update the menu in gimp_item_factory_popup_with_date(). * app/widgets/gimpwidgets-utils.[ch]: removed gimp_item_factory_popup_with_data() here. * app/widgets/gimpbrushfactoryview.[ch] * app/widgets/gimpbufferview.[ch] * app/widgets/gimpcontainereditor.[ch] * app/widgets/gimpdatafactoryview.[ch] * app/widgets/gimpdocumentview.[ch] * app/widgets/gimpdrawablelistview.[ch]: use item_factory identifier strings all over the place. * app/widgets/gimpdockbook.c: removed the menu update code, it's now in gui/dialogs-commands.c. * app/gui/brushes-commands.[ch] * app/gui/buffers-commands.[c] * app/gui/channels-commands.[ch] * app/gui/dialogs-commands.[ch] * app/gui/documents-commands.[ch] * app/gui/gradient-editor-commands.[ch] * app/gui/gradients-commands.[ch] * app/gui/layers-commands.[ch] * app/gui/palettes-commands.[ch] * app/gui/patterns-commands.[ch]: removed all show_context_menu() functions and made the update functions public. Changed all update functions to use the gimp_item_factory_set_foo() methods instead of gimp_menu_item_set_foo(). * app/gui/menus.c: pass the update functions to the gimp_item_factory_new(). * app/gui/dialogs-constructors.c: pass item factory identifiers to all view constructors. * app/gui/gradient-editor.c: show the context menu using the new method. * app/gui/toolbox.c: no need to include "dialogs-commands.h". |
|
Michael Natterer | 6cf34005af |
include the new "paint-funcs/paint-funcs-types.h".
2001-11-28 Michael Natterer <mitch@gimp.org> * app/base/base-types.h: include the new "paint-funcs/paint-funcs-types.h". * app/paint-funcs/Makefile.am * app/paint-funcs/paint-funcs-types.h: new file. Includes "base/base-types.h". * app/paint-funcs/paint-funcs.[ch]: removed the enums here, include "paint-funcs-types.h". * app/widgets/widgets-types.h: include "display/display-types.h" * app/display/display-types.h: include "widgets/widgets-types.h". * app/tools/tools-types.h: include "display/display-types.h" * app/gui/gui-types.h: include "tools/tools-types.h". The order of namespaces/dependencies should be (but is not): (base, paint-funcs) -> (core, file, xcf, pdb) -> (widgets, display) -> tools -> gui * app/path.c: include "tools/tools-types.h". * app/core/Makefile.am * app/core/gimpimage-guides.[ch] * app/core/gimpimage-merge.[ch] * app/core/gimpimage-resize.[ch] * app/core/gimpimage-scale.[ch]: new files. * app/core/gimpimage.[ch]: removed the stuff which is in the new files. Reordered all functions in both the .h and .c files, commented the groups of functions. * app/core/gimpcontainer.c: create the handler_id using a counter, not the address of a pointer, because the address *may* be the same twice, added debugging output. * app/core/gimpviewable.[ch]: added primitive support for getting a preview GdkPixbuf. * app/nav_window.c * app/undo.c * app/undo_history.c * app/core/gimpimage-duplicate.c * app/core/gimpimage-mask.[ch] * app/display/gimpdisplay.c * app/display/gimpdisplayshell-callbacks.c * app/display/gimpdisplayshell-dnd.c * app/display/gimpdisplayshell-render.c * app/display/gimpdisplayshell-scale.c * app/display/gimpdisplayshell-scroll.c * app/gui/image-commands.c * app/gui/info-window.c * app/gui/layers-commands.c * app/gui/palette-import-dialog.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpeditselectiontool.c * app/tools/gimpmeasuretool.c * app/tools/gimpmovetool.c * app/widgets/gimpcontainerview-utils.c * app/xcf/xcf-load.c: changed accordingly, some cleanup. * tools/pdbgen/pdb/guides.pdb * tools/pdbgen/pdb/image.pdb: changed accordingly, reordered functions. * app/plug_in.c: set the labels of the "Repeat" and "Re-Show" menu items to the name of the last plug-in (Fixes #50986). * app/display/gimpdisplayshell.[ch]: set the labels of "Undo" and "Redo" to the resp. undo names. Much simplified the WM icon stuff by removing most code and using gimp_viewable_get_new_preview_pixbuf(). * app/widgets/gimpbrushfactoryview.c: forgot to assign the GQuark returned by gimp_container_add_handler(). * app/pdb/guides_cmds.c * app/pdb/image_cmds.c * libgimp/gimpimage_pdb.[ch]: regenerated. |
|
Michael Natterer | 9bac8fafec |
app/core/Makefile.am new files. Changed function names to be consistent.
2001-11-28 Michael Natterer <mitch@gimp.org> * app/core/Makefile.am * app/core/gimpimage-projection.[ch]: new files. Changed function names to be consistent. * app/core/gimpimage.[ch]: removed the projection stuff here. Removed the gimp_image_composite_blah() functions becauee they were just calling the resp. gimp_image_projection ones. * app/core/gimpimage-contiguous-region.c * app/core/gimpimage-convert.c * app/core/gimpimage-crop.c * app/core/gimppalette-import.c * app/undo.c * app/display/gimpdisplay.c * app/display/gimpdisplayshell-render.c * app/gui/info-window.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpcolorpickertool.c * app/tools/gimpiscissorstool.c: changed accordingly. |
|
Sven Neumann | 19e1acbcd7 |
configure.in app/Makefile.am app/config/gimpconfig.[ch]
2001-11-27 Sven Neumann <sven@gimp.org> * configure.in * app/Makefile.am * app/config/gimpconfig.[ch] * app/config/gimpconfig-serialize.[ch] * app/config/gimpconfig-deserialize.[ch]: added new base class GimpConfig that knows how to serialize and deserialize it's properties in sexp format. Contains two example properties that will go into derived classes once this is really used. * app/main.c: deserialize and serialize the test GimpConfig object to ~/.gimp-1.3/foorc (only for debugging). * app/widgets/widgets-types.h * app/core/core-types.h: moved GimpPreviewSize enum to core-types. * app/core/core-types.h: don't include gdk-pixbuf.h. * app/core/gimptoolinfo.h * app/core/gimpimagefile.c: include gdk-pixbuf.h. * app/core/gimpimage.[ch]: made construct_flag a gboolean. * app/core/gimpdrawable-invert.c * app/core/gimpunit.c * tools/pdbgen/pdb/plug_in.pdb * app/pdb/plug_in_cmds.c: removed unused variables. * app/display/Makefile.am: removed .PHONY and files cruft * app/Makefile.am * libgimp/Makefile.am * libgimpbase/Makefile.am * libgimpcolor/Makefile.am * libgimpmath/Makefile.am * libgimpwidgets/Makefile.am * plug-ins/Makefile.am: removed commented out makefile.mingw rules. If we ever need them again, they can easily be resurrected from CVS. |