2002-04-14 Michael Natterer <mitch@gimp.org>
* app/core/gimp.c: removed some #if 0'ed stuff.
* app/gui/edit-commands.c (edit_copy_cmd_callback): call
gdisplays_flush() so the menus are updated correctly.
* app/widgets/gimpitemfactory.c (gimp_item_factory_set_color):
pack the original menu item label with TRUE, TRUE into the created
hbox so it's accel. label is visible.
2002-04-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-crop.c: reordered some lines, no logic
changed.
* app/core/gimplayer.[ch]: made gimp_layer_pick_correlate()
return a gboolean, not gint.
* app/display/gimpdisplayshell.c
* app/gui/layers-commands.[ch]
* app/gui/menus.c: added "<Image>/Layers/Crop Layer" which resizes
the active layer to the current selection's bounds, just as
"<Image>/Image/Crop Image"
2002-03-20 Michael Natterer <mitch@gimp.org>
* app/gui/Makefile.am
* app/gui/commands.[ch]: removed...
* app/gui/help-commands.[ch]: ...and added here.
* app/gui/menus.c: changed accordingly and added the mem_profile
debug callback so all debug stuff is in one place.
2002-03-20 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in.[ch]: badly chopped into the new files below.
Pass around much more "PlugIn" and "Gimp" pointers instead of
using "current_plug_in" and "the_gimp". Needs much more hacking
though... :(
* app/plug-in/Makefile.am
* app/plug-in/plug-in-def.[ch]
* app/plug-in/plug-in-params.[ch]
* app/plug-in/plug-in-progress.[ch]
* app/plug-in/plug-ins.[ch]: new files.
* app/gui/Makefile.am
* app/gui/plug-in-commands.[ch]
* app/gui/plug-in-menus.[ch]: ditto.
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-types.h: changed accordingly.
* app/pdb/procedural_db.c: changed procedural_db_destroy_args()
so it can be used from plug_in_args_destroy(). Fixed a parasite
memory leak (or introduced a new SEGV, we'll see...).
* app/display/Makefile.am: another "truly ugly hack" until the
plug-in menu stuff is chopped even more...
* app/gui/commands.[ch]: removed filters_repeat_cmd_callback() here,
it is now in plug-in-commands.[ch].
* app/widgets/gimpitemfactory.[ch]: removed all gimp_menu_item_*()
hacks. We have a GimpItemFactory available in most cases we used
to call this functions, and can use gimp_item_factors_from_path()
in all other cases. The item factory stuff needs more work
anyway...
* app/app_procs.c
* app/gimphelp.c
* app/display/gimpdisplayshell.c
* app/gui/file-dialog-utils.c
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]
* app/gui/gui.c
* app/gui/menus.c
* app/gui/paths-dialog.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/help.pdb
* tools/pdbgen/pdb/plug_in.pdb: changed accordingly (includes,
renamed functions and gimp_menu_item_*() removal).
* app/pdb/fileops_cmds.c
* app/pdb/help_cmds.c
* app/pdb/plug_in_cmds.c: regenerated.
2002-03-20 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: pass an additional "Gimp"
pointer to gimp_display_shell_set_menu_sensitivity() so we can
correctly set the state of some items even without a display.
Set the sensitivity of much more items. Never set submenus
insensitive so the user can always browse the whole menu
(according to the GNOME HIG).
* app/image_map.c
* app/display/gimpdisplay.c
* app/gui/gui.c: changed accordingly.
* app/gui/view-commands.[ch]: added a callback for the display
filters dialog because display releted dialogs are going to
be handled different soon.
* app/gui/menus.c: use the new callback.
2002-03-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolormapeditor.[ch]: namespaceified and cleaned
up a lot. Removed the menu code.
* app/gui/menus.c: added a "<ColormapEditor>" item factory...
* app/gui/Makefile.am
* app/gui/colormap-editor-commands.[ch]: ...and callbacks for the
new factory.
* app/gui/menus.c: Cleaned up a lot. Removed most static variables.
Enabled the menu debugging code again. Moved all debug and test
entries to <Toolbox>/File/Debug. Added an "Open Recent" submenu
to <Image>/File because it was a one-liner after the cleanup...
* app/widgets/gimpeditor.c: create the icons in GTK_ICON_SIZE_MENU.
Need to make this configurable using a style property...
2002-03-15 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.[ch]: renamed shell->cd_list to
shell->filters and shell->cd_ui to shell->filters_dialog.
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-filter.c
* app/display/gimpdisplayshell-render.c
* app/gui/dialogs-constructors.c: changed accordingly.
* app/display/gimpdisplayshell-filter-dialog.c: cleaned up the GUI.
Still deprecated GtkCLists around...
* app/widgets/gimpeditor.[ch]: added gimp_editor_new().
* app/gui/image-commands.[ch]
* app/gui/menus.c: added "<Image>/Image/Crop Image" because i was
sick of clicking 20 times just to crop to the current selection.
* themes/Default/gtkrc: removed "gimp-dock-style" and changed
"gimp-gtk-icons" to "gimp-default-style". Set our widget class
style property defaults there.
2002-03-14 Michael Natterer <mitch@gimp.org>
* app/core/gimptoolinfo.c: g_strdup() the stock_id passed to
gimp_tool_info_new() because the caller's memory may disappear
after registering the tool (tool modules).
Made a GimpDock out of the toolbox:
* app/gui/Makefile.am
* app/gui/color-area.[ch]
* app/gui/indicator-area.[ch]
* app/gui/toolbox.[ch]: removed...
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimptoolbox-color-area.[ch]
* app/widgets/gimptoolbox-indicator-area.[ch]
* app/widgets/gimptoolbox.[ch]: ...and added here.
* app/widgets/gimpdock.[ch]: don't set a minimal width. Added a
"destroy_if_empty" boolean so we can prevent destruction of the
toolbox if it's last dockable is removed. Added gimp_dock_construct()
which is called from GimpImageDock and GimpToolbox.
* app/widgets/gimpimagedock.[ch]: Default to not showing the image
menu, set a minimal width here, misc. minor cleanup.
* app/widgets/gimpdockbook.c: some more GIMP_IS_IMAGE_DOCK()
checks, fixed dnd widget creation.
* app/widgets/gimpdialogfactory.[ch]: changed
gimp_dialog_factories_toggle() to take just the toolbox_factory as
parameter. When restoring the session use the created dock's
dialog factory to create dockables, not the the factory we
created the dock from (for the toolbox).
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
* app/gui/dialogs.[ch]: create an own dialog factory for the toolbox
and set dialogs_toolbox_new() as it's new_dock_func.
* app/gui/dialogs-constructors.[ch]: changed dialogs_toolbox_get()
accordingly.
* app/gui/dialogs-commands.[ch]: added dialogs_show_toolbox(), ckeck
if a dock is really a GimpImageDock before casting.
* app/gui/gui.c
* app/gui/menus.c
* app/widgets/gimppaletteeditor.c: changed accordingly.
* app/gui/color-notebook.c
* app/gui/color-select.c
* app/gui/colormap-dialog.c
* app/gui/palette-editor-commands.c: removed useless inclusion of
"gui/color-area.h".
* themes/Default/gtkrc: set "gimp-dock-style" for GimpToolbox widgets.
2002-03-12 Michael Natterer <mitch@gimp.org>
* app/gimprc.[ch]
* app/gui/preferences-dialog.c
* app/paint/gimppaintoptions.[ch]
* app/tools/paint_options.[ch]
* app/tools/tool_manager.[ch]: removed the "global_paint_options"
gimprc option because it doesn't quite fit the new dockable dialog
architecture.
* app/gui/brush-select.[ch]
* app/gui/gradient-select.[ch]
* app/gui/palette-select.[ch]
* app/gui/pattern-select.[ch]: removed the "Global Brush/Pattern/...
Selection" part of them. They are now only used for temp popup
selections and the PDB. *Lots* of cleanup.
* app/gui/convert-dialog.c
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c
* app/gui/gui.c
* app/gui/menus.c
* app/gui/palette-import-dialog.c
* app/plug-in/plug-in.c: changed accordingly.
Cleaned up the palette and other data PDB stuff:
* tools/pdbgen/Makefile.am
* tools/pdbgen/groups.pl: added "palette_select" and "palettes".
* tools/pdbgen/pdb/palette_select.pdb: new file. Makes the palette
selection PDB controllable.
* tools/pdbgen/pdb/palettes.pdb: new file cut out of palette.pdb
because of API symmetry with brushes, patterns, ...
* tools/pdbgen/pdb/palette.pdb: removed from here.
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/palette.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/patterns.pdb: lots of cleanup.
Autogenerated stuff:
* app/pdb/Makefile.am
* app/pdb/palette_select_cmds.c
* app/pdb/palettes_cmds.c: new files.
* app/pdb/brush_select_cmds.c
* app/pdb/brushes_cmds.c
* app/pdb/gradient_select_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/internal_procs.c
* app/pdb/palette_cmds.c
* app/pdb/pattern_select_cmds.c
* app/pdb/patterns_cmds.c: regenerated.
* libgimp/Makefile.am
* libgimp/gimp_pdb.h
* libgimp/gimppalettes_pdb.[ch]
* libgimp/gimppaletteselect_pdb.[ch]: new files.
* libgimp/gimpgradientselect_pdb.[ch]
* libgimp/gimppalette_pdb.[ch]
* libgimp/gimppatterns_pdb.c: regenerated.
* devel-docs/libgimp/tmpl/gimpgradients.sgml
* devel-docs/libgimp/tmpl/gimppalette.sgml: regenerated.
2002-03-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimplayerlistview.[ch]: added a GimpAnchorItemFunc
and use it if it's set.
* app/widgets/gimpitemlistview.c: removed the floating selection
special case hack from the remove_item callback.
* app/gui/layers-commands.[ch]: added layers_remove_layer() and
layers_anchor_layer(). Fixed sensitive setting of the "Anchor"
menu item.
* app/gui/dialogs-constructors.c: use the new functions when
constructing the layers dialog. Makes deleting and anchoring
floating selections from the layers dialog work without hacking
or code duplication.
* app/widgets/gimpdialogfactory.c: added comments about dialog
destruction in dispose().
2002-03-08 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.[ch]: changed gimp_channel_get_color() to
not return the color but take a second GimpRGB* parameter like all
other _get_color() functions. Reordered some functions to make
more sense, added some g_return_if_fail().
* app/core/gimppalette.[ch]: added gimp_palette_[set|get]_n_columns()
* app/gui/menus.c: added a "<PaletteEditor>" item factory.
* app/gui/Makefile.am
* app/gui/palette-editor-commands.[ch]: callbacks for the factory.
* app/widgets/gimppaletteeditor.[ch]: removed the menu stuff here,
added a spinbutton to adjust the number of columns.
* app/gui/gradient-editor-commands.c: removed usage of "the_gimp".
* app/widgets/gimpgradienteditor.c: minor cleanup.
* app/widgets/gimpbrusheditor.h
* app/widgets/gimpgradienteditor.h
* app/widgets/gimppaletteeditor.h: forgot to declare the _get_type()
functions publically.
2002-03-08 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: added GimpPaletteEntry typedef.
* app/core/gimppalette.h: removed it here.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpeditor.[ch]: new widget which is the base class
for everything which is a vbox and has a button area at the
bottom.
* app/widgets/gimpcontainerview.[ch]: derived from GimpEditor now.
* app/widgets/gimpdataeditor.[ch]: a GimpEditor subclass which is
the base class for the new data editors below.
* app/widgets/gimpbrushfactoryview.c
* app/widgets/gimpbufferview.c
* app/widgets/gimpchannellistview.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimpitemlistview.c
* app/widgets/gimplayerlistview.c
* app/widgets/gimpvectorslistview.c
* themes/Default/gtkrc: chagec accordingly.
* app/gui/Makefile.am
* app/gui/brush-editor.[ch]
* app/gui/gradient-editor.[ch]
* app/gui/palette-editor.[ch]: removed...
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: ...and added back as
GimpDataEditor subclasses. Lots of cleanup and stuff...
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c
* app/gui/gradient-editor-commands.c
* app/gui/gui-types.h
* app/gui/palette-select.c
* app/tools/gimpcolorpickertool.c: changed accordingly.
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.
2002-02-27 Michael Natterer <mitch@gimp.org>
* themes/Default/images/stock-button-stroke.png
* themes/Default/images/stock-button-to-path.png
* themes/Default/images/stock-button-to-selection.png: removed.
* themes/Default/images/stock-button-path-stroke.png
* themes/Default/images/stock-button-selection-stroke.png
* themes/Default/images/stock-button-selection-to-path.png: new ones.
* themes/Default/Makefile.am
* themes/Default/images/Makefile.am
* libgimpwidgets/gimpstock.[ch]: changed accordingly.
* themes/Default/images/stock-button-selection-add.png
* themes/Default/images/stock-button-selection-intersect.png
* themes/Default/images/stock-button-selection-replace.png
* themes/Default/images/stock-button-selection-subtract.png: cropped.
* themes/Default/images/tools/stock-tool-button-brightness-contrast.png:
a nicer one from Ville Ptsi.
* app/gui/menus.c
* app/widgets/gimpvectorslistview.c: use the new stock items.
* app/gui/dialogs-commands.c: create the new paths dialog, not the
old one in dialogs_lc_cmd_callback().
* app/gui/vectors-commands.c: some more s/Vectors/Path/ in
user-visible strings.
* app/app_procs.c: some test code for the filename -> uri migration.
2002-02-27 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/gimppaintinfo.[ch]: new object for registering
GimpPaintCore subclasses, just like GimpToolInfo for tools.
* app/core/gimp.h: added gimp->paint_info_list to hold them.
* app/core/gimptoolinfo.[ch]: removed the "pdb_string" and
"paint_core_name" pointers and added a GimpPaintInfo pointer
instead.
* app/core/gimpimage-mask.c
* app/gui/vectors-commands.c
* app/tools/gimpbezierselecttool.c
* app/tools/tool_manager.c: changed accordingly.
* app/paint/paint-types.h
* app/paint/paint.c: added paint class registration stuff like
the tool_manager does.
* app/paint/gimpairbrush.[ch]
* app/paint/gimpclone.[ch]
* app/paint/gimpconvolve.[ch]
* app/paint/gimpdodgeburn.[ch]
* app/paint/gimperaser.[ch]
* app/paint/gimppaintbrush.[ch]
* app/paint/gimppencil.[ch]
* app/paint/gimpsmudge.[ch]: added register functions which are
called from paint_init().
The core object system lives not only in "core/", but in
core, paint, vectors, file, plug-in and xcf, so I had to hack
a bit to keep the deps working:
* app/pdb/pdb-types.h: don't include "paint/paint-types.h"...
* app/core/core-types.h: ...because it's included here. Moved
the inclusions of the core's subsystems' "foo/foo-types.h"
files to the end of the file.
* app/paint/Makefile.am: Some slimy radioactive uglyness.
* app/gui/drawable-commands.c
* app/tools/gimpblendtool.c: removed calling core functions via
the PDB because it makes no sense to do it manually in only a few
places. This needs to be done generically using generated
wrappers living in "app/commands/" or something...
2002-02-26 Michael Natterer <mitch@gimp.org>
* app/app_procs.c: make absolute paths out of relative ones
passed on the commandline so the GimpImagefiles can generate
previews.
* app/gui/Makefile.am
* app/gui/drawable-commands.[ch]: new files implementing menu
callbacks which work not just on layers.
* app/gui/layers-commands.[ch]: removed them here. Cleanup.
* app/gui/menus.c: changed accordingly.
* app/gui/brushes-commands.c
* app/gui/channels-commands.c
* app/gui/vectors-commands.c: cleanup. Added macros to get
rid of code duplication.
2002-02-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemlistview.[ch]: added a "item_activate_func"
to the struct and the constructor so we can distinguish double
click from right click in the callbacks.
* app/widgets/gimpvectorslistview.[ch]: added a "item_stroke_func".
* app/widgets/gimpchannellistview.c: reorder the "To Selection" button.
* app/gui/dialogs-constructors.c: changed accordingly.
* app/gui/menus.c: added separators and some new items to the
vectors menu. Use the SELECTION_REPLACE, _ADD, ... icons for
the resp. menu items.
* app/gui/vectors-commands.[ch]: added empty callbacks for the new
menu items, put the stroke stuff to an own function which is used
as "item_stroke_func" when creating GimpVectorsListViews.
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.
2002-02-26 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore-stroke.[ch]: added
gimp_paint_core_stroke_vectors() which strokes the whole vector
using one undo step.
* app/gui/vectors-commands.c: use the new function.
* app/tools/gimpvectortool.c: changed to do evil voodoo in
gimp_vectors_tool_set_vectors() and thus to always find a
display to show the vectors.
2002-02-26 Simon Budig <simon@gimp.org>
* app/gui/vectors-commands.c
* app/tools/gimpvectortool.c
* app/tools/gimpvectortool.h: fixed a name of a function
and corrected gimp_vector_tool_set_vectors.
2002-02-26 Michael Natterer <mitch@gimp.org>
Added some kind of paint core registry. It's ugly and will change...
* app/core/gimp.c: call paint_init() and paint_exit().
* app/core/gimptoolinfo.[ch]: added "gchar *paint_core_name" to
the GimpToolInfo structure and the contstructor.
* app/tools/tool_manager.c: pass the class names of the
GimpPaintCore subclasses to gimp_tool_info_new().
* app/paint/Makefile.am
* app/paint/paint.[ch]: new files. Simlply ref/unref all paint
core classes so we can find them using g_type_from_name().
* app/paint/gimppaintcore-stroke.[ch]: changed to take an array
of GimpCoords, not just gdouble.
* tools/pdbgen/pdb/paint_tools.pdb: convert the stroke array here.
* app/gui/vectors-commands.c: ad-hoc implementation of vectors
stroking. Double click now sets the active vectors in the vectors
tool.
* app/pdb/paint_tools_cmds.c: regenerated.
2002-02-26 Michael Natterer <mitch@gimp.org>
* app/undo.[ch]: renamed undo_push_layer_rename() to
undo_push_item_rename(), so channel/vectors renaming is undoable.
Use "gsize" for all undo size variables. Cleanup.
* app/undo_types.h: s/LAYER_RENAME_UNDO/ITEM_RENAME_UNDO/.
* app/core/core-types.h: added LAYER_PROPERTIES_UNDO_GROUP.
* app/core/gimpimage.c: s/Vectors/Path/ in all user-visible strings.
* app/core/gimpitem.[ch]: cleanup.
* app/gui/menus.c: s/"New Path"/"New Path..."/, pass
"vectors_menu_update" to gimp_item_factory_new().
* app/gui/layers-commands.c: renaming the floating layer
transforms it into an ordinary layer. Push an undo group around
around both the "fs_to_layer" and the renaming.
* app/gui/channels-commands.c
* app/gui/vectors-commands.c: made renaming undoable, cleanup.
* app/widgets/gimpitemlistview.c: added an EEKY hack so "Delete"
is not broken any more for floating selections. Need a better
solution...
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.
2002-02-20 Michael Natterer <mitch@gimp.org>
Implemented #7100 (initialize layer mask with a copy of the image)
* app/core/core-types.h: added ADD_COPY_MASK and ADD_INV_COPY_MASK
enum values.
* app/pdb/layer_cmds.c
* libgimp/gimpenums.h
* plug-ins/script-fu/script-fu-constants.c
* tools/pdbgen/enums.pl: regenerated.
* app/core/gimplayer.c (gimp_layer_create_mask): implement
the new layer mask add modes.
* app/gui/layers-commands.c (layers_add_mask_query): added radio
buttons for the new modes.
* app/paint-funcs/paint-funcs.c (flatten_region): this function
was never needed so nobody noticed that it never worked. Fixed now.
* app/undo.c
* app/core/gimplayermask.h
* app/core/gimpimage.c: the "mode" field of LayerMaskUndo is
obsolete since some earlier 1.3 layer mask change. Removed it.
(Makes mask undos work again)
2002-02-13 Michael Natterer <mitch@gimp.org>
* app/gui/menus.c: moved "Merge Layers" and "Flatten Image" from
"Layer/" to "Image/", removed them from the "<Layers>" menu
entirely, moved "Merge Down" after "Anchor Layer" in both menus.
* app/gui/image-commands.[ch]: moved callbacks from here...
* app/gui/layers-commands.[ch]: ...to here.
* app/gui/layers-commands.[ch]
* app/display/gimpdisplayshell.c: changed menu_update functions
accordingly.
* app/plug-in/plug-in-rc.c: implement a new pluginrc flag,
"has-init", so that only plug-ins with init functions are
initialized.
* app/plug-in/plug-in.ch
* libgimp/gimp.c
* libgimpbase/gimpprotocol.ch: send a new gimpwire message,
GP_HAS_INIT during the query stage if the plug-in needs to be
initialized. Only invoke the plug-in in init mode if the plug-in
has an init function.
2002-02-11 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in.c: small hack that strips the ellipses
from the "Repeat" and "Re-Show" menu entries.
* plug-ins/mosaic/mosaic.c: register under "Filters/Distorts", not
"Filters/Render" because this plug-in changes the image and
doesn't render something from scratch.
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.
2002-02-06 Michael Natterer <mitch@gimp.org>
* app/core/gimpobject.c: made the gimp_object_get_memsize()
debugging output configurable by a global "gimp_debug_memsize"
boolean.
* app/display/gimpdisplay.c: removed duplicated prototype.
* app/display/gimpdisplayshell.[ch]: renamed the various cursor
functions to be more consistent and shorter. Compress window title
updates by adding a "gboolean title_dirty" and updating the title
in gimp_display_shell_flush(). Added "%m" (memory size) to the
possible title string substitutions.
* app/display/gimpdisplay-foreach.c
* app/display/gimpdisplayshell-handlers.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimptool.c: changed accordingly.
* app/display/gimpdisplayshell-callbacks.c: forgot to grab the
pointer when dragging guides from the rulers. Coincidentially,
this also fixes the buggy offset between guide and mouse
pointer...
Cleaned up the main tool event callback a but more.
* app/widgets/gimppreview.c
* app/gui/commands.c: set the new global "gimp_debug_memsize"
toggle to TRUE while calling gimp_object_get_memsize().
* app/gui/preferences-dialog.c: added a image title example
containing the new "%m" feature.
* docs/gimprc-1.3.5.in: document "%m" in the manpage.
* app/tools/gimpbezierselecttool.c: reordered some statements.
* app/tools/gimpdrawtool.[ch]: store the GimpDisplay passed to
gimp_draw_tool_start() in draw_tool->gdisp and use it for
coordinate transfomration. This way we can paint on a display
which is not tool->gdisp.
* app/tools/gimppainttool.c: changed the gimp_draw_tool_foo()
calls needed to make the straight_line preview work in a way
that does not interfere with paint_tool subclasses which want
to do their own drawing (like the clone tool).
Also changed the paint_tools PRETRACE_PAINT and POSTTRACE_PAINT
flags usage in a way that subclasses can use them without major
hackery: don't simply wrap gimp_display_flush_now() with
PRETRACE/POSTTRACE calls, but wrap the actual painting calls, so
subclasses are able to do useful things with paint_tool->*_coords.
* app/tools/gimpclonetool.c: removed poking around in draw_tool
internals and simply suspend()/resume() it in
PRETRACE_PAINT/POSTTRACE_PAINT to get the clone_src indicator
drawn correctly.
2002-02-03 Michael Natterer <mitch@gimp.org>
* app/display/Makefile.am
* app/display/display-types.h
* app/display/gimpstatusbar.[ch]: new widget derived from
GtkStatusbar. Contains the coordinates display, a progress bar
which is also used for status message display and a cancel button.
Added a simplified API for pushing/popping messages which takes a
string as context_id and does the conversion to guint internally
on each call.
* app/display/gimpdisplayshell.[ch]: removed the status bar code.
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-scale.c
* app/gui/view-commands.c
* app/gimpprogress.c: changed accordingly.
Removed knowledge about GimpDisplayShell from tools:
* app/tools/gimptool.[ch]: added gimp_tool_push_status() and
gimp_tool_pop_status() so tools don't need to fiddle with
display details.
* app/tools/gimpdrawtool.[ch]: pass a GimpDisplay instead of
a GdkWindow to gimp_draw_tool_start() (the window passed was
always gdisp->shell->canvas->window).
* app/tools/gimpbezierselecttool.c
* app/tools/gimpblendtool.[ch]
* app/tools/gimpclonetool.c
* app/tools/gimpcolorpickertool.c
* app/tools/gimpcroptool.[ch]
* app/tools/gimpeditselectiontool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmagnifytool.c
* app/tools/gimpmeasuretool.[ch]
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.[ch]
* app/tools/gimppathtool.c
* app/tools/gimprectselecttool.[ch]
* app/tools/gimptransformtool.c: changed accordingly:
- pass GimpDisplay to gimp_draw_tool_start().
- use GimpTool's new status push/pop functions.
- removed the statusbar context_id from all tool structs.
* app/gui/dialogs-constructors.[ch]: a bit cleanup in preparation
of dockable editor dialogs.
2002-01-31 Michael Natterer <mitch@gimp.org>
* app/core/gimp.c
* app/core/gimpdocuments.c
* app/core/gimpmodules.c
* app/core/gimppalette.c: fixed some get_memsize()
implementations, give useful names to some global objects so the
new mem profile of "the_gimp" looks nicer.
* app/gui/menus.c
* app/gui/commands.[ch]: added a "Debug" menu to the toolbox,
offer a mem profile of the global "Gimp" instance.
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.