2003-02-21 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformoptions.c
(gimp_transform_options_class_init): the default value of "clip"
is FALSE, not TRUE. Fixes bug #106644.
2003-02-21 Michael Natterer <mitch@gimp.org>
Refactored the GimpDisplayShell update/draw code:
* app/display/gimpdisplayshell.[ch]: removed the display_areas
list which used to hold the GimpAreas to update. Instead, simply
queue draws using gtk_widget_queue_draw[_area]() in
gimp_display_shell_expose_area(), _expose_full() and
_expose_guide(). Made all _draw() functions public because they
are now called from the "expose_event" handler. Removed rendering
from gimp_display_shell_flush() because stuff is now flushed
automatically by the gtk idle renderer.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_expose): draw everything here (the code
removed from gimp_display_shell_flush() without the GimpArea list).
(gimp_display_shell_canvas_tool_events): return "return_val", not
TRUE if gimp->busy is TRUE. Fixes unupdated (windowk bg color)
display areas. Fixes bug #106595.
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-cursor.c
* app/display/gimpdisplayshell-filter-dialog.c
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell-selection.c
* app/gui/view-commands.c: changed accordingly. Removed calls to
gimp_display_shell_flush() all over the place.
* app/display/gimpdisplayshell-scroll.c: replaced lots of code by
a single call to gdk_window_scroll().
2003-02-21 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.[ch] (gimp_table_attach_stock):
added a colspan parameter and fixed packing of the stock icon.
* app/tools/gimpselectionoptions.c
* app/tools/gimptextoptions.c: improved dialog layout.
2003-02-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfontselection-dialog.c
* app/widgets/gimpfontselection.c: connect the dialog to the font
selection widget and block the signal handler when the font is
changed from the dialog. Fixes weird behaviour noted by Jimmac.
2003-02-20 Sven Neumann <sven@gimp.org>
* libgimpbase/gimputils.c (gimp_utf8_strtrim): trim the string
only if necessary.
* app/text/gimptext.c: changed the default text to NULL.
* app/widgets/gimptexteditor.[ch]: replaced Cancel and OK buttons
with a single Close button and removed the callback.
* app/widgets/gimppropwidgets.c: gtk_text_buffer_set_text()
doesn't like NULL pointers, pass it an empty string instead.
* app/tools/gimptexttool.c: create a new text layer as soon as the
user starts editing.
2003-02-20 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimageeditor.[ch]: new GimpEditor subclass adding
a GimpImage pointer and a virtual set_image() function.
* app/widgets/gimpcolormapeditor.[ch]
* app/widgets/gimpselectioneditor.[ch]
* app/widgets/gimpundoeditor.[ch]: derive them from GimpImageEditor.
Removed the public set_image() functions.
* app/gui/colormap-editor-commands.c
* app/gui/colormap-editor-menu.c: changed accordingly.
* app/gui/dialogs-constructors.c: removed lots of code duplication
and use the uniform GimpImageEditor API. Misc cleanups.
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".
2003-02-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added a new widget constructor
gimp_prop_opacity_entry_new() which is a scale entry with a display
factor of 100.0.
* app/tools/paint_options.c: use the new opacity scale for opacity
controls.
2003-02-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added gimp_prop_preview_new().
* app/tools/gimpblendoptions.c
* app/tools/paint_options.c: use it.
2003-02-18 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/procedural_db.pdb
* app/pdb/procedural_db_cmds.c: use regfree() to free the regex
pattern buffer.
* app/widgets/gimpdnd.c (gimp_dnd_data_dest_add): unref the
GtkTargetList after adding it to the widget.
* app/core/gimpimage.c (gimp_image_get_new_preview): initialize
all fields of the mask pixel_region.
* app/core/gimpviewable.c (gimp_viewable_get_new_preview_pixbuf):
pass a destroy notifier to gdk_pixbuf_new_from_data() so that the
pixel data is freed with the pixbuf.
* libgimptool/gimptool.c (gimp_tool_class_init): register a
finalizer that unrefs the GimpToolControl object.
* app/widgets/gimpenummenu.c (gimp_enum_stock_box_new_with_range):
free the generated stock_id.
2003-02-18 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-ins.[ch]: added plug_ins_proc_def_find() which
takes a ProcRecord and returns the corresponding PlugInProcDef.
* app/plug-in/plug-in.[ch]: added a ProcRecord pointer to the
PlugIn struct so we know which procedure the plug-in is
executing. Replaced "gboolean in_temp_proc" by
"ProcRecord *current_temp_proc". Added plug_in_get_undo_desc()
which uses the new ProcRecord members and plug_ins_proc_def_find()
to return a human readable string.
* app/plug-in/plug-in-run.c: pass the ProcRecord to plug_in_new().
Set plug_in->current_temp_proc while executing a temp_proc.
(The latter won't work since we don't run temp_procs recursively
at the moment).
* app/gui/plug-in-menus.c: translate the plug-in's menu_path
before chopping it for the "Repeat" and "Reshow" menu items.
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/undo.pdb: use plug_in_get_undo_desc() when
pushing plug-in undos.
* app/pdb/drawable_cmds.c
* app/pdb/undo_cmds.c: regenerated.
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.
2003-02-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpedit.c (gimp_edit_fill): pass more detailed
undo_desc strings instead of always "Fill".
* app/core/gimpimage-mask-select.c: changed undo_desc strings
to match the already existing blurbs of the selection tools.
2003-02-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-merge.[ch]: added "const gchar *undo_desc" to
gimp_image_merge_layers() so the undo steps say "Merge Down",
"Flatten Image" etc. instead of always "Merge Layers".
2003-02-15 Larry Ewing <lewing@ximian.com>
* app/tools/gimpinkoptions.c (gimp_ink_options_gui): add a new
variable to hold the brush vbox so the we return the correct
widget.
2003-02-14 Michael Natterer <mitch@gimp.org>
Fixed most of the bugs the Script-Fu logo scripts triggered:
* app/core/gimpdrawable-bucket-fill.[ch]
(gimp_drawable_bucket_fill): added "gboolean do_seed_fill"
parameter instead of assuming TRUE.
(gimp_drawable_bucket_fill_full): moved "color" and "pattern"
parameters to the end.
* app/tools/gimpbucketfilltool.c
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimpdrawablelistview.c: changed accordingly.
* tools/pdbgen/pdb/misc_tools.pdb: only pass TRUE if the selection
is empty. Restores old PDB behaviour.
* app/core/gimpimage-undo.c (gimp_image_undo_group_end): return
early if gimage->undo_on is FALSE. Fixes bogus criticals.
* app/core/gimpimage.c (gimp_image_add_[layer|channel|vectors]):
clamp the passed position to sane values before calling
gimp_container_insert() (Scripts adding layers at wrong indices
are broken but should not crash the core).
* tools/pdbgen/pdb/paint_tools.pdb: need to copy the relevant
paint parameters from the current context now that the paint
options are contexts themselves.
* tools/pdbgen/pdb/palette.pdb: removed useless includes.
(Mostly) fixed text PDB functions:
* app/text/gimptext-compat.[ch] (text_render): don't set
text->font_size = -1 but get the size from the PangoFontDescrition.
(text_get_extents): return the logical_rect, not the ink_rect
because the size of the created text layer will be the logical_rect.
* tools/pdbgen/pdb/text_tool.pdb: removed text_fontname_create()
utility function and the usage of pass_through and implement all
invokers in-place, using the correct parameters.
* plug-ins/script-fu/siod-wrapper.c: fixed BG-IMAGE-FILL compat
define so we can BG fill again. Cleaned up color handling code.
* plug-ins/script-fu/scripts/coolmetal-logo.scm
* plug-ins/script-fu/scripts/glossy.scm
* plug-ins/script-fu/scripts/land.scm
* plug-ins/script-fu/scripts/lava.scm
* plug-ins/script-fu/scripts/test-sphere.scm: use new gradient names.
* app/pdb/misc_tools_cmds.c
* app/pdb/paint_tools_cmds.c
* app/pdb/palette_cmds.c
* app/pdb/text_tool_cmds.c: regenerated.
2003-02-14 Sven Neumann <sven@gimp.org>
* app/core/gimplayermask.c (gimp_layer_mask_duplicate): return the
duplicate, not the original mask. Fixes bug #106010.
2003-02-13 Sven Neumann <sven@gimp.org>
* app/core/core-enums.h: fixed use of proxy-resume and proxy-skip
trigraphs. We should get rid of these, they are so confusing.
* app/core/core-enums.c: regenerated.
* libgimpproxy/gimpproxytypes.h: this file was regenerated for no
good reason.
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.
2003-02-10 Manish Singh <yosh@gimp.org>
* app/plug-in/plug-in-debug.c: remove a couple unused vars
* plug-ins/common/spheredesigner.c: G_OBJECT casts not needed
for g_signal_connect.
2003-02-10 Manish Singh <yosh@gimp.org>
* app/plug-in/plug-in.[ch]: added hooks for running plug-ins under
a memory debugger. Also, removed the args array from the PlugIn
structure, replacing with simply a variable for the path to the
plug-in (and one for a precalculated basename).
* app/plug-in/plug-in-debug.[ch]: helper routines for the above
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-proc.c
* app/plug-in/plug-in-progress.c: reflect new and renamed args members
* app/plug-in/Makefile.am: added plug-in-debug.[ch]
* app/core/core-types.h: added forward declaration for GimpPlugInDebug
* app/core/gimp.[ch]: added structure member for GimpPlugInDebug
* devel-docs/debug-plug-ins.txt: documented new feature
2003-02-10 Sven Neumann <sven@gimp.org>
* app/config/gimpconfig-utils.[ch]: added new utility functions
gimp_config_connect() and gimp_config_disconnect() and documented
most functions.
* app/tools/gimptexttool.c (gimp_text_tool_connect): use the new
GimpConfig utility functions.
2003-02-10 Sven Neumann <sven@gimp.org>
* app/config/gimprc.c (gimp_rc_query): allow to query for gimp
paths (like "gimp_dir") as it used to work in 1.2.
* libgimpwidgets/gimpunitmenu.[ch]: minor code cleanup.
2003-02-10 Michael Natterer <mitch@gimp.org>
* app/tools/tool_options.[ch]: added a "const gchar *extension"
parameter to gimp_tool_options_[de]serialize(). Default to
"default" if NULL is passed.
* app/tools/tool_manager.[ch]: load the tool_options from the
default files in tool_manager_restore(), added tool_manager_save()
which saves the default files.
* app/app_procs.c: call tool_manager_save() on app exit.
* app/gui/tool-options-dialog.c: pass "user" when loading/saving
the user defaults. Changed tooltips of the load & save buttons.
2003-02-10 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.[ch]: connect to GimpTransformOptions'
"notify" signal and update grid and path drawing accordingly.
* app/tools/gimptransformoptions.c: removed the same stuff here.
Doesn't depend on the tool_manager any more.
* app/tools/gimpselectionoptions.c
* app/tools/paint_options.c: don't #include "tool_manager.h"
2003-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.[ch]: simplified everything a lot by
merging the public GimpContextPropType enum with the internal
anonymous object property id enum. Removed the internal copy_prop
functions and handle property copying in a big switch() in
gimp_context_copy_property(). Removed the separate signal
connections for each property of the parent context and do the
same using a single "notify" handler. Emit "notify" signals all
over the place. Removed internal arrays which are no longer
needed due to enum merge and copy_property simplification.
Removed the array of signal names and use g_signal_name().
Removed gimp_context_unset_parent() and allow "parent" being NULL
in gimp_context_set_parent().
* app/tools/tool_manager.c
* app/widgets/gimpdevices.c: changed accordingly.
* libgimptool/gimptooltypes.h: changed GimpToolOptionsGUIFunc to
return a GtkWidget (the created tool options widget).
* libgimptool/gimptoolmodule.c: #include <gtk/gtk.h>
* app/tools/tool_options.[ch]: removed the "main_vbox" from the
GimpToolOptions struct. Changed gimp_tool_options_gui() to create
and return the main_vbox.
* app/tools/tool_manager.c: create the "This Tool has no Options"
label here if NULL was passed as "options_gui_func". Attach the
options widget to the tool_options object using
g_object_set_data().
* app/gui/tool-options-dialog.c: changed accordingly.
* app/tools/gimpairbrushtool.c
* app/tools/gimpblendoptions.[ch]
* app/tools/gimpbucketfilloptions.[ch]
* app/tools/gimpclonetool.c
* app/tools/gimpcolorpickeroptions.[ch]
* app/tools/gimpconvolvetool.c
* app/tools/gimpcropoptions.[ch]
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimpflipoptions.[ch]
* app/tools/gimpinkoptions.[ch]
* app/tools/gimpmagnifyoptions.[ch]
* app/tools/gimpmeasureoptions.[ch]
* app/tools/gimpmoveoptions.[ch]
* app/tools/gimpselectionoptions.[ch]
* app/tools/gimpsmudgetool.c
* app/tools/gimptextoptions.[ch]
* app/tools/gimptransformoptions.[ch]
* app/tools/gimpvectoroptions.[ch]
* app/tools/paint_options.[ch]: return the options vbox from
all tool_options_gui functions.
2003-02-08 Sven Neumann <sven@gimp.org>
* app/text/gimptext.c
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpselectionoptions.c
* app/tools/gimptextoptions.c: use N_() instead of _() with blurbs
of object properties. GimpConfig wants the untranslated string as
well.
* app/widgets/gimpenummenu.c
* app/widgets/gimppropwidgets.c: added gettext() calls.
* app/config/gimpconfig-serialize.c: document the fact that
gimp_config_serialize_comment() only handles ASCII comments.
2003-02-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectioneditor.c: changed include to follow
selection options change. Don't use the tool_manager to find
by_color_select's options.
2003-02-08 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-serialize.c (gimp_config_serialize_property):
the virtual serialize_property() returning FALSE doesn't mean the
serialization failed but that the function didn't handle the
property, so don't error but continue with the default
implementation. Print newlines after properties only if
indent_level == 0.
* app/gui/tool-options-dialog.c: added tool options saving/loading
as quickly hacked proof-of-concept.
* app/paint/paint-enums.[ch]: added enum GimpInkBlobType.
* app/tools/gimpinkoptions.[ch]: ported to object properties,
cleanup.
* app/tools/gimpinktool.c: changed accordingly.
2003-02-06 Sven Neumann <sven@gimp.org>
* app/gui/image-menu.c (image_menu_entries): removed /Filters/Text
menu branch now that we don't install any plug-in there and
gimp-freetype is becoming obsolete.