mirror of https://github.com/GNOME/gimp.git
9 Commits
Author | SHA1 | Message | Date |
---|---|---|---|
![]() |
5103c495fb |
call gimp_image_mask_changed() after performing the selection op.
2002-08-21 Michael Natterer <mitch@gimp.org> * app/core/gimpimage-mask-select.c: call gimp_image_mask_changed() after performing the selection op. |
|
![]() |
33bba65728 |
Make sure the selection (gimpimage-mask.c) functionality is really built
2002-08-20 Michael Natterer <mitch@gimp.org> Make sure the selection (gimpimage-mask.c) functionality is really built *on top* of the GimpChannel functionality: * app/undo.[ch]: renamed undo_push_image_mask() to undo_push_mask() and generalized it's API to take a GimpChannel param so undos can be pushed for channels which are not the image's selection. Simplified the API and added code which copies the region of interest instead of leaving this to callers. * app/undo_types.h: s/IMAGE_MASK_UNDO/MASK_UNDO/ * app/undo_history.c: changed accordingly. * app/core/gimpchannel.[ch]: don't #include "gimpimage-mask.h". Changed gimp_channel_push_undo() to really push a channel undo, not a selection undo. Added "gboolean push_undo" params to all functions which are called from gimpimage-mask.c. Various cleanups and optimizations. Added /*< proxy-foo >*/ stuff to the header so we export just the struct itself to libgimpproxy. Added accessors gimp_channel_[get|set]_show_masked(). * app/core/gimpimage-mask.[ch]: renamed gimp_image_mask_undo() to gimp_image_mask_push_undo(). Call it before calling GimpChannel functions which modify the mask, also call all GimpChannel functions with push_undo = FALSE. Emit gimp_image_mask_changed() after each operation instead of calling it in gimp_image_mask_invalidate(). Removed gimp_image_mask_none() because it is the same as gimp_image_mask_clear(). General cleanup. * app/core/gimpimage-mask-select.c * app/core/gimpimage-qmask.c: changed accordingly. * app/core/gimpedit.c: call gimp_image_mask_clear(), not gimp_channel_clear (gimp_image_get_mask()). * app/core/gimpimage-crop.c * app/core/gimpimage-resize.c * app/core/gimpimage-scale.c: call gimp_image_mask_changed() * app/gui/channels-commands.c * app/gui/select-commands.c * app/tools/gimptexttool.c * tools/pdbgen/pdb/channel.pdb * tools/pdbgen/pdb/selection.pdb: follow GimpChannel and gimp_image_mask* API changes. * app/pdb/channel_cmds.c * app/pdb/selection_cmds.c * libgimpproxy/gimpchannel.h: regenerated. Unrelated: * app/core/gimpimage.c: call gimp_drawable_push_undo() instead of undo_push_image() directly. |
|
![]() |
d68b730a82 |
app/core/core-enums.h more enum cleanup (ChannelOps this time).
2002-03-18 Sven Neumann <sven@gimp.org> * app/core/core-enums.h * app/core/core-types.h: more enum cleanup (ChannelOps this time). * app/core/gimpchannel.[ch] * app/core/gimpimage-mask-select.[ch] * app/gui/channels-commands.c * app/gui/vectors-commands.c * app/tools/gimpbezierselecttool.c * app/tools/tools-types.h * app/widgets/gimpchannellistview.[ch] * tools/pdbgen/pdb/channel.pdb * tools/pdbgen/pdb/selection.pdb * tools/pdbgen/pdb/selection_tools.pdb: changed accordingly. * app/pdb/channel_cmds.c * app/pdb/selection_cmds.c * app/pdb/selection_tools_cmds.c * libgimp/gimpenums.h * plug-ins/script-fu/script-fu-constants.c * tools/pdbgen/enums.pl: regenerated. |
|
![]() |
affc31007e |
changed gimp_image_mask_select_channel() to not take "drawable" and
2002-03-03 Michael Natterer <mitch@gimp.org> * app/core/gimpimage-mask-select.[ch]: changed gimp_image_mask_select_channel() to not take "drawable" and "sample_merged" parameters (which are silly in some contexts) but simply the offsets of the passed channel. * app/gui/channels-commands.c * app/tools/gimpbezierselecttool.c * app/tools/gimpfuzzyselecttool.c * app/tools/gimpiscissorstool.c: changed accordingly. * app/tools/gimpdrawtool.[ch]: chaged gimp_draw_tool_draw_lines() and _draw_strokes() to take an additional "use_offsets" parameter like the other drawing functions. * app/path_curves.c * app/tools/gimpvectortool.c: changed accordingly. * app/paint/gimppaintcore.c: removed #if 0'ed code which was identical to other functions. * app/tools/gimpselectiontool.c: use the GimpEditSelectionTool's "arrow_key_func" so it's now possible to keyboad-move the current layer and selection with all selection tool. Needs some more tweaking... * app/tools/gimpiscissorstool.[ch] * app/tools/gimpvectortool.[ch]: derive them from GimpSelectionTool to make the modifier key <-> tool options interaction work. Ported IScissors to the new way the draw_tool works. |
|
![]() |
52d07c9646 |
implemented gimp_image_mask_select_vectors() as simple wrapper around
2002-02-26 Michael Natterer <mitch@gimp.org> * app/core/gimpimage-mask-select.[ch]: implemented gimp_image_mask_select_vectors() as simple wrapper around gimp_image_mask_select_polygon(). * app/gui/vectors-commands.c: call it from the "to selection" callbacks. * app/gui/channels-commands.c: use gimp_image_mask_select_channel() instead of doing the same manually. * app/paint/gimppencil.c: register as "GimpPencil", not "GimpPencilCore". * app/widgets/Makefile.am * app/widgets/widgets-types.h * app/widgets/gimpvectorslistview.[ch]: new GimpItemListView subclass featuring a "To Selection" and "Stroke" button. * app/widgets/gimpitemlistview.c: create GimpVectorsListViews. |
|
![]() |
ceed8eae4e |
removed #if 0'ed old display update hackery. Don't flush the displays here
2002-02-10 Michael Natterer <mitch@gimp.org> * app/undo.c: removed #if 0'ed old display update hackery. Don't flush the displays here at all and include nothing from "display/". * app/undo_history.c * app/gui/edit-commands.c: call gdisplays_flush() if undo_pop() or undo_redo() return TRUE. * app/core/gimpimage-contiguous-region.[ch]: allow a contiguous transparent region to be selected/filled (#71058). * app/core/gimpdrawable-bucket-fill.[ch] * app/core/gimpimage-mask-select.[ch]: take a boolean fill_transparent/select_transparent parameter and pass it to the contiguous region funcion. * app/display/gimpdisplayshell-dnd.c: pass fill_transparent == FALSE to bucket_fill_full because we fill the whole drawable anyway here. * app/tools/gimpbucketfilltool.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpfuzzyselecttool.c * app/tools/selection_options.[ch]: added toggle buttons to the tool options and pass the value to the fill and select core functions. * tools/pdbgen/pdb/misc_tools.pdb * tools/pdbgen/pdb/selection_tools.pdb: hardcode "select_transparent" to FALSE to get the old behaviour. Should export the new feature to plug-ins however. * app/pdb/misc_tools_cmds.c * app/pdb/selection_tools_cmds.c: regenerated. |
|
![]() |
f7bbdc3e49 |
s/gimage_mask/gimp_image_mask/g
2001-11-28 Michael Natterer <mitch@gimp.org> * app/core/gimpimage-mask.[ch]: s/gimage_mask/gimp_image_mask/g * app/floating_sel.c * app/undo.c * app/undo_history.c * app/core/gimpchannel.c * app/core/gimpdrawable-blend.c * app/core/gimpdrawable-transform.c * app/core/gimpdrawable.c * app/core/gimpedit.c * app/core/gimpimage-crop.c * app/core/gimpimage-mask-select.c * app/core/gimpimage-resize.c * app/core/gimpimage-scale.c * app/core/gimpimage.c * app/display/gimpdisplayshell-qmask.c * app/display/gimpdisplayshell-selection.c * app/display/gimpdisplayshell.c * app/gui/channels-commands.c * app/gui/edit-commands.c * app/gui/layers-commands.c * app/gui/select-commands.c * app/tools/gimpbucketfilltool.c * app/tools/gimpbycolorselecttool.c * app/tools/gimpclonetool.c * app/tools/gimpcroptool.c * app/tools/gimpeditselectiontool.c * app/tools/gimpfliptool.c * app/tools/gimpfreeselecttool.c * app/tools/gimpinktool.c * app/tools/gimpmovetool.c * app/tools/gimppainttool.c * app/tools/gimprectselecttool.c * app/tools/gimpselectiontool.c * app/tools/gimptexttool.c * app/tools/gimptransformtool.c * app/widgets/gimpchannellistview.c * app/xcf/xcf-save.c * tools/pdbgen/pdb/edit.pdb * tools/pdbgen/pdb/selection.pdb: changed accordingly. * app/pdb/edit_cmds.c * app/pdb/selection_cmds.c: regenerated. |
|
![]() |
02fde14c95 |
build display/ before tools/.
2001-11-08 Michael Natterer <mitch@gimp.org> * app/Makefile.am: build display/ before tools/. * app/devices.c: devices_check_change(): added all events which have a GdkDevice pointer. * app/gimpprogress.c: include "display-types.h" instead of "core-types.h". * app/core/Makefile.am * app/core/gimpdrawable-bucket-fill.[ch]: new files: the bucket_fill stuff taken from tools/gimpbucketfilltool.[ch]. * app/core/core-types.h: added "BucketFillMode". * app/core/gimpimage-mask-select.[ch]: cleanup. * app/core/gimpmarshal.list: added more marshallers for GimpTool's new signal signatures. * app/core/gimpmarshal.[ch]: regenerated. * app/display/Makefile.am * app/display/gimpdisplayshell-dnd.[ch] * app/display/gimpdisplayshell-layer-select.[ch]: new files: the canvas drop callbacks from gimpdisplayshell-callbacks.[ch] and the stuff formerly knows as gui/layer-select.[ch]. * app/display/gimpdisplay.h: don't include "gui/gui-types.h". * app/display/gximage.c: include "display-types.h". * app/display/gimpdisplay-foreach.c * app/display/gimpdisplayshell.[ch]: call gdsplay_delete(), don't destroy the shell widget. * app/gui/Makefile.am * app/gui/layer-select.[ch]: removed. * app/gui/gradients-commands.c: fixed "Save as POV" fprintf()s. * app/gui/preferences-dialog.c: removed the layer_select stuff because it is useless with the new preview system. * app/gui/tool-options-dialog.c: send the correct data to the close_callback. * app/gui/tools-commands.c: changed to follow the new gimp_tool_initialize() semantics (see below). Tool & canvas event handling chainsawing: * app/tools/tools-types.h: new struct GimpCoords which contains x, y, pressure, tilt etc. * app/display/gimpdisplayshell-callbacks.[ch]: added utility functions which transparently retreive the current event's GimpCoords or take it from the device directly if the event has none. Pass GimpCoords _in_image_coordinates_ to all tool functions. Most important: don't pass GdkEvents and display coordinates to tools any more. * app/tools/gimptool.[ch]: changed virtual functions to take GimpCoords, time and state separately instead of GdkEvents. * app/tools/gimpbezierselecttool.c * app/tools/gimpblendtool.c * app/tools/gimpbucketfilltool.[ch] * app/tools/gimpbycolorselecttool.c * app/tools/gimpclonetool.c * app/tools/gimpcolorpickertool.c * app/tools/gimpconvolvetool.c * app/tools/gimpcroptool.[ch] * app/tools/gimpcurvestool.c * app/tools/gimpdodgeburntool.c * app/tools/gimpdrawtool.c * app/tools/gimpeditselectiontool.[ch] * app/tools/gimperasertool.c * app/tools/gimpfliptool.c * app/tools/gimpfreeselecttool.[ch] * app/tools/gimpfuzzyselecttool.c * app/tools/gimpinktool.c * app/tools/gimpiscissorstool.c * app/tools/gimpmagnifytool.c * app/tools/gimpmeasuretool.c * app/tools/gimpmovetool.c * app/tools/gimppainttool.c * app/tools/gimppathtool.[ch] * app/tools/gimprectselecttool.c * app/tools/gimprotatetool.c * app/tools/gimpselectiontool.[ch] * app/tools/gimpsmudgetool.c * app/tools/gimptexttool.c * app/tools/gimptransformtool.[ch] * app/tools/path_tool.[ch] * app/tools/selection_options.c: tons and tons of changes: - changed to use the new virtual function parameters. - removed zillions of gdisplay_untransform_coords(). - get the active drawable's offsets manually in many cases. (questionable, but IMHO ok because it's obvious and not simply a "TRUE" passed to some function) - reordered some functions to be consistent across tools. - some tools had to be changed to work on image coords, not display ones (esp. crop). - fixed strange rotate tool behaviour which should be backported to stable. - some stuff i came across. - indentation and other paranoia. - rounding of coordinated may be broken in some tools. - new bugs guaranteed. * app/tools/tool_manager.[ch]: new semantic of tool_manager_initialize_active() (looked at the places where it was used from and put common code together). Should be a bit better now :) * app/tools/gimpblendtool.c * app/tools/transform_options.c: use the new GTK+ feature that a widget (toggle button) can be a frame's title for this tools' tool options. * app/widgets/widgets-types.h: stuff. * themes/Default/gtkrc: s/GtkDialog/GimpDialog/. * tools/pdbgen/Makefile.am: don't scan tools/gimpbucketfilltool.h any more. * tools/pdbgen/enums.pl: regenerated. * tools/pdbgen/pdb/tools.pdb: changed bucket_fill wrapper. * app/pdb/tools_cmds.c: regenerated. |
|
![]() |
99e78c7074 |
General cleanup of the selection tools and their PDB wrappers:
2001-10-22 Michael Natterer <mitch@gimp.org> General cleanup of the selection tools and their PDB wrappers: * app/core/Makefile.am * app/core/gimpimage-contiguous-region.[ch] * app/core/gimpimage-mask-select.[ch]: new files providing a clean, uniform API for the selection functionalities. Changed order of parameters to be consistent, removed code duplication. The region returned by the "by_color" function is not really contiguous but the API is so similar to "by_seed" and it's used in the same context so it's fair enough to put them together. Also, I'm not sure if the two is_pixel_sufficiently_different() I've optimized away were meant to do *exactly* the same. Added a comment there to remember the former difference. * app/core/gimpchannel.[ch] (gimp_channel_feather): removed the "output" channel parameter and made it optionally push an undo (like the other channel operations do). * app/core/gimpimage-mask.c: call gimp_channel_feather() with "push_undo == TRUE", removed some useless comments. * app/tools/gimpbycolorselecttool.[ch] * app/tools/gimpellipseselecttool.[ch] * app/tools/gimpfreeselecttool.[ch] * app/tools/gimpfuzzyselecttool.[ch] * app/tools/gimprectselecttool.[ch]: removed all the actual selection functionality and call the new gimp_image_mask_select_*() and gimp_image_contiguous_region_*() functions instead. * app/tools/gimpbezierselecttool.c * app/tools/gimpiscissorstool.c: use new function gimp_image_mask_select_channel() instead of doing the same manually. * app/tools/gimpbucketfilltool.c: find_contiguous_region() -> gimp_image_contiguous_region_by_seed(). * tools/pdbgen/Makefile.am * tools/pdbgen/groups.pl * tools/pdbgen/pdb/selection_tools.pdb: added new group "Selection Tools" which depends only on "core/" stuff (not on "tools/" any more, brrrr). * tools/pdbgen/pdb/text_tool.pdb: don't include "appenv.h" * tools/pdbgen/pdb/tools.pdb: removed the selection tools. * app/pdb/Makefile.am * app/pdb/selection_tools_cmds.c: new file. * app/pdb/internal_procs.c * app/pdb/text_tool_cmds.c * app/pdb/tools_cmds.c: regenerated. * libgimp/Makefile.am * libgimp/gimp_pdb.h * libgimp/gimpselectiontools_pdb.[ch]: new files. * libgimp/gimptools_pdb.[ch]: regenerated Misc cleanups: * app/app_procs.c: call splash_create() with "no_splash_image" as parameter. * app/display/gimpdisplay-render.c * app/display/gximage.c: don't include "appenv.h". * app/gui/gui.c: call session_restore() only if "restore_session" is TRUE. * app/gui/session.c: don't "if(restore_session)" here and don't include "appenv.h" * app/gui/splash.[ch]: added "gboolean show_image" parameter to splash_create(), don't include "appenv.h" * app/tools/gimppainttool.[ch]: added a "GimpGradient" parameter to gimp_paint_tool_get_color_from_gradient(). * app/tools/gimppaintbrushtool.c: pass the gradient. * app/tools/gimpselectiontool.c * app/tools/gimptransformtool.c * app/tools/tool_manager.c: s/GDisplay/GimpDisplay/. * app/widgets/gimpcontainergridview.[ch]: removed the "white_style" class variable and don't fiddle around with colors and styles... * themes/Default/gtkrc: ...do the same here with a simple rc style. |