* app/gdisplay.c
* app/gimage_cmds.c
* tools/pdbgen/pdb/gimage.pdb: fixed typos
* app/gimphistogram.c: indentation
* app/histogramwidget.c: grab the pointer in the histogramwidget,
so a button_release outside the widget is noticed correctly
* app/levels.c: instead of undoing the user action, simply don't
allow the user to set the range in the histogram_widget
--Sven
2000-01-05 Garry R. Osgood <gosgood@idt.net>
*app/undo.c: GimpChannel->bounds_known field on the
image Selection Mask channel was never invalidated when restored
via undo_pop_channel_mod(). Caused PixelRegion iterators calculating
new selection boundaries to use cached image dimensions, thereby
trying to access tiles non-existent in the scaled-down image.
Closes#4840.
2000-01-04 Tor Lillqvist <tml@iki.fi>
* libgimp/makefile.{cygwin.msc}: Add gimpcolorspace object.
* libgimp/gimp.def: Add functions from it.
Fixes from Hans Breuer:
* app/datafiles.c: redefine the executable flag for Win32
to _S_IREAD, to get _all_ files from the plug-in dirs as
executables (including scripts)
* app/main.c: Win32-specific changes to allow building Gimp as a
console application, with all its benefits (like inheriting the
console), but hide it if the user doesn't want it. Also, if stdout
goes to a console, give the user a chance to read the help or
version messages. (tml: I am not convinced that it is better to
build gimp as a console application, but let's try it this way for
a while.)
* app/makefile.{cygwin,msc}: Build as console application, and
link with shell32 library.
* app/paint_core.c (paint_core_motion): Pass the value of a call
to the function gimage_active_drawable() to the paint_func,
instead of just passing the address of gimage_active_drawable...
(tml: This code is only called when the TOOL_TRACES_ON_WINDOW flag
is on, and only the clone tool sets that, and the clone tool's
paint_func doesn't use the drawable argument, so this hasn't
caused any trouble.)
* app/plug_in.c: On Win32, to support scripts, use new function
xspawn() instead of _spawnv. Add some more code to properly kill
plug-ins.
* libgimp/color_display.h: Add G_MODULE_EXPORT declarations.
* libgimp/gimpcolorspace.c
* libgimp/gimpcolorspace.h: Prefixed all functions with gimp_
to avoid namespace collisions.
Changed the License in the header to LGPL. If you don't like this,
please remove those files! (But I would like them to stay since this
moving those functions into libgimp is something that should have
happened much earlier.) Nice work, Daniel!
* Makefile.am: cosmetic fix
* libgimp/color_display.h
* modules/cdisplay_gamma.c: add clone method
* app/color_area.[ch]
* app/gdisplay.[ch]
* app/gdisplay_color.c
* app/gdisplay_color_ui.c: preliminary support for color_area filter
(really just a sync to home machine)
* app/nav_window.c: minor cleanup
* tools/pdbgen/app.pl: initialize gbooleans to FALSE, not 0
* tools/pdbgen/lib.pl: some more arg work
-Yosh
* app/gimpdrawable.c: added an assert for name != NULL
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/layer.pdb: sanity check the name parameters
-Yosh
* app/tile.c
* app/tile.h
* app/tile_manager.c
* app/tile_swap.c:
Allocate Tile's array of TileRowHints dynamically. Make type
of TileRowHint explicit since it's fairly space-critical.
Can save several hundred K of memory with this and struct
changes.
Added warnings for old basically-untested-or-insane
paths through the tile referencing code.
* app/tile_pvt.h: Shrink down and rearrange fields of Tile
struct to save some space with gcc's padding for most people.
* app/paint_funcs.c: Use tile_sanitize_rowhints() to ensure
that rowhints have been allocated before use.
* app/channel_ops.c
* app/gdisplay.c
* app/pixel_region.c: Cosmetic, sanity or unfinished debug
changes (the latter commented out) for fun and reference.
Fri Dec 10 23:55:10 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/iscissors.c: fix problem with layers with non-zero offset.
* app/undo.c: Garry, you missed one "0 -> UNDO_NULL" cleanup :)
1999-12-10 Garry R. Osgood <gosgood@idt.net>
* app/gimpimage.c
* app/undo.c
* app/undo_types.h
* docs/undo.txt
Changed sanity checks in undo_pop/free_layer_mask() to LAYER_MASK_ADD_UNDO
and LAYER_MASK_REMOVE_UNDO to be consistent with undo_push_layer_mask()
These now nvoke proper cleanup and release of GimpLayerMasks.
* docs/undo.txt: New file, an overview of undo logic written by
Austin Donnelly
* app/undo.c
* app/undo_types.h
* app/gimpimage.c : Introduced a new UndoType, UNDO_NULL, which maps
to zero, introducing that value into the enumerated types. Use the
type to signal type unknown/error/untyped conditions.
Full patch documentation at
http://idt.net/~gosgood/gimp-patch/patch02.html
Mon Nov 29 23:51:26 GMT 1999 Andy Thomas <alt@gimp.org>
* app/commands.c
* app/disp_callbacks.c
* app/gdisplay.c
* app/gimprc.c
* app/gimprc.h
* app/info_window.c
* app/info_window.h
* app/preferences_dialog.c
* app/undo_history.c
Info dialog now has option to follow the mouse movements or
the old behaviour of one dialog per display.
This dialog still needs some work.
Undo dialog now obeys the "tab" key in the display.
1999-11-26 Michael Natterer <mitch@gimp.org>
* app/blend.c: accidentially replaced "Gradient:" with "Blend:" in
my last checkin to this file. Put the right string back.
* app/menus.c: fixed the plugin translation problem (YES!!! :-)
Mysteriously, using g_strdup() et al. instead of composing the
string to translate in a statically allocated array fixed the
problem.
* plug-ins/gap/gap_main.c: fixed a menu path.
1999-11-25 Michael Natterer <mitch@gimp.org>
* app/menus.c: Removed the definitions of the tearoff menu items
and build them on the fly. Added N_()-marked submenus instead so
they get properly translated. Removed N_() from all separators.
Hacked menu_translate(): Don't try to translate separators,
tearoffs and the /File/MRUxx entries. Avoid multiple lookups in
the "gimp-std-plugins" domain. Translating plug-in menu entries is
still broken.
Defined all filter categories for proper translation and a first
try to order them and to add separators (please comment...).
New Category /Filters/Web.
(Did 'make update-po' in the po* directories and updated the
german translations.)
* app/about_dialog.c
* app/brush_select.c
* app/drawable.c
* app/errors.c
* app/free_select.c
* app/gradient.c
* app/info_dialog.c
* app/plug_in.c
* app/tool_options.c: minor i18n updates like removing _() from
some error messages.
* app/context_manager.c: a private context for the Xinput Airbrush.
* plug-ins/common/video.c: Register under /Filters/Distorts
* plug-ins/imagemap/imap_main.c: Register under /Filters/Web
(Marc, what about putting "prepare for gif" and "webify" there?)
* plug-ins/perl/po/de.po: s/Xtn/Xtns/g
* configure.in: version number bump; add check for standalone
gtkxmhtml from Sesse
* app/gimppreviewcache.c: applied gimp-yasuhiro-19991122-1, prevents
div by zero error
* plug-ins/script-fu/script-fu-scripts.c: INIT_I18N_UI before
gtk_init, reported by yasuhiro
* plug-ins/common/mapcolor.c
* plug-ins/common/sunras.c
* plug-ins/fits/fits.c: applied gimpkirchgessner-991121-[0-2],
i18n and sundry bug fixes
-Yosh
1999-11-23 Michael Natterer <mitch@gimp.org>
* app/app_procs.c
* app/channels_dialog.c
* app/fileops.c
* app/gdisplay.c
* app/gdisplay_ops.c
* app/layers_dialog.c
* app/menus.[ch]
* app/paths_dialog.c
* app/plug_in.c: removed
menus_set_[sensitive|state]_glue(). Removed the N_()'s from all
menu paths which are not eventually passed to
gtk_item_factory_create_item().
* app/tool_options.c: minor updates.
* app/file_new_dialog.c: reordered the action_area buttons.
Mon Nov 22 13:18:40 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/channel_ops.c: Disabled the copy-on-write for gimage
projection. Duplicate op will now take as much time and
memory as GIMP 1.0 in this respect. That sucks, but I'm
damned if I can follow the twisted paths which GIMP treads
in making this bahave badly. Can you?
Mon Nov 22 11:19:05 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/convert.c: Removed erroneous spin-button limit, bumped
up RGB->INDEXED precision a little.
1999-11-20 Michael Natterer <mitch@gimp.org>
Reorganized the core menu items (everything except
<Image>/Filters). Everything is of course trivial to change again,
so please comment on the new "menu feeling" ;-)
* app/menus.[ch]:
- Applied the suggestions collected by Olof.
- Added "..." to all items which open a dialog.
- Introduced some additional separators (e.g. in "Dialogs").
- Reorder some plugins and the color correct tools after
initialisation.
- A menu entry to invoke the tooltips inspector.
- A debugging menu entry which dumps the menu paths and their help
pages (will of course go away when the help sys is consistent).
There are currently two identical "Help" menus because
<Toolbox>/Help trashes the menu bar if the toolbox is too narrow
(gtk doesn't seem to support multi-line menubars, any idea?)
* app/app_procs.c: call menus_reorder_plugins() after loading the
plugins to beautify the "Xtns" menu.
* app/commands.[ch]: reordered some functions to match the new
menu structure (for easier source navigation) and renamed some to
be consistent (e.g. all help functions are now called help_*).
Show/Hide the rulers with ordinary gtk_widget_[show|hide]()
commands. I've tested it several times and it looks exactly the
same as the old code which used internal gtk knowledge.
* app/gdisplay.c: applied the menu changes to
gdisplay_set_menu_sensitivity().
* app/gimphelp.[ch]: new public function gimp_context_help() which
invokes the tooltips inspector. Code cleanup.
* app/resize.c: changed the dialogs' titles to match the menu entries.
* app/session.c: renamed the gradient selection cmd callback to be
consistent with brushes/patterns.
* app/tools.c: added "..." to the menu paths of the tools which
have dialogs.
* app/fileops.c
* app/channels_dialog.c
* app/layers_dialog.c
* app/paths_dialog.c: added some "...".
* plug-ins/common/align_layers.c
* plug-ins/common/autostretch_hsv.c
* plug-ins/common/c_astretch.c
* plug-ins/common/color_enhance.c
* plug-ins/common/compose.c
* plug-ins/common/decompose.c
* plug-ins/common/mail.c
* plug-ins/common/normalize.c
* plug-ins/common/threshold_alpha.c
* plug-ins/dbbrowser/dbbrowser.c
* plug-ins/fp/fp.c
* plug-ins/print/print.c
* plug-ins/rcm/rcm.c: changed the menu paths and added "...".
2nd Try.. First failed due to problems at my end....
Sat Nov 20 00:27:26 GMT 1999 Andy Thomas <alt@gimp.org>
* app/commands.c
* app/gdisplay.c
* app/gimprc.c
* app/gimprc.h
* app/nav_window.c
* app/nav_window.h
* app/preferences_dialog.c
* app/scale.c
* app/scroll.c
Nav dialog now follows auto. There is an option in the
preferences dialog (interface) that allow you to switch
between this behaviour and the "original" way of having
one nav dialog per display.
1999-11-14 Michael Natterer <mitch@gimp.org>
* app/airbrush.c
* app/apptypes.h
* app/brushes_cmds.c
* tools/pdbgen/pdb/brushes.pdb
* app/bucket_fill.c
* app/clone.c
* app/gimpbrushpipe.c
* app/paint_core.c
* app/patterns.h
* app/patterns_cmds.c
* tools/pdbgen/pdb/patterns.pdb: removed the GimpBrushP and
GPatternP types and use ordinary pointers instead.
The following stuff makes the "no_data" behaviour consistent. As a
side-effect it should make the gimp work when there are _really_ no
brushes/patterns/gradients.
* app/brush_select.c
* app/pattern_select.c: set the initial brush/pattern name to "No
Brushes/Patterns available" instead of "Active".
* app/devices.c: set the device contexts' brush/pattern/gradient
names if we started with no_data, so we find them on refresh.
* app/gimpbrushlist.c: set the name of the standard_brush to
"Standard".
* app/gimpcontext.c: don't replace the current
brush/pattern/gradient's name if the new one to be set is the
standard one. Together with the change in devices.c, this ensures
that we get what is set in devicerc. Minor fixes.
* app/gradient.c: changed gradients_init() to work like the other
data init functions. Only insert a default gradient in the
gradients list when the editor is opened (this means that the
gradients now behave like brushes/patterns when we start with
"no_data").
New function gradient_update() avoids tons of useless redraws of
all clist gradient previews whenever the gradient editor wants to
update it's large preview.
* app/gradient_select.c: don't segfault when the user tries to
drag from an empty gradient list.
* app/patterns.c: set the index of the standard_pattern to -1 to
indicate that it's not part of the pattern list.
* app/airbrush.c
* app/convolve.c
* app/dodgeburn.c
* app/paint_options.h
* app/paintbrush.c
* app/pencil.c
* app/smudge.c
* app/tool_options.c: cleaned up pressure sensitivity for paint
tools. I had to rename Pressure to Rate in a few tools to avoid
confusion with the Pressure option that applies to the brush.
* app/gimplut.c: indentation, no changes
--Sven
* app/edit_selection.c: when moving layers/masks freeze the undo
after the first move to avoid that each and every small movements
puts an undo on the stack. Significantly speeds up layer moves
and especially the undo of a layer move.
* app/gdisplay.h: correct rounding errors
* app/gimpimage.c: correctly display floating selections in the
composite_preview instead of ignoring them
* app/channels_dialog.c
* app/layers_dialog.c
* app/lc_dialog.c: s/gtk_widget_draw/gtk_widget_queue_draw/
--Sven
* app/channel.c: get rid of compiler warnings
* app/histogram_tool.c
* app/histogram_tool.h: added a gradient below the histogram so
it looks more like the curves and levels tool
* app/gimpbrushpipe.c
* libgimp/parasiteio.c
* libgimp/parasiteio.h: plugged another mem-leaks. At least
The GIMP now starts without leaking memory...
--Sven
Wed Nov 3 22:36:21 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/text_tool.c: tag text undo group with TEXT_UNDO rather than
silly EDIT_PASTE_UNDO.
* app/undo.c: TEXT_UNDO name
* undo_types.h: new type: TEXT_UNDO, plus fix numbering to make it
consistent (overlapping enums are bad).
Tue Nov 2 22:50:31 GMT 1999 Andy Thomas <alt@gimp.org>
* app/undo.h
* app/undo.c
* app/undo_history.c
* pixmaps/question.xpm
Fixed undo history so it shows a dummy image if the preview
image has not already been generated. The actual image
could probably do with an artists hand ;-)
Also mask operations are shown as such in the previews.
* app/lc_dialog.c
Fixed rounding error in preview when width << height.
* plug-ins/common/jpeg.c
Always freeze the undo stack for any of the image export types.
Anyone know why this was not the case to start with?
1999-10-30 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.c
* app/undo_history.c: remove the remaining defines of
GRAD_CHECK_SIZE and include libgimp/gimplimits.h instead.
* app/undo_history.c: connect to the image's "rename" signal to
update the window title.
* app/disp_callbacks.c
* app/gdisplay.c
* app/info_window.[ch]: did the same for the info dialog.
The info window has to remember the gdisplay to disconnect from
the image's "rename" signal, so I removed the gdisplay parameter
from the update functions.
Thu Oct 28 23:22:34 BST 1999 Andy Thomas <alt@gimp.org>
* app/gimpimage.c
Fixed memory leak with image is deleted.
* plug-ins/common/jpeg.c
Fixed the way the plugin added layers. Preview stuff does not now
get corrupted.
* app/xcf.c: add "(GIMP)" to the menu entry for XCF, in an attempt
to make it clear that it is the native file format.
* app/gimpcontext.c: correct doubled arg name on arg type addition,
which was messing up the internal gtkarg hashtable
-Yosh
* app/gimpimage.c: don't free the old filename pointer till we're
all done, since we might be passed our own filename as a param
and reference it after freeing. The code didn't heed it's own
warning ;) (TigerT, this should fix that filename corruption bug)
-Yosh
* libgimp/gimpexport.c: get rid of remaining (invisible) layers
after merging visible layers
* app/channel_ops.[ch]: applied a patch from Garry R. Osgood that
seems to fix bugs #2261 and #2382 (crashes when using offset).
A few more changes made the dialog actually work...
* app/ops_buttons.c: plugged a memleak I introduced yesterday
--Sven
* libgimp/gimpexport.c: handle CAN_HANDLE_LAYERS_AS_ANIMATIONS
correctly
* app/scan_convert.c: trivial optimizations
* app/nav_window.c: applied the patch from Shuji Narazaki that makes
the navigation window work with tablets. Fixed some rounding errors
and stopped the flicker.
--Sven
Tue Oct 19 21:50:52 BST 1999 Andy Thomas <alt@gimp.org>
* app/layer.c
Fixed rounding error in preview generating code that
produced dithering where no dithering should have been!
1999-10-19 Michael Natterer <mitch@gimp.org>
* gimpcontext.[ch]: changed the "parent context" implementation:
- Automatically connect/disconnect the "*_changed" signals when
changing the parent and when setting the "defined" flag of the
attributes.
- Store the former *_defined booleans in a single guint32.
- Added generic functions to set the "defined" flags of the
attributes and to copy attributes between contexts.
The contexts now correctly handle disappearing images and
displays, so we don't have to explicitly reset them any more.
* context_manager.[ch]: adopted to the changed context
implementation, connect to the user context's "tool_changed"
signal to switch the per-tool contexts, don't connect to the
"removed" signal of the image context.
* brush_select.c
* tool_options.c: use LayerModeEffects instead of int when calling
gimp_context_set_paint_mode().
* gdisplay.c: no need to reset the active display when deleting it
because the context connects to the "destroy" signal of the shell
now.
* menus.c: a shortcut for the navigation window. Moved
<Image>/Image/Colors/Desaturate before the separator.
* tools.c: tools_select(): set the active tool of the user context
instead of calling a special context manager function.
Mon Oct 18 21:24:47 BST 1999 Andy Thomas <alt@gimp.org>
* app/bezier_select.c
* app/edit_selection.c
* app/flip_tool.c
* app/gimage_mask.c
* app/paths_dialog.c
* app/paths_dialogP.h
* app/undo.c
* app/tools.h
* app/tools.c
1) Fixed some problems with the paths tool. Now the tool suboption
"new point" is selected automatically when appropriate. Eg if you
have the "add point" suboption selected and click on a point
not on the curve the "new point" option will become selected and the
new point will be added.
2) The "new point" option is defaulted to on when a new image is created or a new image is selected from the image menu.
3) Move and flip tool now effect the path if it is locked.
4) Edit stroke now uses the currently selected tool as it should do
when stroking.
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpsignal.[ch]: new GimpSignalType gimp_sigtype_int_int_int.
* app/gimpcontext.[ch]: set/get colors as separate r/g/b values
instead of a guchar[3] array.
The "[foreground|background]_changed" signal handlers must have
the following signature now:
color_changed_callback (GimpContext *, gint, gint, gint, gpointer).
1999-10-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added the possibility to store the current
tool, FG/BG color, brush, pattern and gradient, but don't use
these attributes yet.
Before replacing the get/set color/brush/... functions with
context functions, I'll have to change the "parent context"
implementation to something where the children catch the parent's
color/brush/..._changed signals.
Finally, updating the indicator_area, device_status, tool_options
etc. will be done by connecting to their own context's "*_changed"
signals, which will be much cleaner than calling the update
functions from various places.
(I think this is a "consistency fix", please let me know if you
consider it a new feature).
Wed Oct 13 21:37:51 BST 1999 Andy Thomas <alt@gimp.org>
* app/crop.c
* app/sca_convert.c
Fixes to memory problems (use of freed memory references) found
by running with dmalloc.
* app/paths_dialog.c
Locking of multiple paths are now displayed correctly in the
transform tool.
Tue Oct 5 14:02:07 EDT 1999 Austin Donnelly <austin@gimp.org>
* app/iscissors.c: all-singing, all-dancing iscissors. Now
scan converts so you can actually select stuff. Doesn't leak
tiles either. Still have a problem with occasional segfault
and CRITICAL assertion failing on addition of anchor when
curve not closed.
* app/scan_convert.c: add connecting list between blocks of points
so we actually have a closed polygon.
* app/tool_options.c: iscissors has just the standard feather and
antialias options now.
* libgimp/color_display.h
* app/gdisplay.c: add bpl param for convert func
* gdisplay_color.c: guard against head and tail cases in reorders
* app/gdisplay_color_ui.c: expose_full on all actions, so there is
immediate feedback. Check for no selection and do nothing on actions
* app/path_tool.c: #warning is not portable; change to /* XXX: */
* modules/cdisplay_gamma.c: make it so it actually works properly
-Yosh
* app/app_procs.c
* app/gdisplay_color.[ch]
* app/gdisplay_color_ui.c: make the ui usable
* app/gdisplay.c: enable cdisplay support
* modules/Makefile.am
* modules/cdisplay_gamma.c: moved gamma functionality to separate
-Yosh
Mon Oct 4 01:46:46 EDT 1999 Austin Donnelly <austin@gimp.org>
NEW FILES:
* app/scan_convert.c
* app/scan_convert.h: common code from free_select.c and
bezier_select.c
MODIFIED FILES:
* app/disp_callbacks.c: Fix for bug #2517 - dragging colour swatch
to image with no layers causes segfault. Something is
repainting empty images as white rather than chequerboard as
well, which still needs fixing.
* app/free_select.c: move code out to scan_convert.c
* app/free_select.h: use ScanConvertPoint not FreeSelectPoint
* tools/pdbgen/pdb/tools.pdb: ScanConvertPoint again
* app/tools_cmds.c: generated version of above.
1999-10-03 Michael Natterer <mitch@gimp.org>
The GIMP Help System part II: press "F1" while browsing a menu
to show the help page for the menu entry you're currently over
with the mouse.
* app/color_notebook.c: all color selectors have to register with
a help page now.
* app/color_select.[ch]: register with a help string. Removed
the dialog part of the files because it's use was deprecated
anyway (use color notebooks instead).
* app/colormap_dialog.i.c
* app/colormap_dialog.p.h
* app/palette.c
* app/palette_select.c: use a color notebook instead of a color
selector.
* app/gimphelp.c
* app/gimpui.c: minor changes.
* app/gimprc.c: "use help" defaults to TRUE now.
* app/lc_dialog.c
* app/lc_dialogP.h: a special help function which shows the help
for the currently selected notebook page.
* app/menus.c: some weird code which catches "key_press_event"
in all menu shells and pops up the corresp. help page for the
selected item. Embedded the GtkItemFactoryEntry in a new
GimpItemFactoryEntry to allow a help path to be stored.
Will be partially exported and moved to gimphelp.[ch] later to
catch key_press for plug-in menu items (don't try this now ;-)
* app/app_procs.c
* app/brush_edit.c
* app/brush_select.c
* app/channel_ops.c
* app/channels_dialog.c
* app/commands.c
* app/convert.c
* app/devices.c
* app/file_new_dialog.c
* app/fileops.c
* app/gdisplay.c
* app/gdisplay_color.c
* app/gdisplay_color_ui.c
* app/gdisplay_ops.c
* app/global_edit.c
* app/gradient.c
* app/gradient_select.c
* app/interface.c
* app/layers_dialog.c
* app/module_db.c
* app/paths_dialog.c
* app/pattern_select.c
* app/preferences_dialog.c
* app/qmask.c
* app/resize.c
* app/undo_history.c: changed all dialog constructors to point
to the right place in the new help file structure.
* configure.in
* help/*: the basic new help file structure.
* modules/colorsel_gtk.c
* modules/colorsel_triangle.c
* modules/colorsel_water.c: register a help page.
* plug-ins/helpbrowser/helpbrowser.c: load the help files
according to the new help file structure.
Fri Oct 1 19:05:04 EDT 1999 Austin Donnelly <austin@gimp.org>
* app/gimpimage.c: Factored out common code from
gimp_image_{raise,lower}_layer and
gimp_image_{raise_layer_to_top,lower_layer_to_bottom}. They
now call gimp_image_position_layer() to do the real work.
* app/gimpimage.h: gimp_image_position_layer() takes extra arg to
tell whether an undo should be pushed.
* app/layers_dialog.c: reposition layer with undo.
* app/undo.c: new undo type for layer reposition. Layer rename
shouldn't dirty and clean the image twice!
* app/undo.h: prototype for undo_push_layer_reposition().
* app/undo_types.h: LAYER_REPOSITION_UNDO type.
Fri Oct 1 12:46:12 1999 Austin Donnelly <austin@gimp.org>
* gimprc.in: comment typo fix, plus add %D* to default
image-title-format string, so people get a '*' in the titlebar
if their image is dirty.
* app/fileops.c: initialise filename before using it.
* app/gdisplay.c: empty parameter list () is K&R - should be
stronger (void) in ANSI C.
* app/gimpdrawable.c: gimp_drawable_{dirty,clean} functions
removed - no one uses them anyway. Parasite undo type is
proper parasite undo type, not MISC_UNDO.
* app/gimpdrawableP.h: drawable dirty bit removed.
* app/gimpimage.c: don't change the resolution if there's no
difference from the old one. Call gdisplay_shrink_wrap() to
re-calculate scale factors and refresh the display on
resolution change. Layer undo doesn't have sub-types
anymore, uses main UndoType instead.
* app/layer.h: Remove LayerUndoType
* app/qmask.c: fix qmask undo so it actually works.
* app/undo.h: new types for undo_push_layer{,_mask} and
undo_push_qmask.
* app/undo.c: change way group boundaries are represented:
each Undo has a group_boundary boolean set to TRUE if this is
the start or the end of a group, and the type of the Undo is
the group's type. Within a group, each Undo keeps its own
type. This allows pop funcs and free funcs to do
type-specific things (eg needed by layer and channel stuff).
Don't maintain per-drawable dirty flags anymore. Floating
sel to layer and layer rename now uses meaningful undo types.
* app/undo_types.h: more specific undo types:
LAYER_{ADD,REMOVE}_UNDO, LAYER_MASK_{ADD,REMOVE}_UNDO,
LAYER_RENAME_UNDO, and PARASITE_{ATTACH,DETACH}_UNDO.
* app/undo_history.c: oops - undo stack was being placed into gtk
list in wrong order.
* app/edit_selection.c: push more descriptive LAYER_DISPLACE_UNDO
rather than MISC_UNDO.
* app/layers_dialog.c: better tagging of undo types
* app/main.c: revert that last set_locale change, it was bogus
* app/gdisplay.c: don't update menu sensitivities when flushing
immediately, so that painting isn't slowed by it
-Yosh
1999-09-27 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gimphelp.[ch]
* app/gimpui.[ch]: new files
* app/interface.[ch]
* app/preferences_dialog.[ch]
The GIMP Help System part 1: Press "F1" in any dialog to pop up
the help page for this dialog.
Moved the widget constructors from preferences_dialog.[ch] and the
query boxes from interface.[ch] to gimpui.[ch].
The dialog constructors take a help_func and a help_data
parameter and install the "F1" accelerator which emits the new
"help" signal.
The "help" signal callback calls help_func(help_data) which finally
has to call gimp_help() which in turn invokes the help browser.
Still have to find a proper way to (1) prevent "F1" being assigned
to some menu item and (2) to catch "F1" while browsing the menu
trees in order to pop up the help for the selected item.
* app/menus.c: a <Toolbox>/File/Help... menu item.
* app/commands.[ch]: a command callback for the "Help..." menu item.
* app/gimprc.[ch]: new boolean gimprc variable "use_help".
* app/info_dialog.[ch]: pass a help function and data to the info
dialog constructor.
* app/tools.[ch]: store the tools help page names in the tool info
structure. Export a special tools_help_func() which shows the help
page for the active tool.
* app/[all files calling a dialog constructor]: pass the dialog's
help page to the constructor.
Most dialogs are now created by gimp_dialog_new() which also sets
up the action_area and the WM delete event callback, so I removed
the resp. code from these files.
Fixed some minor bugs and did some other stuff but didn't change
any logic except dialog creation.
* plug-ins/helpbrowser/helpbrowser.c: don't try to call a running
help browser and don't install any menu path (all done in
app/gimphelp.[ch] now).
Shame on the one who decided it would be good idea to load pixmap brushes
as pipes, it destroys the whole purpose of the GIMP_IS_BRUSH_PIPE macro!!
--Sven & Jtl
* app/channel.h
* app/gimpimage.h
* app/gimpimageP.h
* app/layer.h
* app/undo.[ch]
* app/undo_types.h: use proper naming convention for undo enums,
and hide them from the pdbgen stuff
* app/procedural_db.h: don't skip PDB_END
* app/undo_history.c: remove gccism from undo_history_append_special
* libgimp/gimpintl.h: INIT_LOCALE should be defined in all cases
* plug-ins/script-fu/Makefile.am: add script-fu-constants.[ch]
* plug-ins/script-fu/script-fu.c: use init_generated_constants
* plug-ins/script-fu/siod.h: #include <stdio.h> for FILE *
* tools/pdbgen/script-fu.pl: new file
* tools/pdbgen/Makefile.am: add rule for constant script-fu gen
* tools/pdbgen/enumgen.pl: add enum skip feature
* tools/pdbgen/lib.pl: use nicks for gimpenums.h
* tools/pdbgen/pdb/procedural_db.pdb: ignore PDB_END
-Yosh
Mon Sep 20 12:51:30 EDT 1999 Austin Donnelly <austin@gimp.org>
Honest, guv, it's not a feature - it's a tightly integrated
package of undo system cleanups and fixes.
NEW FILES:
* app/undo_history.c: window showing recent undo (and redo) steps
available.
* app/undo_types.h: broken out of undo.h to fix circular includes.
MODIFIED FILES:
* app/Makefile.am: compile undo_history.c
* app/channel.h: use enum for channel undo type, not just magic
numbers.
* app/layer.h: same for layer undos.
* app/commands.c: edit_show_undo_history_cmd_callback() function to
pull up undo history window.
* app/commands.h: prototype for above.
* app/gdisplay.c: make undo / redo menu items sensitive according
to whether they would do anything. Would be easy to change
the text to say what would be undone/redone, but I don't know
the GTK.
* app/gimpimage.c: new signal emitted by gimage:
UNDO_EVENT. gimp_image_undo_event() function to emit it.
* app/gimpimage.h: prototype for above.
* app/gimpimageP.h: pushing_undo_group member is now an undo_type,
not an int. Keep undo history widget here too (if created).
* app/menus.c: add "Edit/Undo history..." to image menu.
* app/undo.c: new types: enums undo_type and undo_state rather than
ints and magic numbers. All undo_pop_* and undo_free_*
functions made static. New static function
undo_type_to_name(). Issue undo event signals on various
important events (eg undo pushed, undo popped etc).
undo_push() now takes a "dirties_image" arg to say whether
image should be dirtied. Layer moves now dirty the image. A
couple of g_return_if_fails () on undo_pop and undo_redo to
assert we're not in the middle of an undo group.
undo_get_{undo,redo}_name() to peek at names of top items on
undo and redo stacks resp. undo_map_over_{undo,redo}_stack()
to run a function for each item or group on stack. Layer and
channel undos use symbolic names rather than 0 or 1. Array
mapping undo types to names.
* app/undo.h: split out undo types to undo_types.h. Prototypes
for functions described above. undo_event_t enum.
undo_history_new() prototype lives here too.
Random other fixes:
* app/gimpdrawable.c
* app/image_render.c: default labels in switches to keep egcs happy.
* app/nav_window.c: some fixes to (sort of) cope with image res !=
screen res. Still needs work to handle non-square pixels
properly.
* app/paths_dialog.c: bad idea to call gimp_image_dirty()
directly. Even though it's currently commented out.
Sat Sep 11 22:45:12 BST 1999 Andy Thomas <alt@gimp.org>
* app/nav_window.c
* app/floating_sel.c
Hopefully fix for nav_popup when using tablets.
Also applied the patch supplied by Garry R. Osgood. Thanks.
Sat Sep 4 23:21:10 BST 1999 Andy Thomas <alt@gimp.org>
* app/gdisplay.c
* app/gdisplay.h
* app/gimprc.h
* app/gimprc.c
* app/nav_window.c
* app/nav_window.h
* app/preferences_dialog.c
The nav preview size can now be configured. The size applies
to both the "popup" and dialog window.
* app/gtkhwrapbox.[ch]
* app/gtkwrapbox.[ch]: sync from gle
* app/inteface.c: set allow_shrink on the toolbox window, use
gtk_hwrap_box_new
* app/blend.c: use shift to constrain to 45 deg: XachCode (tm)
-Yosh
* app/app_procs.c: free the brush dialog before freeing the brushes.
* app/blend.c, app/bucket_fill.c: don't include brush_select.h
* app/brush_select.[ch]: add the ability to delete generated brushes.
* app/gimpbrushgenerated.c: save the brush parameters on seperate lines.
* app/gimpbrushlist.c: make sure we don't overwrite other brush
files when saving newly created brushes.
* libgimp/Makefile.am: add gimpmath.h
* app/gtkwrapbox.[ch]
* app/gtkhwrapbox.[ch]: wrapbox widget from gle
* app/Makefile.am: added those files
* app/interface.c: use an hwrapbox for the toolbar. Still not perfect
yet, working on it.
* app/gimpdrawable.c
* app/about_dialog.c
* app/airbrush.c
* app/blend.c: some minor code cleanup
-Yosh
1999-09-02 Tor Lillqvist <tml@iki.fi>
* libgimp/parasiteio.[ch]: New files. Types and functions related
to "standard" parasite types. Used for the
gimp-brush-pipe-parameters parasite that the gpb and psp plug-ins
handle, and the value of which is stored in gih files, from
which gimpbrushpipe.c parses it.
* libgimp/{Makefile.am,makefile.{cygwin,msc}}: Add new files.
* libgimp/gimp.def: Add its entry points.
* libgimp/gimp.h: Fix cosmetic argument name error.
* app/gimpbrushpipe.c: Remove code that previously
was copied here, use functions from parasiteio.c.
* plug-ins/common/gpb.c: Ditto. Add brush cell width and height
fields to the gih save dialog. Add cleverness to update rows and
columns as cell size is changes. (Still too easy for the user to
get confused, though.) Display corresponding guide grid on the
image. Unfortunately updating the guidelines doesn't seem to work.
* plug-ins/common/psp.c: Use functions from parasiteio.c.
Wed Sep 1 23:18:21 BST 1999 Andy Thomas <alt@gimp.org>
* app/gdisplay.c
* app/gdisplay.h
* app/interface.c
* app/nav_window.c
* app/nav_window.h
* pixmap/navbutton.xpm (new)
New popup navigation window. press the icon that appears in
the bottom right-hand corner of the image display. A navigation
window will appear that will allow you to scroll around the image if
the area shown is smaller than the overall image size. Thanks to tml
for the idea.