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.
1999-09-01 Tor Lillqvist <tml@iki.fi>
* app/appenv.h
* libgimp/gimpmath.h: New file. Includes <math.h>. Move G_PI,
RINT(), ROUND() etc from app/appenv.h here, so plug-ins can
use them, too. Remove some commented-out old stuff in appenv.h.
* libgimp/gimp.h: Include gimpmath.h.
* libgimp/gimp.c (gimp_main): Win32: Don't install signal
handlers, we can't do anything useful in the handler ourselves
anyway (it would be nice to print out a backtrace, but that seems
pretty hard to do, even if not impossible). Let Windows inform the
user about the crash. If the plug-in was compiled with MSVC, and
the user also has it, she is offered a chance to start the
debugger automatically anyway.
* app/*several*.c: Include gimpmath.h for G_PI etc. Don't include
<math.h>, as gimpmath.h includes it.
* plug-ins/*/*many*.c: Include config.h. Don't include <math.h>.
Remove all the duplicated definitions of G_PI and rint(). Use
RINT() instead of rint().
* app/app_procs.[ch]: app_exit() takes a gboolean.
* app/batch.c
* app/commands.c
* app/interface.c: Call app_exit() with FALSE or TRUE.
* app/main.c (on_error): Call gimp_fatal_error. (main): Don't
install any signal handler on Win32 here, either.
* app/errors.c (gimp_fatal_error, gimp_terminate): Win32: Format
the message and call MessageBox with it. g_on_error_query doesn't
do anything useful on Win32, and printf'ing a message to stdout or
stderr doesn't do anything, either, in a windowing application.
Wed Sep 1 00:56:37 EDT 1999 Adrian Likins <adrian@gimp.org>
* app/gimpbrushpip.[ch]
* app/airbrush.c
* app/pencil.c
* app/paintbrush.c: fix pencil tool for use with
pixmaps again
1999-08-30 Tor Lillqvist <tml@iki.fi>
* app/gimpbrush.h (GimpBrushClass): Add a new method, gboolean
want_null_motion(), that tells if the brush wants to be painted
when we don't know the direction yet. This is needed (so far) by
brush pipes that select the brush based on direction.
* app/gimpbrush.c: Implement above method returning always TRUE.
* app/gimpbrushpipe.c: Here, implement it returning FALSE or TRUE
on whether the brush pipe has any angular (direction) dependent
dimension or not.
* app/paint_core.c (paint_core_button_press): Call the method
if current point == last point.
1999-08-30 Tor Lillqvist <tml@iki.fi>
* app/gimpbrushgenerated.c (gimp_brush_generated_save): Save the
name on a line of its own as it can contain spaces. Print spaces
between the floating-point values. (gimp_brush_generated_load)
Corrspondingly, read the name from a line of its own.
* app/gimpbrushlist.c (brushes_free): Portability fixes. Use
g_strconcat. Free allocated strings.
Sun Aug 29 17:54:58 BST 1999 Adam D. Moss <adam@gimp.org>
* app/convert.c: *->I: Deterministic colour dithering
to arbitrary palettes. Ideal for animations that are
going to be delta-optimized or simply don't want to look
'busy' in static areas. Also a bunch of bugfixes and tweaks.
No PDB interface to the new features yet, although a
convert_image2() is ready and waiting.
Sun Aug 29 00:40:20 BST 1999 Adam D. Moss <adam@gimp.org>
* app/convert.h
* app/convert.c: *->I: Deterministic alpha dithering over layers,
reduced bleeding of transparent values into opaque values, added
optional stage to remove duplicate or unused colour entries from final
colourmap.
1999-08-28 Tor Lillqvist <tml@iki.fi>
* app/gimpbrushpipe.c (gimp_brush_pixmap_select_brush): In the
case of angular selection, offset angle with G_PI/2 to be
compatible with PSP tubes. Restrict the index of each dimension
separately to the appropriate range.
* plug-ins/common/gpb.c (gih_save_dialog): Must not free the combo
box string list, the strings are not strdup'ed by the combo box.
1999-08-28 Tor Lillqvist <tml@iki.fi>
* app/gimpbrushpipe.c: Implement the selection of brush based on
cursor direction, pressure, tilt, or a random value. (Hmm, forgot
velocity, later.) (In addition to just incrementally stepping.)
Read the brush pipe parameters from the gih file's second line.
There is no way to tune the parameters in the GIMP, they must
currently be set when saving the gih file (in the gpb plug-in).
* app/gimpbrushpipe.h
* app/gimpbrushpipeP.h: Move the PipeSelectModes enum to the
"private" header. Add a stride array to GimpBrushPipe to make
indexing easier.
* plug-ins/common/gpb.c: Add selection mode fields to the dialog.
Attach the pipe parameters entered as a parasite, too.
* docs/parasites.txt
* plug-ins/common/psp.c: Use "placement", not "spacing" (which
means another thing).
Fri Aug 27 18:57:50 BST 1999 Andy Thomas <alt@gimp.org>
* app/nav_window.c
* app/nav_window.h
* app/gimppreviewcache.h
* app/layer.c
* app/channel.c
* app/commands.c
Added some controls to the nav window. Yep. I know that the
buttons are toooo biGGG.
Preview cache changes. Now prime preview cache with a image
so that later we have a better chance of a hit. Still
needs to be more intelligent at doing this (needs to pick largest
out of the cache & use its size as the size to prime with).
Fri Aug 27 02:16:02 EDT 1999 Adrian Likins <alikins@redhat.com>
* app/gimpbrushpipe.c: paint_line_pixmap_mask, finally
composite alpha correctly, or at least closer. Should
get rid of those annoying artifacts.
Wed Aug 25 02:40:39 CDT 1999 Shawn T. Amundson <amundson@gimp.org>
* app/image_new.[ch]: Added new files, the UI independant part of
new image dialog.
* app/file_new_dialog.[ch]: uses image_new stuff now. Alot
changed. No UI changed. Different behavior is a bug, as
this is only for UI separation.
* app/gimpimage.[ch]: Added gimp_image_get_width () and
gimp_image_get_height ().
* app/global_edit.c: Call a function in image_new instead of
file_new_dialog for updating the status of the cut buffe.
brush tool any longer. The paintbrush, airbrush and pencil
tools, which already knew how to handle the single-pixmap
brushes now also handle the pipes as well.
* app/pixmapbrush.{h,c}
* app/gimpbrushpixmap.{h,c}: Removed these files.
* app/Makefile.am
* app/makefile.{cygwin,msc}: Remove from here, too.
* app/gimpbrushpipe.{h,c}: Total overhaul.
* app/paint_core.h
* app/apptypes.h: Some more types moved to apptypes.h
* app/context_manager.c
* app/tool_options.c
* app/tools.c
* app/toolsF.h: Remove PIXMAPBRUSH tool.
* app/gimpbrush.h: New method: select_brush. Used to change the
brush in paint_core, for pipe brushes.
* app/gimpbrush.c: Add gimp_brush_select_brush, which is dummy for
the normal brushes (returns the same brush).
* app/paint_core.c: Call the brush's select_brush method to get a
potential new brush before calling the paint_func.
* app/gimpbrushlist.c: Various changes related to the pixmap and
pipe overhaul.
* app/airbrush.c
* app/pencil.c: Reorder code a bit in the tool motion function to
avoid executing unnecessary code in the case of a pixmap brush.
Other changes in the same commit:
* app/install.c: Make quote_spaces extern.
* app/appenv.h: Declare it.
* libgimp/gimpui.def: Add missing entry points.
* libgimp/makefile.{cygwin,msc}: Add missing objects to gimpui.
1999-08-24 Tor Lillqvist <tml@iki.fi>
* plug-ins/common/gpb.c: Added saving of .gih files.
* plug-ins/common/psp.c: Small changes, renamed the parasite.
* docs/parasites.txt: Suggesta a parasite for pixmap brush pipes.
* docs/gih.txt: Add the above parasite on the second line after
the number of brushes. Suggest how to edit brush pipes.
* docs/gpb.txt: Mention the gpb plug-in.
* app/pixmapbrush.c: Small clarification.
Fixes by Hans Breuer:
* libgimp/gimp.def: Add missing entries.
* app/gimpimage.h: Added declaration of gimp_image_{freeze,thaw}_undo.
* modules/makefile.msc: Drop the .msvc from dll names.
* plug-ins/common/jpeg.c: Guard inclusion of
unistd.h. (save_dialog): Restrict text box height to help people
with small displays.
Mon Aug 23 10:15:32 EDT 1999 Austin Donnelly <austin@gimp.org>
Dirty flag now correct in all cases. Can be displayed in image
window title too. See NOTE near gimp_image_dirty() for details.
* app/fileops.c: gimp_image_clean_all() after reverting an image.
* app/gdisplay.c: register handlers for gimage dirty and clean
signals to update image title. New image-title-format
expansion: %Dx expands to x if the image is dirty.
* app/gdisplay_ops.c: gimage->dirty flags != 0 is the correct
condition to test to see if an image is dirty.
* app/gimpdrawable.c: gimp_image_dirty() should never be called
except from an undo_push_* function. Call
undo_push_cantundo() if you want to dirty the image but can't
be bothered writing an undo handler (be ashamed of yourself!).
* app/gimpimage.c: new gimage signal: clean. Emitted when an undo
operation takes place. Gimage changes when either dirty or
clean is emitted, so if you need to update previews etc, look
for both! Move group_count into gimage structure, since
leaving it as a static in undo.c is bad if two undo groups are
started on different images at the same time. More changes
of gimp_image_dirty() to undo_push_cantundo()
(parasite-related, plus layer moves). See the NOTE on dirty
counter near gimp_image_dirty() for the full story.
gimp_image_dirty() and gimp_image_clean() simplified - counter
can go negative.
* app/gimpimageP.h: group_count moved from undo.c
* app/layers_dialog.c: push undo for layer name change, rather
than dirtying the image.
* app/undo.c: layer rename undo functions
added. undo_push_cantundo() convenience functions added.
group_count made per-gimage since everything else is. When
blowing away redo stack, make image infinitely dirty if redo
info contained file save point.
* app/undo.h: added undo_push_layer_rename() and
undo_push_cantundo().
* TODO: added idea for undo history window.
Mon Aug 23 00:56:59 EDT 1999 Adrian Likins <alikins@redhat.com>
* app/gimpbrushhose.c
* app/gimpbrushhose.h:
removed.
* app/gimpbrushpipe.c
* app/gimpbrushpipe.h:
New files to replace the above
* app/gimpbrushlist.c
* app/paintbrush.c
* app/pixmapbrush.c
* app/Makefile.am:
s/hose/pipe. Seems someone else uses that name,
so change it to pipe.
* app/gimpbrush.c
* app/gimpbrush.h
* app/gimpbrushpixmap.c
* app/patterns.c
* app/patterns.h
* app/pixmapbrush.c:
Added functions to do the actual loading of
brush/pattern data. Use them where approriate instead
of cut&pasting the same code all over the place.
* app/pixmapbrush.c: Fix the bug where masks and brush
data werent aligned. I didnt quite notice that
paint_core_get_paint_area returns an area with a 1 pixel
border larger than the brush. Ooops.
* TODO: just update a few things while I'm at it
(pixmap/pipe stuff in particular)
1999-08-22 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/color_area.[ch]
* app/color_panel.[ch]
* app/gimpdnd.[ch]: enabled dnd for colors (compatible with the
standard gtk/gnome color dnd). The color selection is now invoked
on a real click, not on button_down to avoid confusion with dnd.
* app/channels_dialog.c
* app/disp_callbacks.c
* app/interface.c
* app/layers_dialog.c: minor dnd updates/fixes.
* app/channel.[ch]
* app/channel_pvt.h
* app/docindex.[ch]
* app/docindexif.[ch]
* app/drawable.[ch]
* app/floating_sel.c
* app/gimage.[ch]
* app/gimage_mask.c
* app/gimpdrawable.[ch]
* app/gimpdrawableP.h
* app/gimpimage.[ch]
* app/gimpimageP.h
* app/layer.[ch]
* app/layer_pvt.h
* app/undo.c
* app/xcf.c: wanted to do some s/int/gboolean/ in the layer files
where appropriate and found myself spending the whole night doing
a big code review for layers/channels/drawables/images:
s/int/gboolean/, s/<type>/g<type>/, lots of indentation, removed
some old global variables and deprecated functions, #include
cleanups, proper prototypes, copyright headers, ...
1999-08-22 Tor Lillqvist <tml@iki.fi>
* app/convert.c: Use spinbutton for number of colours.
* app/preferences_dialog.h: Export gimp_spin_button_new. Not the
most logical place for it, though.
Sat Aug 21 16:53:17 BST 1999 Adam D. Moss <adam@gimp.org>
* plug-ins/common/jpeg.c: Preview layers need to be alpha-padded,
since they're not on the bottom of the stack. That's a GIMP rule.
Plus... use new API functions gimp_image_{freeze,thaw}_undo() to avoid
the dilemma of either consuming a squillion superfluous tiles or
clobbering the whole undo stack.
* app/gimage.h
* app/gimage_cmds.c
* app/gimpimage.c
* libgimp/gimp.h
* libgimp/gimpimage.c: New API functions
gimp_image_{freeze,thaw}_undo() to avoid the above twin evils.
Similar to gimp_image_{disable,enable}_undo() but without
clobbering the undo stack (I would have simply changed the latter,
but too many plugins seem to rely on that behaviour). See the PDB
docs for slightly more information.
1999-08-20 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/Makefile.am
* app/gimpdnd.c: new file. Contains a function which creates dnd
preview icons for all kinds of drawables.
* app/gimpdnd.h: added the new dnd types.
* app/channels_dialog.c: same dnd functions as in the layers
dialog. Fixed channels_dialog_flush(). Code cleanup.
* app/layers_dialog.c: enabled dnd for layer masks.
* app/disp_callbacks.c
* app/interface.c: dnd code generalization. The toolbox and the
display accept drop of any kind of drawable now.
* app/gimage.h
* app/gimpimage.[ch]: new function gimp_image_position_channel().
* app/layer.[ch]: new function layer_mask_get_layer().
1999-08-19 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/Makefile.am
* app/gimpdnd.h: new file containing the dnd data definitions.
* app/disp_callbacks.[ch]
* app/interface.c: drop layers on the toolbox to create a new
image and on the display to copy it to the image's layer stack.
* app/layers_dialog.c: drop layer on the "New" button to create an
empty layer with the dropped layer's properties, to "Duplicate" to
duplicate it and on the trashcan to delete it.
Thanks to Andy for the ultra-cool dnd preview pixmap patch.
* app/layer.[ch]
* app/undo.c: renamed layer_mask() to layer_get_mask(). Prototyped
some function headers.
* app/disp_callbacks.c: Wheelmouse stuff: Shift+wheel scales the
display.
* app/airbrush.c
* app/eraser.c
* app/paint_options.h
* app/paintbrush.c
* app/pencil.c
* app/tool_options.c: moved the "Incremental" toggle to the
PaintOptions structure because it is used more often now.
* app/*.[ch]: Actually use the enum types GimpImageType,
GimpImageBaseType, LayerModeEffects, PaintApplicationMode,
BrushApplicationMode, GimpFillType and ConvertPaletteType, instead
of just int or gint. Hopefully I catched most of the places
where these should be used.
Add an enum ConvolutionType, suffix the too general constants
NORMAL, ABSOLUTE and NEGATIVE with _CONVOL. Use NORMAL_MODE
instead of NORMAL in some places (this was what was intended). Fix
some minor gccisms.
* app/apptypes.h: New file. This file contains the above
enumeration types, and some opaque struct typedefs. It was
necessary to collect these in one header that doesn't include
other headers, because when we started using the above mentioned
types in the headers, all hell broke loose because of the
spaghetti-like cross-inclusion mess between headers.
(An example: Header A includes header B, which includes header C
which includes A. B uses a type defined in A. This is not defined,
because A hasn't defined it yet at the point where it includes B,
and A included from B of course is skipped as we already are
reading A.)
Mon Aug 16 20:48:33 1999 Adrian Likins <alikins@redhat.com>
* app/gimpbrushhose.c
* app/gimpbrushhose.h: new files to implement a GimpBrushHose
type. The idea being its derived from gimpbrushes, so we can
make regular tools use it if need be, and fold it into the brushes
dialog nice and easy.
* app/gimpbrush.c
* app/gimpbrushgenerated.c
* app/gimpbrushpixmap.c:
* app/gimpbrushpixmap.h: Modified the *_get_type() functions
to behave more correctly. As suggested by Tim Janik <tim@gtk.org>
* app/pixmapbrush.c: Since pixmapbrush tool wasnt doing anything
useful anyway, start using it as a testbed for "image hoses".
Right now it doesnt really work correctly.
I'll try to upload a sample hose to http://adrian.gimp.org/pixmap-brushes/
shortly, and maybe some docs about the lame format.
-adrian
* app/appenv.h: added a G_PI_2
* app/brush_header.h
* app/pattern_header.h: prefixed each FILE_VERSION with
G{BRUSH,PATTERN} to avoid namespace collision
* app/patterns.c: reflect above change
* app/iscissors.[ch]: merged in Austin's iscissors rewrite.. still
unfinished, but it's not like the old one did anything useful
anyway ;)
-Yosh
Thu Aug 12 21:38:53 BST 1999 Andy Thomas <alt@gimp.org>
* app/commands.c
* app/commands.h
* app/disp_callbacks.c
* app/gdisplay.c
* app/gdisplay.h
* app/info_dialog.c
* app/info_dialog.h
* app/info_window.c
* app/info_window.h
* app/menus.c
* app/scale.c
* app/scroll.c
* app/scroll.h
* app/nav_window.c (new)
* app/nav_window.h (new)
* pixmap/dropper.xpm (new)
New "navigator" image (accessed via <Image>/Window Nav..). This gives
an outline of the location of the current view on an image. Eg if your
image window is only showing part of an image then the Window Navigation window will outline the area viewed. You can "drag" the outlined
square around the viewport and the main image will scroll. Additional
a single click outside the square will center the image at that
location.
Also started to add additional information to a new page inside the
Window information dialog (currently only pixel value is shown).
Both these features are currently work in progress and unfinished.
In particular the Navigator does not keep in step with changes
to the basic image (however it does keep in step with image size changes and if you modify the size of the image viewing window). It also
does not display the transparent areas of images very nicely.
Mon Aug 9 01:20:24 1999 Adrian Likins <alikins@redhat.com>
* app/pixmapbrush.c
* app/pixmapbrush.h
* app/gimpbrushpixmap.c
* app/gimpbrushpixmap.h: New files, implement the GimpBrushPixmap
object, and the pixmap brush tool.
* app/context_manager.c
* app/tool_options.c
* app/tools.c
* app/toolsF.h: add the pixmap brush tool in
* app/gimpbrushlist.c: allow for loading of pixmap brushes and
displaying them in the brush dialog. Currently it only shows the
grey scale mask.
*app/Makefile.am: add the pixmap tool stuff to the build process
These Changes implement a pixmap brush tool. Sort of a "image stamp".
Some examples can be seen at http://adrian.gimp.org/pixmap-brush/.
Some examples of pixmap brushes can be found there too (.gpb
extension), but these are easy enough to make (for now, make
a pattern and a brush the same size and `cat foo.gbr foo.pat >
foo.gpb` ;->
Theres still a few rough edges that need some tweaking, but
the framework is there. Figured I'd sneak it in before the
freeze.
* app/appenv.h: Define ROUND(), RINT(), SQR(), G_PI and
G_PI_4. The latter two will presumably eventually be in
GLib. RINT() calls rint() if we have it, otherwise adds 0.5 and
calls floor().
* app/*.c: Remove the multiple identical definitions of M_PI. Use
G_PI instead of M_PI. Remove ROUND() and rint() definitions. Use
RINT() instead of rint().
* tools/pdbgen/pdb/tools.pdb: revert previous change
* tools/pdbgen/pdb/guides.pdb: perform orientation xform here
* app/gimpimage.h: use 2 enums, one for internal and for external
* libgimp/gimpenums.h: change around external enums here
-Yosh
* tools/pdbgen/pdb/tools.pdb: hard code orientation constants for
shear and flip too maintain backwards compatibility
* app/gimpimage.h: remove ORIENTATION chop to avoid namespace
collision
-Yosh
1999-07-27 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/commands.c
* app/desaturate.[ch]
* app/equalize.[ch]: no need to pass the image as a void pointer
to desaturate and equalize.
* app/gimage.h
* app/gimpimage.[ch]: new function gimp_image_position_layer().
* app/layers_dialog.c: move layers with drag'n'drop.
1999-07-22 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/channel_ops.[ch]: new ui for the "Layer Offset" dialog.
* app/channels_dialog.c
* app/layers_dialog.c: major code cleanup: Folded some callbacks
into common ones, "widget" instead of "w", indentation, ...
* app/commands.c
* app/interface.[ch]
* app/global_edit.c: the query boxes must be shown by the caller
now. There's no need to split up the string for the message box
manually as the Gtk 1.2 label widget handles newlines corectly.
Added the "edge_lock" toggle to the "Shrink Selection" dialog.
Nicer spacings for the query and message boxes.
* app/ink.c: tried to grab the pointer in the blob preview but
failed. Left the code there as a reminder (commented out).
* app/menus.c: reordered <Image>/Select.
I was bored and grep-ed the sources for ancient or deprecated stuff:
* app/about_dialog.[ch]
* app/actionarea.[ch]
* app/app_procs.c
* app/brush_edit.c
* app/brush_select.c
* app/color_select.c
* app/convert.c
* app/devices.c
* app/gdisplay.c
* app/gdisplay_ops.c
* app/histogram_tool.[ch]
* app/info_window.c
* app/install.c
* app/ops_buttons.c
* app/palette.c
* app/palette_select.c
* app/paths_dialog.c
* app/pattern_select.c
* app/resize.c
* app/scale_toolc.c
* app/text_tool.c:
s/container_border_width/container_set_border_width/g,
s/sprintf/g_snprintf/g, replaced some constant string lengths with
strlen(x).
* app/bezier_select.c
* app/blend.c
* app/boundary.c
* app/errors.[ch]
* app/free_select.c
* app/gimpbrushlist.c
* app/gimprc.c
* app/iscissors.c
* app/main.c
* app/patterns.[ch]
* app/text_tool.c: namespace fanaticism: prefixed all gimp error
functions with "gimp_" and formated the messages more uniformly.
* app/gradient.c
* app/gradient_select.c: same stuff as above for the ui
code. There are still some sub-dialogs which need cleanup.
Did some cleanup in most of these files: prototypes, removed tons
of #include's, i18n fixes, s/w/widget/ as above, indentation, ...
1999-07-19 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/gdisplay.c (gdisplay_set_menu_sensitivity): moved the _()
wrappers out of the macro again, so they actually get
processed. Reported by <Daniel.Egger@t-online.de>.
* app/makefile.cygwin
* app/makefile.msc
* plug-ins/makefile.cygwin
* plug-ins/makefile.msc
* modules/makefile.cygwin
* modules/makefile.msc
* tools/gcg/makefile.cygwin: Various updates. GCC-compiled DLL
name change.
* app/context_manager.c: Include paint_options.h for prototype.
* app/gimpimage.c (gimp_image_initialize_projection): Break out of
loop as soon as possible.
* app/menus.c (menus_last_opened_cmd_callback): Check if referring
to entry not in list.
* app/module_db.c (valid_module_name): (Win32) Require module DLL
names to include name of compiler built with.
* app/paths_dialog.c (paths_draw_segment_points): No use to draw
lines if we have less that two points.
* app/qmask.c: Include stdio.h and floating_sel.h.
* libgimp/makefile.cygwin: New file.
* libgimp/Makefile.am: Distribute above file.
* libgimp/gimp.def: Update.
* libgimp/gimpenv.c (gimp_directory): Don't warn about missing
home directory on Win32, it is perfectly natural.
* plug-ins/sel2path/global.h: Bypass unused declarations, some
of which clash with functions in MSVCRT.
* plug-ins/sel2path/math.c
* modules/colorsel_water.c: Define M_PI if necessary.
* plug-ins/sel2path/sel2path.c: Include config.h and
glib.h. Define rint() if needed.
* plug-ins/sel2path/vector.c: Include glib.h (for hypot() renaming
on Win32; In the MS C runtime, as hypot() is non-ANSI, it's called
_hypot(), sigh).
* plug-ins/sinus/sinus_logo.h: Use indexed format, it is easier on
some compilers than the huge string.
1999-07-10 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/gdisplay.c (gdisplay_set_menu_sensitivity): Undo/Redo should
be sensitive even if there is no layer :-)
* app/commands.h
* app/docindex.[ch]
* app/docindexif.[ch]
* app/file_new_dialog.[ch]: some #include cleanups.
* plug-ins/helpbrowser/Makefile.classic: less primitive version.
Fri Jul 9 20:12:12 MEST 1999 Sven Neumann <sven@gimp.org>
* app/app_procs.c: applied a (modified) patch from
Shuji Narazaki <narazaki@gimp.org>
* app/gimpimage.c: applied a modified) patch from
Tom Rathborne <tomr@aceldama.com> that aligns guides on layer_resize
--Sven
1999-07-09 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/crop.c: mysteriously, using the new tool constructor fixed
the crop tool redraw problem.
* app/gdisplay.c: clode cleanup
* app/info_dialog.c: never emit signals when updating the info
fields. Fixes some more transform tool grid redraw bugs.
1999-07-07 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/gdisplay.c (gdisplay_set_menu_sensitivity): don't make menus
unreachable by forgetting to set them sensitive again.
and a tiny .cvsignore update in plug-ins/common
* pixmaps/qmasknosel.xpm
* pixmaps/qmasksel.xpm: Ugly pixmaps that tigert promised to replace
* app/channel.[ch]
* app/channel_cmds.c : made some of the private structures accessible
through exported functions to keep things a bit clean
* app/interface.c
* app/gdisplay.[ch]
* app/gimpimageP.h
* app/gimpimage.[ch]
* app/undo.[ch]: added qmasks
* app/Makefile.am
* app/qmask.[ch]: added new files for qmask support
* tools/pdbgen/pdb/channel.pdb: changed some channel stuff to keep
things a bit more private
Tue Jul 6 22:16:07 BST 1999 Andy Thomas <alt@gimp.org>
* ./app/layer.c.orig
* ./app/lc_dialog.c.orig
* ./app/paths_dialog.c.orig
* ./app/pathsP.h.orig
* ./libgimp/gimpmenu.c.orig
* ./tools/pdbgen/pdb/paths.pdb.orig
* ./app/paths_cmds.c
* ./app/internal_procs.c
Fixed small LCP menu preview problems. Now works for all
image types and updated correctly when alpha channel added.
Additional PDB functions for paths. Fixed some PDB functions
(gimp_paths_set_points). Now works as advertised.
Tue Jul 6 22:40:16 MEST 1999 Sven Neumann <sven@gimp.org>
* app/commands.[ch]
* app/global_edit.[ch]
* app/menus.c: added "Paste As New" feature that allows to paste
the current (or a named) buffer to a new image. Still need to
add PDB call for that...
--Sven
Tue Jul 6 19:58:48 MEST 1999 Sven Neumann <sven@gimp.org>
* app/fuzzy_select.c: give user feedback on the threshold
* app/paintbrush.c: use an optionmenu for the gradient type
instead of using 4 radiobuttons
* app/blend.c: indentation paranoia
Hopefully I have merged in Michaels changes correctly ...
--Sven
1999-07-06 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/airbrush.c
* app/blend.c
* app/bucket_fill.c
* app/clone.c
* app/convolve.c
* app/dodgeburn.c
* app/eraser.c
* app/ink.c
* app/paintbrush.c
* app/pencil.c
* app/smudge.c: get opacity/paint mode from the current context
(currently always the user context).
* app/gimage_mask.c: the "stroke" command uses the paintbrush's
settings if the current context is the user context and we are in
per-tool paint options mode.
* app/context_manager.[ch]
* app/paint_options.h
* app/preferences_dialog.c
* app/tool_options.c
* app/tools.c: moved the global/per-tool paint options switching
to the context manager. The tool options themselves only contain
the widgets for them now. This should fix the segfaults happening
in per-tool mode.
Removed the disclaimer from the prefs. dlg. as it seems to work
now. The impl. in the context manager however is still a hack.
* app/brush_select.c
* app/brushes_cmds.c
* tools/pdbgen/pdb/brushes.pdb: same as above.
* app/lc_dialog.c: minimal code reduction. No functionality changed.
1999-07-02 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/[all tools]: the Tool structure is now allocated by a common
constructor which sets default values and provides default tool
action functions. To get rid of much code duplication there should
be a object hierarchy of tools.
* app/context_manager.c
* app/tools.[ch]: create and destroy private contexts for the
paint tools on startup and exit. They are not used yet.
* app/interface.c
* app/menus.c
* app/tools.h: num_tools is now exported in tools.h
* app/commands.c
* app/gdisplay.c
* app/menus.c: made "Toggle Selection" a toggleable menu item.
1999-06-26 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/[all tool related files]
* app/commands.c
* app/disp_callbacks.c
* app/gdisplay.c
* app/gimage.c
* app/interface.c: hopefully fixed the bugs that appeared with my
last fix. And some more changes...
- Slightly changed the conditions which cause the tools to be
re-initialized on button_press events and the global
initialisation functions.
- The dialog tools now explicitly set tool->gdisp_ptr so they can
be properly hidden on display deletion.
- Create the crop info dialog only once and avoid ugly redraw bugs
by blocking the sizeentries' signal when initializing them.
- Standardized the tools_new_<tool>() functions. They are
scheduled to be moved to a common constructor in tools.c
- Various stuff...
Wed Jun 23 23:52:54 BST 1999 Andy Thomas <alt@gimp.org>
* gimp/app/gimppreviewcache.c
* gimp/app/gimppreviewcache.h
* gimp/app/drawable_cmds.c
* gimp/app/gdisplay.c
* gimp/app/gimpdrawableP.h
* gimp/app/gimage_cmds.c
* gimp/app/Makefile.am
* gimp/app/layers_dialog.c
* gimp/app/channel.c
* gimp/app/lc_dialog.c
* gimp/app/lc_dialog.h
* gimp/app/lc_dialogP.h
* gimp/app/layer.c
* gimp/app/gimpdrawable.c
* gimp/app/internal_procs.c
* gimp/libgimp/gimp.h
* gimp/libgimp/gimpimage.c
* gimp/libgimp/gimpdrawable.c
* gimp/libgimp/gimpmenu.c
* gimp/tools/pdbgen/pdb/drawable.pdb
* gimp/tools/pdbgen/pdb/gimage.pdb
Added thumbnail image preview functions.
Previews are visible on the L&C&P dialogs as well as in the
drawables/channels/ menus generated for plugins
(see the bumpmap & Mapobject plugins).
PDB interface exists to simply extract a thumbnail preview
of a given size. This is much quicker & more efficient
than getting the image data tile-by-tile if you only need a small
image since a "preview cache" has been implemented. This cache also
reduces the number of times the tiles cached is scanned since smaller
previews are always generated from large ones if they exists and
are valid.
Some possible usages (I don't intend to implement these ideas. Just
suggestions). More plugins using the thumbnail preview (ie any that
use multiple images). Indication of "active image" somewhere.....
Actually almost anywhere a drawable/image name appears.
1999-06-21 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/context_manager.c: namespace cleanups.
* app/commands.[ch]
* app/menus.c: moved the "Toggle Selection" menu entry to "View",
sprinkled some separators and made the layers/channels/paths popup
menus consistent with Tigert's last ops buttons change.
* app/fileops.c
* app/plug_in.c: check for gdisplay_active() returning NULL in
some more places.
* app/[all tool related files]:
- Turned the ToolAction and ToolState #define's into typedef'ed
enums, so the compiler can do some more sanity checking.
- Removed one more unused global variable "active_tool_layer".
- Removed some #include's from tools.c.
- Standardized the individual tools' structure names.
- Moved showing/hiding the tool options to separate functions.
- Stuff...
* app/commands.c
* app/disp_callbacks.c
* app/gdisplay.c
* app/tools.c: fixed the segfaults which happened when the image
of one of the tools which have dialogs (levels/posterize/...) was
deleted. My approach was to do stricter sanity checking and to set
some gdisplay pointers correctly where appropriate, so I can't
tell exactly where the bug was.
The curves tool now(??) updates on every _second_ display change
only, which is really obscure.
Finding/changing the display to operate on should definitely be
done by connecting to the user context's "display_changed"
signal.
* app/gimpset.c: emit the "remove" signal _after_ removing the
pointer from the set. If this was not a bug but a feature, please
let me know, we'll need two signals then.
* libgimp/gimpfeatures.h.win32: Update version.
* app/file_new_dialog.c: Include gimpcontext.h.
* app/gdisplay.c: Don't pass a pointer as an int parameter,
pass the result of an inequality comparison to zero.
* app/makefile.msc: Add new files.
* plug-ins/makefile.msc: Build the ps plug-in, too.
* plug-ins/ps/ps.c: Add code to use a "real" output file, not a
pipe (needed with Win32 port of ghostscript).
Use g_strdup_printf() instead of separate g_malloc() and sprintf()
calls. No need to check failure of g_malloc(), it aborts on
failure. Open files in binary mode.
(Win32:) Use indirect command line file to guard for too long
command line. (Not sure if this is really needed.) Use the
gswin32c program.
1999-06-21 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/context_manager.c: connect to the user context's
"display_changed" and to the image context's "remove" signal to
avoid dangling references and to set the menu sensitivity on
display change.
* app/disp_callbacks.c
* app/file_new_dialog.c
* app/fileops.c
* app/gdisplay.c
* app/gdisplay_ops.c
* app/gimpcontext.c
* app/interface.[ch]: entirely moved the active display stuff to
the user context:
- The active display is set by any event in the display shell,
by File/New and File/Open.
- gdisplay_delete() resets the active display to NULL if we
deleted the active display.
- Reduced gdisplay_active() to a single statement returning the
context's active display. Should replace it by a macro.
- gdisplay_flush_whenever() sets the menu sensitivity for the
active display.
- Removed global variable popup_shell since it was only set all
the time but never used. I guess it's original job is now done
by the context anyway.
- gdisplay_set_menu_sensitivity() works with gdisp == NULL.
- There are mysterious Gdk-CRITICALs if both <Image> and one of
it's sub-menus are teared-off. Probably a gtk+ bug.
To do all this stuff at a central place, there needs to be a
GimpSet of displays (and ideally, GDisplay should be a GtkObject).
* app/commands.c
* app/lc_dialog.c: fixed segfaults happening with teared-off menus.
1999-06-20 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/commands.c
* app/disp_callbacks.c
* app/gdisplay.c
* app/lc_dialog.c
* app/menus.c: applied a patch from <Simon.Budig@unix-ag.org>
which implements tear-off-menus(!!!). Modified it to use the
GimpContext.
The sensitivity of the menu entries is not updated after
executing a command. This leaves the sensitivity in the state
before the command was executed (which is buggy). Will probably
have to update the sensitivity from gdisplays_flush().
Simon called the patch "temporary" but it looks pretty stable to
me. Please test it :-)
* app/context_manager.[ch]: minor changes.
* app/gimpcontext.[ch]: the user context keeps track of the
current display and image. The image is set automatically from
gimp_context_set_display().
Still have to figure out how this should interact with
gdisplay_active() (the current state is a hack).
Made the context attributes real GtkObject arguments.
Pass the changed attributes to the callbacks which connect to
the <attribute>_changed signals.
* app/gimpset.[ch]
* app/gimpsetF.h
* app/gimpsetP.h: made the gimpset properly derivable by adding
signal slots to the object class structure. Added copyright
headers.
* app/gimpsignal.[ch]: new type gimp_sigtype_double, copyright
header and my usual indentation fanaticism.
1999-06-19 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/gimpcontext.[ch]: added some functions. Still does nothing.
* app/bezier_select.c
* app/devices.c
* app/tools.[ch]: removed global variable active_tool_type
because it was always equal to active_tool->type.
1999-06-18 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/Makefile.am
* app/context_manager.[ch]: new files. Currently only init and
destroy the static contexts (user, standard and default).
* app/app_procs.c: call the context manager's init and free
functions. Still have to figure out the right time to do this.
* app/gimpcontext.[ch]: alpha version 0.0.1 :-)
Features:
- Each context has a name
- Attributes: opacity, paint mode, image, display
- Signal emission on attribute change
- Possibility to set a "parent" context
- Each attribute can be defined or undefined. In the latter case
the values are taken from the parent context.
- Possibility to pass a template and parent context to the
constructor
Bugs:
- Many attributes/functions still missing
- It's connected to nothing
1999-06-17 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/Makefile.am
* app/gimpcontext.[ch]: new files. Does nothing yet. Checked in
because I found some bugs while hacking it:
* libgimp/gimpchainbutton.[ch]
* libgimp/gimpfileselection.[ch]
* libgimp/gimppatheditor.[ch]
* libgimp/gimpsizeentry.[ch]
* libgimp/gimpunitmenu.[ch]: fixed some cut & paste bugs and some
gtk 1.0 artefacts in the object class initialisation code.
1999-06-06 Tomas Ogren <stric@ing.umu.se>
* app/menus.[ch]: locale-wrapper for menus_set_sensitive (..._locale)
and menus_set_state (..._locale) which splits the menu-entry
"<Foo>/Bar/Baz" into "<Foo>" and "/Bar/Baz" to remove double
translations
* app/app_procs.c, app/channels_dialog.c, app/fileops.c, app/gdisplay.c
* app/gdisplay_ops.c, app/layers_dialog.c, app/paths_dialog.c
* app/plug_in.c:
Use the _locale version from above
1999-06-06 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/Makefile.am
* app/lc_dialog.[ch]
* app/lc_dialogP.h
* app/paths_dialogP.h: new files
* app/channels_dialog.[ch]
* app/layers_dialog.[ch]
* app/layers_dialogP.h
* app/paths_dialog.[ch]
* app/menus.[ch]
* app/file_new_dialog.c: modified
- Moved the toplevel L&C dialog code to lc_dialog.[ch]. Only
these files need knowledge about how to create/update/...
the sub-dialogs, so the corresp. functions are defined in
lc_dialogP.h.
- The popup menus are now created by menus.c. The command
callbacks are defined in [layers|channels|paths]_dialog.h.
- Private functions to be used by "friend files" are defined in
[layers|paths]_dialogP.h.
- Changed the order of the ops_buttons in the paths dialog to
match the order in the layers and channels dialogs.
- The paint mode menu and preview stuff still needs to go out of
layers_dialog.[ch].
- I'm not sure about the keybindings in the layer dialog's "Stack"
submenu because the list widget has it's own idea of PageUp/Down.
- Hopefully fixed the update problem with new images by calling
lc_dialog_flush() after creating a new image.
* app/app_procs.c
* app/bezier_select.c
* app/commands.c
* app/floating_sel.c
* app/gdisplay.c
* app/gimage.c
* app/gimage_mask.c
* app/paint_core.c
* app/preferences_dialog.c
* app/transform_core.c
* app/undo.c: changed #include's according to the new L&C file
structure.
1999-06-03 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/disp_callbacks.[ch]
* app/gimpset.c
* app/interface.c: patch from <Simon.Budig@unix-ag.org>. Cleans up
the active image implementation. Now the button and key events of
the whole gdisplay shell are connected to a separate active image
callback.
Don't let the arrow button of the gdisplay grab the focus and
block it's events after any button_press_event, so the canvas
always owns the keyboard focus and the button never grabs the
pointer.
* app/gdisplay.c: correct sensitive setting for the Layers/Stack
submenu.
* app/interface.c: make the query boxes insensitive after pressing
"OK" (may be useful if they're once used for operations which take
longer than just shrink/grow/...).
* app/layers_dialog.c: switch to the active image when the "Auto"
button is activated.
* app/menus.c: bound the <Image>/Layers/Stack menu to some
<modifier>+PageUp/Down combinations.
* app/preferences_dialog.c: pop up with the "Interface" branch
expanded.
1999-06-01 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/commands.[ch]
* app/gdisplay.c
* app/menus.c: for the pleasure of all: a deeper nested submenu ;)
New <Image>/Layers/Stack submenu. Used the same top/bottom
shortcuts as in the layers dialog. Bind them to PageUp/Down and
you will never touch your mouse again to do this.
I'm thinking of dropping the current <ctrl>+[FBTU] in favour of
some <modifier>+PageUp/Down combinations. Test it, Tig !)
* configure.in: Check for mmap.
* app/makefile.msc: Depend on gimpi.lib.
* app/app_procs.c (app_init): Fix gccism: Allocate filenames (an
array with non-constant size) dynamically.
* app/{datafiles,fileops,general,install,module_db,temp_buf}.c:
Include glib.h before standard headers, because of certain obscure
details related to compiling with gcc on Win32.
(If you really want to know: glib.h defines he names of POSIXish
(but non-ANSI) functions as prefixed with underscore, because
that's how they are named in the msvcrt runtime C library we want
to use. However, defining stat as _stat causes some problems if
done after including the mingw32 <sys/stat.h>. So, it's easiest to
include <glib.h> early.)
* app/main.c: Use _stdcall and __argc, __argv with MSC, but
__attribute__((stdcall)) and _argc, _argv with gcc. Don't print
the "Passed serialization test" message on Win32. (It would open
up an otherwise unnecessary console window.)
* app/paint_funcs.c (gaussian_blur_region): Don't use variable sum
until initialized.
* app/{bezier_select,paths_dialog}.c: Include config.h and define
rint() if necessary.
* app/plug_in.c: Use _spawnv, not spawnv, on Win32 and OS/2.
* cursors/{mouse1_u,mouse1_umsk}: new mouse cursor for intersection
operations.
* app/cursorutil.[ch], app/rect_select.c: use the new cursor.
* app/gimpimage.c: Applied layer removal bug fix from
David Le Corfec, <lecorfec@etudiant.univ-mlv.fr>
* plug-ins/gdyntext/{font_selection.c, gdyntext.c, gdyntext_ui.c}:
replaced snprintf with g_snprintf.
* plug-ins/jpeg/jpeg.c: updated to work with the double precision
resolutions.
1999-05-22 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/[all files with resolution info]
* libgimp/gimp.h
* libgimp/gimpimage.c
* libgimp/gimpsizeentry.[ch]
* libgimp/gimpunit.[ch]
* plug-ins/newsprint/newsprint.c
* plug-ins/pgn/png.c
* plug-ins/tiff/tiff.c: double instead of float for all resolution
and unit-factor variables.
* app/commands.c
* app/crop.c
* app/interface.c
* app/layers_dialog.c
* app/move_tool.c
* app/resize.c
* app/rotate_tool.c
* app/scale_tool.c: pass the image's unit *and* gdisp->dot_for_dot
to all functions which create sizeentries. Never create a
sizeentry with UNIT_PIXEL but with the image's unit and set it's
unit to UNIT_PIXEL after creation if dot_for_dot is on.
This way the image's unit can always be picked from the menu
without selecting "More...".
* app/interface.c: made the query_*_box() functions use the
ActionArea.
* plug-ins/gimpunitmenu.c: GTK_WIN_POS_MOUSE for the unit
selection dialog.
Sat May 15 00:06:06 BST 1999 Andy Thomas <alt@gimp.org>
* app/gdisplay.c
* app/paths_dialog.c
* app/paths_dialog.h
Fixed problem where paths preview not resized correctly when
image was resized.
* app/paint_core.[ch]: set the fg or bg color if ctrl or alt is
held. use the new dropper cursor.
* app/cursorutil.[ch], app/gdisplay.[ch], app/rect_select.c: Use
GimpCursorType enum values > GDK_CURSOR_LAST instead of seperate
functions to choose between cursor types.
* app/color_picker.c: use the new dropper cursor.
* app/paintbrush.c, app/airbrush.c, app/paintbrush.c: use the new
color picking feature of paint_core.
* cursors/dropper, cursors/droppermsk: new cursor for the color
picker tool. (this cursor is REALLY ugly, someone should fix it)
1999-05-07 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/channel.[ch]
* app/commands.c
* app/gimage_mask.[ch]
* app/gimage_mask_cmds.c
* tools/pdbgen/pdb/gimage_mask.pdb
* app/interface.c: propagated the indepentent x/y values for
shrink/grow/border to the interface but not yet to the PDB.
* app/*_select.c
* app/paint_funcs.[ch]: implemented indep. x/y feather. It seems
that cut-and-paste was sufficient, but I didn't really understand
the code. Jay, could you have a look at this please?
If the feather/shrink/... amount is specified in pixels,
everything behaves like before.
I'm not sure how the built-in feather option of the selection
tools should behave, so it still defaults to 'pixel' mode.
Moved the static feather/shrink/... values from gimage_mask.c to
commands.c because they belong to the interface.
* app/text_tool_cmds.c
* tools/pdbgen/pdb/text_tool.pdb: prepared for resolution
support, but didn't enable it yet.
* app/unit_cmds.c
* tool/pdbgen/pdb/unit.pdb: fixed a help text.
* pixmaps/mouse1*: new bitmap files containing the new mouse cursors.
* app/parasitelist.c: use g_str_equal instead of parasite_compare_func.
* app/paint_core.c: interpret perfectmouse right way round.
* app/rect_select{P,}.[ch]: set custom cursors when the operation type
changes. Centralize the calculation of op based on the modifier
keys being held.
* app/fuzzy_select.c, app/free_select.c: allow the rect_select
functions calculate the operation type.
* app/ellipse_select.c: use the SelectionOps typedefs.
* app/edit_selection.c: convert MaskToLayerTranslate into
FloatingSelTranslate if there is already a floating selection in
init_edit_selection.
* app/disp_callbacks.c: fixed the calculation of state.
* app/gdisplay.[ch], app/cursorutil.[ch]: new functions to allow
the loading of customized cursors.
* app/paint_funcs.[ch], app/channel.c: border_region now accepts
seperate xradius and yradius arguments.
* config.h.win32, README.win32: Small changes.
* tools/pdbgen/pdb/*.pdb: Include <string.h>.
* app/*_cmds.c: Autogenerated files reflect above changes.
* libgimp/makefile.msc app/makefile.msc: Various updates,
including new object files. Gtk+ directory now should be called
gtk+ (not gtk-plus). Use win32-specific gdk subdir. Glib directory
now should be called just glib.
* libgimp/gimp.def: Updates.
* libgimp/gimpfeatures.h.win32: Made current with
gimpfeatures.h.in.
* libgimp/gimpfileselection.c: Define S_ISDIR and S_ISREG if
necessary.
* tools/pdbgen/pdb/fileops.pdb: Must have a
statement (even an empty one) after a label.
* app/fileops_cmds.c: Autogenerated file reflects above changes.
* app/crop.c: Include <string.h>.
* app/{app_procs,batch,fileops,datafiles,errorconsole,general,
plug_in,temp_buf,tile_swap}.c: Test NATIVE_WIN32, not
_MSC_VER. (NATIVE_WIN32 means we are using the Microsoft C
runtime, even if we might be compiling with gcc.)
* app/fileops.c: Don't include <process.h> here.
* app/fileops.h: Do include <process.h> here.
* app/gimpparasite.c: Include config.h, guard inclusion of
<unistd.h>. (Is the inclusion of unistd.h in source files all over
the place really necessary?)
* app/ink.c: MSC doesn't handle conversion from unsigned __int64
to double, so cast to signed.
* app/lut_funcs.c: Include config.h, and define rint() if necessary.
* app/pixel_processor.c: Include config.h without "..", like in
all the other places. Include <string.h>
* app/text_tool.c: Guard the "POINTS" identifier that clashes with
<windows.h>, sigh.
1999-05-02 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/commands.c: call gdisplays_resize_cursor_label(gimage)
after changing the image's unit.
* app/gdisplay.c: update the cursor label after resizing it's
frame, so the old (wrong) value gets overwritten.
* app/resize.c: it makes more sense to take the image's unit from
the "print size" frame rather than from "pixel dimensions".
Set reasonable boundaries to avoid over/underflows with crazy
resolutions. Code and gui cleanup.
The constants for min/max image size/resolution should probably go
to a central place.
* app/text_tool.c: set the resolution in the X font spec only if
the size is specified in points (reported by Austin).
* libgimp/gimpsizeentry.c: fixed a bad bug in the boundary and
resolution setting code (was not noticable before the new
resize/scale ui).
* plug-ins/gdyntext/*: version 1.4.3
* plug-ins/png/png.c: gcc suggested parentheses.
* app/gimpimage.h: guide types used to start at 1, so make them
start at 1
* tools/pdbgen/enums.pl
* app/guides_cmds.c: autogenned files reflect above change
-Yosh
* app/edit_selection.c: removed some nonfunctional code.
* app/paint_core.c: remove the alt toggles perfectmouse behaviour.
* app/paintbrush.c: when ctl (or alt) is held set the fg (or bg) color.
* app/gimpparasite.[ch]: made char *name parameters const.
* app/parasitelist.c: removed unused static variable.
* app/gimpdrawable.c, app/gimpimage.c, app/undo.[ch]: added
support for undoing parasite changes.
* libgimp/gimp.h, libgimp/gimpimage.c: added
gimp_undo_push_group_start and gimp_undo_push_group_end
* libgimp/parasite.[ch]: added undoable flag.
* plug-ins/gdyntext/font_selection.c: fixed c++ style comment.
* plug-ins/gdyntext/gdyntext.c: use the new undoable parasites.
* plug-ins/rcm/rcm_misc.c: arctg can't be inline because it is
used in other .c files
* plug-ins/waterselect/waterselect.c,
* plug-ins/rotators/rotators.c, app/tips_dialog.c, app/plug_in.c:
fixed some warnings
1999-04-22 Michael Natterer <mitschel@cs.tu-berlin.de>
First version of per-tool paint options. No PDB interface yet.
The tool options dialog got rather big when in per-tool mode, so
it will probably have to become a notebook.
It's not yet 100% consistent. If switched off, everything should
behave exactly like before.
* app/Makefile.am
* app/paint_options.h: new file
* app/tool_options.c: PaintOptions gui. Maintain a list of all
paint tools' ToolOptions to enable switching between global and
per-tool paint options.
* app/brush_select.[ch]: changed packing boxes, tables, ...
The paint options in the brush selection can be hidden now.
Moved create_paint_mode_menu() to paint_options.h and
tool_options.c and renamed it to paint_mode_menu_new().
* app/gimage_mask.c
* app/gimpbrush.[ch]
* app/gimpbrushlist.[ch]
* app/paint_core.c: moved gimp_brush_[set|get]_spacing() from
gimpbrushlist.[ch] to gimpbrush.[ch].
Moved gimp_brush_[get|set]_[opacity|paint_mode]() to
paint_options.h and tool_options.c and renamed them to
paint_options_*_*(). They are "global paint options" now.
* app/airbrush.c
* app/blend.c
* app/bucket_fill.c
* app/clone.c
* app/convolve.c
* app/eraser.c
* app/ink.c
* app/paintbrush.c
* app/pencil.c: all paint tools' options are derived from
"PaintOptions" now. Opacity and paint mode are obtained through
macros which take into account the current paint options mode.
* app/buildmenu.h: #include <gtk/gtk.h>
* app/color_picker.c
* app/text_tool.c: changed spacings.
* app/gimprc.[ch]: new gimprc option "global-paint-options"
* app/preferences_dialog.c: Added a "Tool Options" page. Code
cleanup. Some work on the convenience constructors test site.
* app/tools.c: fixed "unused variable" warning.
Tue Apr 20 23:38:26 BST 1999 Austin Donnelly <austin@gimp.org>
* app/bezier_select.c: add the new args to gimp-paintbrush PDB
calls.
* app/blend.c
* app/bucket_fill.c
* app/invert.c: check return from procedural_db_run_proc() rather
than dereferencing NULL.
* app/paintbrush.c: plumb the non-gui fade_out option into the
functions that actually do the work, rather than using
an uninitialised value.
* app/procedural_db.c: better error messages on PDB typecheck fail
in procedural_db_run_proc. Also now valid to
procedural_db_destroy_args() on a NULL pointer.
* app/procedural_db.h: pdb_type_name() function added, plus
comment urging people to keep the enum and strings in step.
* tools/pdbgen/README: added paragraph on how to run pdbgen.pl
* tools/pdbgen/pdb/tools.pdb: fade_out parameter is valid to be 0
* app/tools_cmds.c: new version of generated file
1999-04-18 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/paintbrush.c: fixed a sensitive setting bug I introduced
with the last change.
* app/text_tool.c: added a toggle button which enables calling
gDynText.
* app/tool_options.c: the toggle callback does some more sensitive
settings.
Tue Apr 13 22:17:23 BST 1999 Andy Thomas <alt@gimp.org>
Changed:-
* app/bezier_select.c
* app/bezier_select.h
* app/pathsP.h
* app/paths_dialog.c
* app/transform_core.c
* app/transform_core.h
* app/undo.c
New:-
* pixmap/locked.xpm
New image. (Your welcome to improve upon it...)
Paths can now be locked down for transformations. Click next to the
paths preview and a icon will appear. This path will "locked" during
transformations (via the transforms tool). Undo for these path
transformations is also available.
Fixed bug when creating a path for the first time when no paths dialog
visible.
1999-04-12 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/airbrush.c
* app/bezier_select.c
* app/blend.c
* app/brightness_contrast.c
* app/bucket_fill.c
* app/by_color_select.c
* app/clone.c
* app/color_balance.c
* app/color_picker.c
* app/convolve.c
* app/crop.c
* app/curves.c
* app/ellipse_select.c
* app/eraser.c
* app/flip_tool.c
* app/free_select.c
* app/fuzzy_select.c
* app/histogram_tool.c
* app/hue_saturation.c
* app/ink.c
* app/iscissors.c
* app/levels.c
* app/magnify.c
* app/move.c
* app/paintbrush.c
* app/pencil.c
* app/posterize.c
* app/rect_select.[ch]
* app/text_tool.c
* app/threshold.c
* app/transform_tool.c
* app/tools.[ch]
* app/toolsF.h: again: all tools :(
* app/Makefile.am
* app/tool_options.[ch]
* app/selection_options.h
* app/tool_options_ui.h: new files.
Ok, this time it's general enough for future extensions:
- The tool options structures are organized like the gtk object
system to allow derived tool options.
- Renamed all create and reset functions to *_options_new() and
*_options_reset() to reflect this.
- Changed tools_register() again. Now it takes just a pointer to a
ToolOptions structure.
- Moved almost the entire tool options gui code to tool_options.c.
- Visually separated the common selection options from the
tool-specific ones. I'd like to do the same with opacity/paint
mode in all paint tool options but I think this needs some more
discussion.
* app/histogram_tool.c: changed packing boxes, label alignments.
* app/paintbrush.c: some more sensitive settings. The gradient
feature can now be toggled with a button. Hopefully didn't break
anything.
* app/Makefile.am: build color_cmds, lut_funcs, and pixel_processor
* app/app_procs.c: feedback in the splash screen when loading
parasites.
* app/boundary.c: Optimized find_empty_segs.
* app/brightness_contrast.[ch]
* app/levels.[ch]
* app/posterize.[ch]:
moved pdb and lut calculation code. These files now contain only
GUI functions.
* app/channel.c: Optimized channel_bounds (fewer compares, better
use of registers). Use color_region instead of channel_*_segment
in channel_combine_rect. Optimized channel_combine_ellipse by
skipping pixels inside of the ellipse. Use
pixel_region_process_parallel in channel_combine_mask. Use a
GimpLut in channel_invert, and channel_sharpen.
* app/invert.c
* app/equalize.c: moved the lut functions to lut_funcs.c
* app/gimpdrawable.c, app/gimpdrawableP.h
* app/gimpimage.c, app/gimpimageP.h: removed unused gimpmatrix
variables/includes.
* app/gimplut.[ch]: added new function gimp_lut_process_inline
that operates on a single PixelRegion.
* app/gimpparasite.[ch]: new functions to save/load parasiterc
* app/parasitelist.[ch]: new functions to save/load ParasiteLists
in/from files.
* libgimp/parasite.[ch]: new functions to load/save parasites.
* app/internal_procs.c: get some procs from new location in
color_cmds.h.
* app/pixel_region.[ch]: moved pixel_regions_process_parallel
related functions to a new file.
* app/color_cmds.[ch]: new files for PDB
definitions/implementations of color correction functions.
* app/lut_funcs.[ch]: new files to hold lut creation functions.
* app/pixel_processor.[ch]: new files that contain the
pixel_regions_process_parallel routines. Added some new
capabilities that are currently unused.
1999-04-08 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/airbrush.c
* app/bezier_select.c
* app/blend.c
* app/brightness_contrast.c
* app/bucket_fill.c
* app/by_color_select.c
* app/clone.c
* app/color_balance.c
* app/color_picker.c
* app/convolve.c
* app/crop.[ch]
* app/curves.c
* app/ellipse_select.c
* app/eraser.c
* app/flip_tool.c
* app/free_select.c
* app/fuzzy_select.c
* app/histogram_tool.c
* app/hue_saturation.c
* app/ink.c
* app/iscissors.c
* app/levels.c
* app/magnify.c
* app/move.c
* app/paintbrush.c
* app/pencil.c
* app/posterize.c
* app/rect_select.[ch]
* app/text_tool.[ch]
* app/threshold.c
* app/transform_tool.c
* app/tools.[ch]
* app/toolsF.h: in other words: all tools
Implemented the "reset tool options" feature.
- All tools register with a title string and a reset function now.
- The tool options' variables have two related <var>_d (default)
and <var>_w (widget) variables to restore the default values.
"Standardized" the tool options UI:
- Put the stuff info a frame to give a hint that the dialog's
contents will change.
- table layout, sensitive setting, spacings, borders, ...
As I had them all in my emacs simultaneously, I couldn't resist to
standardize the tools' *.c files declaration parts ;) Ansi stuff.
Wed Apr 7 22:44:02 BST 1999 Andy Thomas <alt@gimp.org>
Changed:-
* app/curves.c
* app/image_map.c
* app/image_map.h
Curves dialog now has "interactive feedback". Press and drag the
mouse button in the image window and a marker will appear in the
curves dialog showing the channel value at that point.
1999-04-06 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/gimpunit.c
* libgimp/gimpunit.[ch]
* libgimp/gimpunitmenu.c
* libgimp/gimpsizeentry.[ch]: enabled "percent" pseudo-unit.
New function gimp_size_entry_set_size() to set the values which
will be treated as 0% and 100%.
* app/crop.c
* app/rotate_tool.c
* app/scale_tool.c: enable "percent".
* app/rect_select.c fixed size selections can be made in units and
percent now, table layout, label adjustment.
1999-04-05 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/action_area.h: #include <gtk/gtk.h>.
* app/devices.c: made the "Input Devices" dialog follow the action
area conventions. Grab pointer in the pattern/brush preview popups.
* app/errorconsole.c: use the actionarea functions.
* app/gimpunit.c: had the wrong copyright header.
* app/info_dialog.c: correctly set the spinbuttons' digits.
* app/perspectice_tool.c: removed #include <stdio.h> again but
didn't forget to s/sprintf/g_snprintf/ this time.
* app/preferences_dialog.c: unified order of varible definitions,
removed some unused variables.
* app/crop.c
* app/file_new_dialog.c
* app/info_dialog.[ch]
* app/interface.c
* app/preferences_dialog.c
* app/rotate_tool.c
* app/scale_tool.c
* libgimp/gimpsizeentry.[ch]
* libgimp/gimpunitmenu.[ch]: prepared for "percent" in size
entries.
1999-04-02 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/gimage_mask.[ch]: made function headers ansi compliant.
* app/file_new_dialog.c
* app/preferences_dialog.c: minor GUI and signal handling
changes. Added a WM hint pixmap to the prefs dialog but commented
it out because it looked ugly. If someone has a nice pixmap,
please try it and tell me ;)
* app/color_picker.c
* app/crop.c
* app/info_window.c
* app/perspective_tool.c
* app/rotate_tool.c
* app/scale_tool.c
* app/info_dialog.[ch]: the info_dialog allows scales, spinbuttons
and sizeentries now. Made some dialogs use these widgets and
added unit support. Sprinkled some g_snprintf's, removed
#include's, ansi issues, ...
* app/session.c: don't call a NULL callback.
* libgimp/gimpsizeentry.[ch]: new function
gimp_size_entry_add_field() which allows a more flexible GUI
layout. More intelligent signal handling.
1999-03-25 Michael Natterer <mitschel@cs.tu-berlin.de>
* unitrc: corrected a typo
* app/commands.c
* app/global_edit.c
* app/gradient.c
* app/interface.[ch]
* app/palette.c
* app/paths_dialog.c: the query_[string|..]_boxes connect their
close callback to a user provided signal now.
* libgimp/gimpimage.c: gimp_image_get_unit() doesn't need a
g_return_if_fail()
* libgimp/gimpunitmenu.c: memory leak & compiler warning
* configure.in
* gimprc.in
* user_install
* user_install.bat
* plug-ins/Makefile.am
* plug-ins/FractalExplorer/*: added the FractalExplorer plugin.
* app/install.c: ditto and made the install help text more
editable by moving it to an array.
* app/paint_funcs.[ch]: Added an edge_lock parameter to
thin_region. Split the radius parameter into xradius and yradius
in thin_region and fatten_region.
* app/channel.c: fixed a bug in channel_bounds that I introduced
last time I tried to fix a bug in channel_bounds. Minor
modifications to work with the improved thin/fatten region
functions.
Sat Mar 20 22:51:51 GMT 1999 Adam D. Moss <adam@gimp.org>
* fileops.c: The file revert operation clears the undo stack
upon a revert to get rid of the actions causedby the open
operation.
Sat Mar 20 21:55:53 GMT 1999 Adam D. Moss <adam@gimp.org>
* disp_callbacks.c: Reduce some possibly-redundant re-renders
on expose.
* gdisplay.c gdisplay.h: Export a function to idly refresh from
the composite buffer without doing a re-render.
1999-03-16 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/gdisplay.h: double the length of the cursor_format_str as
users may define strange units now
* app/xcf.c: forgot a sanity check when loading/saving the user
unit property
1999-03-16 Michael Natterer <mitschel@cs.tu-berlin.de>
This implements the rest of the unit system (unitrc loading and
saving and full PDB interface)
* Makefile.am
* gimp.1
* user_install
* user_install.bat
* unitrc: new file (default unit database) and some documentation
* app/Makefile.am
* app/gimpunit.c
* app/gimpunit_cmds.h
* app/unitrc.h: new files enabling the unit database and PDB
access to the unit system
* app/app_procs.c: parse and save unitrc
* app/gimprc.[ch]: enable unit parsing. New function
init_parse_buffers() to enable unitrc to be loaded before gimprc
* app/gimage_cmds.[ch]: new PDB procedures which set/return an
image's unit
* app/install.c: mention unitrc installation
* app/xcf.c: new xcf property for user defined units. An image's
unit is saved as either an integer ID (built in units) or as
a full unit definition without any ID
* libgimp/Makefile.am: moved gimpunit.o from libgimpi.a to
libgimp.a
* libgimp/gimp.h
* libgimp/gimpimage.c: get/set an image's unit with PDB calls
* libgimp/gimpunit.h: this file is now the header for both
app/gimpunit.c and libgimp/gimpunit.c
* libgimp/gimpunit.c: does the unit calls as PDB calls now
* libgimp/gimpunitmenu.[ch]: enable user unit functionality and a
unit selection dialog
* libgimp/gimpsizeentry.c: disble hilighting on focus_in_event and
minor bugfixes
* plug-ins/tiff/tiff.c: set image unit to "mm" if tiff unit is
"cm", save "cm" if image unit is metric
1999-03-12 Michael Natterer <mitschel@cs.tu-berlin.de>
This is mostly unit stuff and code cleanup
* libgimp/gimpi.def: add some functions
* libgimp/gimpsizeentry.[ch]: new function
gimp_size_entry_set_refval_digits() which allows for float pixel
input. SIGFPE bugfix from Yasuhiro Shirasaki
<yasuhiro@awa.tohoku.ac.jp>, minor bugfixes.
* libgimp/gimpunitmenu.[ch]: add a separator after "pixels",
bugfixes.
* app/interface.[ch]: split up the old query_string_box() into
query_[string|int|float|size]_box(). All functions take an
optional GtkObject* parameter and connect to that object's
"destroy" signal, this fixes some segfaults. And a global
s/container_border_width/container_set_border_width/
* app/commands.s: grow, shrink, border, feather now use the
query_size_box. Used MIN(xres,yres) for now for the pixel<->unit
calculations. Fixed some memory leaks.
* app/global_edit.c
* app/gradient.c
* app/palette.c
* app/paths_dialog.c: changed the query_string_box() calls
Fri Mar 5 21:45:39 GMT 1999 Andy Thomas <alt@picnic.demon.co.uk>
This is a bit of a biggy. Added paths to layers & channels
dialog. This is not complete yet (it still has some rough edges ;-)
New:-
* paths_dialog.c
* paths_dialog.h
* pathsP.h
These are the core parts of the paths dialog & interaction.
* tools/penadd.xpm
* tools/pendel.xpm
* tools/pennorm.xpm
* tools/penedit.xpm
* tools/penstroke.xpm
New images found in the dialog. Maybe someone with a better
artistic flair could replace these?
Changed:-
* Makefile.am
Added new files for build
* layers_dialog.c
Added new tab for paths.
* bezier_select.h
* bezier_selectP.h
* bezier_select.c
Rearrangement & fixes. Not finished yet.
* iscissors.c
Header file changes. (Need to include more headers).
* gdisplay.c
* gdisplay.h
Hmmm... Added a function that did a mapping from gimage to gdisp.
This is a little bit of a "hack", but it was needed.. really.
* ops_buttons.h
* ops_buttons.c
Enhanced to create more types of button ops. Used in the paths dialog.
* channels_dialog.c
Header file changes?
* xcf.c
Paths stored in new PROP. Yosh.. I did as you and Adam suggested.
* gimpimage.c
* gimpimage.h
* gimpimageP.h
Added paths items to the image structures.
* app/Makefile.am: added gimphistogram*, histogramwidget*,
removed histogram.[ch]
* app/histogram.[ch]: removed. replaced with histogramwidget.[ch].
* app/{gimphistogramP.h, gimphistogram.h, gimphistogram.c}: new
functions that calculate histograms in parallel and perform
calculations on them.
* app/histogramwidget.[ch]: Same as old histogram.[ch], only it is
now a real widget, and it uses GimpHistograms instead of arrays of
values.
* app/curves.c: #include gimphistogram.h instead of histogram.h.
* app/equalize.c: use GimpHistogram and GimpLut.
* app/gimpbrush.c, app/gimpimage.c, app/gimpset.c: use
GTK_RUN_FIRST in calls to gimp_signal_new.
* app/histogram_tool.c, app/levels.c, app/threshold.c: modified to
use the new HistogramWidget.
* app/paint_funcs.c: removed some unused variables.
* app/preferences_dialog.c: only display the num-processor field
if we are configured --with-mp
* plug-ins/gee/gee.c: removed a couple of c++ style comments.
Sat Feb 27 18:07:53 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/scale.c: use image's units, not the ruler units, when
dimentioning the rulers. Gimprc ruler-units syntax has no
use anymore.
* app/gdisplay.[ch]: applied statusbar unit display patch from
Michael Natterer.
Fri Feb 26 21:19:10 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/convert.c:
Many revisions to the box-cut quantizer used in RGB->INDEXED
conversion. Box to be cut is chosen on the basis of posessing an
axis with the largest sum of weighted perceptible error, rather
than based on volume or population. The box is split along this
axis rather than its longest axis, at the point of error mean
rather than simply at its centre. Error-limiting in the F-S
dither has been disabled - it may become optional again later. If
you're convinced that you have an image where the old dither looks
better, let me know.
Sat Feb 20 16:12:33 CST 1999 Shawn T. Amundson <amundson@gimp.org>
* app/tips_dialog.c: Add default to Cancel button, remove
unset GTK_RECEIVES_DEFAULT from prev/next buttons (they
are like toolbar buttons), changed abreviated prev to
previous, prev/next button are now same size, cancel button
is in a button box. Added vboxes where necessary to prevent
prev/next and check button from filling vertically.
* app/app_procs.c: when splashscreen dialog is larger than the
logo, (due to huge font), center logo.
* app/file_new_dialog.c: patch from Marco Lamb <lm@geocities.com>
disallows resizing, changes vertical expanding of widgets to
not occur
* app/palette.c: patch from Marco Lamb <lm@geocities.com>. Makes
+/- buttons for zoom pixmaps (eventually, these can be replaced
with a magnifying glass with a little +/- I think), so that they
no longer expand as they did before. I modified his patch so it
did not create a misused toolbar. I did some other stuff here too,
moved Close button to the left, made it the window's default,
and unset GTK_RECEIVES_DEFAULT off of the non-bottom buttons.
* app/actionarea.c: another patch from Marco Lamb <lm@geocities.com>.
This one changes buttons to be put in a button box which is right
justified. If we decide later that spread is better, we can
change this easy enough.
* app/tools/zoom_in.xpm, app/tools/zoom_out.xpm: + and - graphics.
* libgimp/gimpunit.h
libgimp/gimpunit.c: New files from Michael Natterer
<mitschel@cs.tu-berlin.de>, gimp_unit_* routines.
* app/gimage.h
app/gimpimage.h
app/gimpimage.c
app/gimpimageP.h
app/xcf.c: Patches from Michael Natterer <mitschel@cs.tu-berlin.de>,
which keep a unit assocated with an image.
done in pieces, don't expect to be able to compile on Win32 from
these sources yet. Ans of course, the official version of GTk+
doesn't include the Win32 stuff yet.
* app/gimplut.[ch]: new source files that implement pixel Look Up
Table functions.
* app/Makefile.am: build gimplut.[ch]
* app/brightness_contrast.c
* app/curves.c
* app/invert.c
* app/levels.c
* app/posterize.c: Use the new lut functions. Use
pixel_region_process_parallel in the PDB versions of these routines.
* libgimp/parasite.h
* libgimp/parasite.c: new functions parasite_name and
parasite_compare.
* app/gimpdrawable.c:
* app/gimpdrawable.h: new function
gimp_drawable_get_color_at(...) returns the RGBA[color index]
value at a specified position in the drawable. Don't set the dirty
bit on the image if a new parasite is the same as the old.
* app/gimpimage.c
* app/gimpimage.h new function
gimp_image_get_color_at(...) returns the RGBA[color index]
value at a specified position in the drawable. Don't set the dirty
bit on the image if a new parasite is the same as the old.
* app/by_color_select.c
* app/color_picker.c: use the new gimp_*_get_color_at
functions instead of messing with the tiles.
* app/layer.c: fixed a minor warning.
* app/commands.c:
don't scale the image if the new size == the old size
* app/channel.c: optimized channel_bounds by only checking the
pixels in a tile if it is not already entirely within the
currently computed bounds.
Sun Feb 14 20:43:55 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/channels_dialog.c: don't #include resize.h - it's not needed
* app/preferences_dialog.c: ditto.
* app/resize.c: do all dialog creation here to factor out lots of
common code in commands.c and layers_dialog.c. Also cancel
resize/scale dialog on destruction/removal of images/layers -
proper fix for Peter Teichman's bug.
* app/resize.h: new prototype for resize_widget_new() - beginnings
of resolution-aware scaling.
* app/commands.c: pull all the resize/scale dialog creation stuff
out to resize.c
* app/layers_dialog.c: same again.
* app/layer.c: add REMOVED signal, sent when a layer is removed
from an image. Layers typically aren't destroyed until their
undo info expires.
* app/layer.h: prototype for layer_removed() call.
* app/gimpimage.c: send out removed signal.
Sun Feb 14 01:27:29 GMT 1999 Austin Donnelly <austin@gimp.org>
New manpage plus bumper fun pack of bugfixes.
* gimprc.5.in: NEW FILE: beginnings of some docs on gimprc file
format.
* configure.in: generate gimprc.5 from gimprc.5.in
* Makefile.am: install gimprc.5
* .cvsignore: ignore gimprc.5, it's auto generated.
* gimp.1: fix a few paths and URLs. Mention the modules/
directory in user's gimpdir.
* app/commands.c: cancel resize or scale dialogs when image
they're for is destroyed, rather than segfaulting when Ok is
clicked. Thanks to Peter Teichman <peter@zeno.dorm.duke.edu>
for pointing this one out. Layer resize/scale still suffers
from same problem, but Adam's working on L&C at the moment.
* app/gdisplay.c: off-by one error on bounds check in making image
title.
* app/module_db.c: some would consider it foolish returning to
code you've just unloaded. So don't do that.
* app/plug_in.c: when superceeding a PDB function with a newer one
of the same name, remove pointers to the old one from the
plugins that originally registered them. Fixes Nick Lamb's
pluginrc file corruption thing, and catches the (common?)
error of copying a plugin to a different name but failing to
change what it registers. Also, if registering a file
loader/saver, make sure it has set an extension, prefix, or
magic number it's interested in - that way code that relies
on checking this doesn't get confused.
Sun Feb 7 15:04:23 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/fileops.c: More robust and kickin' thumbnail support.
* app/edit_selection.c app/layer.c app/layer.h: Working
on lazy opaque layer moves. Disabled for now.
* app/gdisplay.c
* app/gimage.h
* app/gimpimage.c
* app/gimpimage.h
* app/image_render.c
* app/tile_manager.c: Errr, I don't remember. No, seriously.
Nothing of consequence.
Sat Feb 6 18:16:57 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/gdisplay.c: gdisplay_format_title now parses a format string
set by the user to control what goes in the image window
titles.
* app/gdisplay.h: gdisplay_update_title() prototype.
* app/gimprc.c
* app/gimprc.h: image-title-format added.
* app/scale.c: update a display's title when zooming in/out
* gimprc.in: sample image-title-format setting
* app/gimpdrawable.c (gimp_drawable_set_name): Fix adding of
numbers after drawable copies. We used to get pairs of duplicates
after adding the same name several times.
(Try by adding a new layer several times in the layers dialog. You will
get New Layer, New Layer#2, New Layer#3, New Layer#3 (again!), New Layer#4,
New Layer#4 (again!), etc.)
Wed Jan 27 21:52:43 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/scale.c: oops - should use the image resolution, not the
screen resolution. D'oh!
* app/gimpdrawable.c: only merge shadow image if there actually is
one.
* plug-ins/emboss/emboss.c: small optimisation: use
gimp_drawable_mask_bounds() to calculate only the pixels that
are actually in the selection.
Mon Jan 25 20:40:26 GMT 1999 Austin Donnelly <austin@gimp.org>
* user_install: create modules/ directory in user's ~/.gimp-1.1 dir
* app/install.c: include description of ~/.gimp-1.1/modules, plus
scroll info back to top when done inserting text since it
looks nicer. Also make window that holds result of running
user_install a little larger so we see all messages at once.
* app/gdisplay.h: FUNSCALE_{X,Y} macros for floating point
unscales.
* app/scale.c: show rulers in real-world units (inches/cm/pixels)
if dot-for-dot is turned off, plus smoother ruler updates by
using FUNSCALE so we don't jump in pixel steps at high
magnification factors.
* app/interface.c: don't set the ruler metrics for now - it's
easier to do the calculations in pixels. Need to rethink this
a little anyway.
* docs/parasites.txt: added jpeg parasite info.
Sat Jan 23 18:43:23 GMT 1999 Adam D. Moss <adam@gimp.org>
* plug-ins/gif/gif.c: Multi-line comments, a little more
sanity-checking.
* app/convert.c: Cosmetic changes to the warning about having
too many colours for saving transparent/animated GIFs.
* app/gdisplay.c: Titlebar is correctly updated upon revert.
* app/paint_funcs.c: Minor improvement.
* docs/parasites.txt: Minor amendments.
* plug-ins/jpeg/jpeg.c: Minor code comment amendments.
Thu Jan 21 00:10:33 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gimpimage.c: Backed out last change for now, since I'm a
coward and yosh was threatening to make a release...!
Wed Jan 20 22:37:13 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gimpimage.c: Enabled the gimage->projection copy-on-write
hack for RGBA/GRAYA single-layer images. Masks/channels
probably don't show yet when this is active. Report strangeness.
Thanks.
Mon Jan 18 22:55:19 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gimpimage.c app/gimpimage.h:
Part one of an effort to allow a one-layer gimage
to share tiles with its own projection courtesy of
copy-on-write, where sane. This can save megabytes
when working with such images.
The code is 'mostly working' rather than 'perfect',
so it's disabled until I have time to finish it.
Sun Jan 17 22:42:26 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gdisplay.c app/gdisplay.h app/gimage_cmds.c:
An image's projection is now copy-on-write duplicated
upon duplication of the image. This should save some
time and memory for 'duplicate'.
This needed a new function which is prototyped in gdisplay.h:
gdisplays_finish_draw() which completes all outstanding
idlerendered-projections (we don't want to c-o-w an
incomplete projection).
* app/interface.c: #include "dialog_handler.h"
Sun Jan 17 20:36:45 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/gimage_cmds.c app/gimpimage.c app/layers_dialog.c
Guides are now duplicated upon image duplication.
Guides are now scaled upon image scaling.
Lowering, raising, and renaming a layer now correctly
mark the image as dirty.
Sun Jan 17 16:56:25 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/blend.c app/bucket_fill.c app/convert.c app/crop.c
app/cursorutil.c app/cursorutil.h app/dialog_handler.c
app/dialog_handler.h app/fuzzy_select.c app/gdisplay.c
app/gimage_cmds.c app/gimpimage.c app/scroll.c
app/transform_core.c app/xcf.c
Hourglasses also apply to all registered dialogs. Hourglasses
added in a couple more important places. New hack lets
hourglasses be added and automagically removed again when
gimp/gtk re-enters the idle loop.
1999-01-15 Federico Mena Quintero <federico@nuclecu.unam.mx>
* Updated gtk_toggle_button_set_state() to
gtk_toggle_button_set_active() in all the files.
* app/colormaps.c
* app/devices.h
* app/tips_dialog.h: minor cleanups
* app/gimpimage.c: the dirty/clean handling seemed weird, and wasn't
correct in all cases. Just do a straight increment/decrement to
try to fix it.
-Yosh
Sun Jan 11 00:24:21 GMT 1999 Austin Donnelly <austin@greenend.org.uk>
Bit of a large checkin this - it's basically three things:
1 - GimpModules using gmodules to dynamically load and
initialise modules at gimp start of day.
2 - Color selectors now register themselves with a color
notebook.
3 - progress bars have been cleaned up a bit, so now have
progress indictations on all transform tool and gradient
fill operations. Not done bucket fill, but that seems to
be the next candidate.
New directories:
* modules/: new directory for dynamically loadable modules.
New files:
* modules/.cvsignore
* modules/Makefile.am
* modules/colorsel_gtk.c: GTK color selector wrapped up as a
color selector the gimp can use.
* app/gimpprogress.[ch]: progress bars within gimp core, either as
popups, or in the status bar. This is mainly code moved out
of plug-in.c
* app/color_notebook.[ch]: color selector notebook, implementing
very similar interface to color_select.h so it can be used as
a drop-in replacement for it.
* libgimp/color_selector.h: API color selectors need to implement
to become a page in the color_notebook.
* libgimp/gimpmodule.h: API gimp modules need to implement to be
initialised by gimp at start of day.
Modified files:
* Makefile.am: add modules/ to SUBDIRS
* libgimp/Makefile.am: install gimpmodule.h and color_selector.h
* app/gimprc.[ch]: recognise module-path variable.
* gimprc.in: set module-path variable to something sensible
(currently "${gimp_dir}/modules:${gimp_plugin_dir}/modules").
* app/Makefile.am: build color notebook and gimpprogress
* app/app_procs.c: register internal GIMP color selector with
color notebook.
* app/asupsample.c: call progress function less frequently for
better performance.
* app/asupsample.h: progress_func_t typedef moved to gimpprogress.h
* app/blend.c: make callbacks to a progress function
* app/color_area.c: use a color notebook rather than a color selector
* app/color_panel.c: ditto
* app/color_select.c: export color selector interface for notebook
* app/color_select.h: color_select_init() prototype
* app/flip_tool.c: flip the image every time, rather than every
second click.
* app/interface.c: move progress bar stuff out to
gimpprogress.c. Make the code actually work while we're at it.
* app/interface.h: move prototypes for progress functions out to
gimpprogress.h
* app/plug_in.c: load and initialise modules (if possible). Move
progress bar handling code out to gimpprogress.c
* app/plug_in.h: keep only a gimp_progress * for each plugin, not
a whole bunch of GtkWidgets.
* app/scale_tool.c
* app/rotate_tool.c
* app/shear_tool.c
* app/perspective_tool.c: progress bar during operation.
De-sensitise the dialog to discourage the user from running
two transforms in parallel.
* app/transform_core.c: recalculate grid coords when bounding box
changes. Only initialise the action area of the dialog once,
to avoid multiple "ok" / "reset" buttons appearing. Undraw
transform tool with correct matrix to get rid of handle
remains on screen. Call a progress function as we apply the
transform matrix. A few new i18n markups. Invalidate
floating selection marching ants after applying matrix.
* app/transform_core.h: transform_core_do() takes an optional
progress callback argument (and data).
* plug-ins/oilify/oilify.c: send progress bar updates after every
pixel region, not only if they processed a multiple of 5
pixels (which was quite unlikely, and therefore gave a jerky
progress indication).
Sun Jan 10 23:31:45 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/blend.c app/bucket_fill.c app/convert.c app/crop.c
app/cursorutil.c app/cursorutil.h app/fuzzy_select.c
app/gdisplay.c app/gdisplay.h app/gimage_cmds.c
app/gimpimage.c app/transform_core.c app/xcf.c:
Most lengthy UI-blocking operations now put up an
hourglass so the user can see that GIMP is working.
Let me know if there are other vital cases.
Redid the indexed palette dialog to not crash, to be a bit more
usable, and to be a cleaner module. A first shot at using gcg in
actual practice.. If something is screwed, let me know!
Mon Jan 4 23:21:56 GMT 1999 Andy Thomas <alt@picnic.demon.co.uk>
* app/blend.c
* plug-ins/script-fu/script-fu.c
A patch from Federico to add a spiral gradient type. The patch
has been slightly modified to allow both clockwise and anticlockwise
spirals and the numbers used to represent these types of gradients
have been made to follow on from currently allocated numbers (I hope
this will not break any scripts).
* i18n markings from Daniel Egger (mostly removal of tags around
PDB stuff), some constification
* I went on a sprintf pogrom. Use g_snprintf or g_strdup_printf
where applicable, to prevent overflows, especially with filenames
and translated strings. suid gimp is now more secure. ;)
-Yosh
Fri Dec 18 23:46:11 GMT 1998 Andy Thomas <alt@picnic.demon.co.uk>
Changed the palette dialog. New functionality. Better previews.
Can display larger palettes. Can import palettes from images and from
gradients. Fixed colour selection so that the hightlighted
square says in sync on redraws.
* app/convert.h
* app/palette.h
* app/palette.c
* app/gradient.c
* app/gradient_select.c
* app/gimage.c
* app/gimpimage.c
* app/gimpimage.h
New file:-
* app/palette_entries.h
* libgimp/gserialize.c
* libgimp/gserialize.h: Changed the enum values to allow for
simpler future expansion.
* libgimp/parasite.c
* libgimp/parasite.h: s/persistant/persistent/.
new accessor functions for parasites. #defines for new flags.
* app/paintbrush.c: added timeing code for brush strokes.
It is #ifed out, and is only valid for shift clicks.
* app/parasite_cmds.h: fixed a warning
* app/parasitelist.h
* app/parasitelist.c: added _for_each and _length functions
* app/gimpdrawable.c: set the dirty flag when adding or removing a
persistent parasite
* app/gimpimage.c: set the dirty flag when adding or removing a
persistent parasite. Fixed bug and removed debug statements in
merge_down.
* app/xcf.c: save and load resolution, parasites, and tattoos.
* app/main.c: updated the deserialize test.
* plug-ins/tiff/tiff.c
* plug-ins/gif/gif.c: use PARASITE_PERSISTENT define instead of 1
* plug-ins/bmp/bmp.c
* plug-ins/bmp/bmp.h: declare some struct variable as extern.
* app/paint_funcs.c: Lots of optimizations aimed at speeding up
painting. Should see a 2-4X speed up on most painting
(depending on paint modes, brush size etc.)
* app/drawable.c: check for NULL drawable in drawable_ID.
this stops us from being crashed by ill-behaved plug-ins
Sat Dec 12 17:36:51 GMT 1998 Austin Donnelly <austin@greenend.org.uk>
* app/interface.c
* app/gdisplay.c: tweak to make status bar update correctly (most
of the time). As Sven has already noted, there seems to be a GTK
bug involved.
* app/disp_callbacks.c: only update the cursor co-ords if we
actually know them. Gets rid of silly (0,0) announcements.
Sat Dec 5 21:31:57 GMT 1998 Austin Donnelly <austin@greenend.org.uk>
* app/commands.[ch]
* app/edit_selection.c
* app/gdisplay.[ch]
* app/gdisplay_ops.[ch]
* app/image_render.c
* app/info_window.c
* app/magnify.c
* app/menus.c
* app/scale.c: image rendering now happens with float scale
factors, independent in X and Y axes. Turning on dot-for-dot in view
menu does what gimp always used to do (ie one image pixel becomes
one monitor pixel). Dot-for-dot is on by default so people
shouldn't notice any difference unless they load an image that's
not at 72 dpi and also turn off dot-for-dot.
* app/app_procs.c
* app/gimprc.[ch]
* app/preferences_dialog.c: new gimprc options
(monitor-xresolution <float>) and corresponding
(monitor-yresolution <float>). Uglyness in preferences dialog to
add a "Monitor" page to the notebook, allowing user to set their
monitor's resolution or take it from the X server instead. This
badly needs cleaned up :(
* plug-ins/newsprint/newsprint.c: oops - this hasn't been working
for grayscale images since my last checkin. Now fixed.
I still don't know why those statusbar is sometimes not updated. The labels
are definitely set, but are sometimes not drawn. I guess this is a GTK
problem.
--Sven
First set of changes to integrate GAP (Gimp Animation Plugin written
by Michael Hofer)
New functions: gimp_layer_[get|set]_linked
gimp_image_raise_layer_to_top
gimp_image_lower_layer_to_bottom
--Sven
Sat Nov 14 23:16:55 GMT 1998 Austin Donnelly <austin@greenend.org.uk>
* app/gimpimage.h
* app/gimpimageP.h
* app/gimpimage.c
* app/gimage_cmds.c
* app/file_new_dialog.c
* app/info_window.c
* libgimp/gimp.h
* libgimp/gimpimage.c
* plug-ins/newsprint/newsprint.c
* plug-ins/tiff/tiff.c: gimp_image_{get,set}_resolution() calls
now get and set both X and Y resolutions. Gimp image struct now
has two resolution fields, one for each direction. I've updated
the two plugins which used the info (TIFF and newsprint).
* libgimp/Makefile.am
* configure.in: fix --disable-static compilation
* gimptool.in: use the right dir for scripts. Strip out path
from the compiled bin
* app/colormaps.c: comment out unused gamma_correct function
* app/layer.c: #include "libgimp/parasite.h"
* app/paint_funcs.c: convert icky C++ comments
* plug-ins/mosaic/mosaic.c
* plug-ins/cubism/cubism.c: cleanups
* plug-ins/libgck/gck/gckcolor.c: fix adaptive supersampling bug
-Yosh
Wed Oct 14 17:46:15 EDT 1998 Adrian Likins <adrian@gimp.org>
* app/*, po/de.po, de/POTFILES.in, libgimp/gimpintl.h:
Lots of ii8n stuff here and some additions to the de.po.
Applied gimp-egger-981005-1 ,gimp-egger-981006-1,
gimp-egger-981007-1, gimp-egger-981008-1,
gimp-egger-981009-1.patch, gimp-egger-981010-1.patch
* plug-in/guillotine/guillotine.c: added the coordinates
of the split images from the original image to the title.
ie foo.jpg (0,0) for the image in the topleft.
* plug-in/script-fu/scripts/neon-logo.scm,
perspective-shadow.scm, predator.scm,rendermap.scm,
ripply-anim.scm, select_to_image.scm,swirltile.scm,
xach-effect.scm: updated scripts to use new script-fu stuff
wooo boy! a big un!
in testing this, it looks like some of the po files are busted.
but the code stuff seems okay.
-adrian
* plug-ins/gif/gif.c: Added support for persistant GIF
Comments through the GIMP 1.1 Parasite mechanism where available.
Did some user-interface tweaks. Fixed a bug when trying to save
a GIF smaller than five pixels high as interlaced.
* app/convert.c: Minor text amendment
* docs/parasites.txt: Started a central list of parasite types
and their creators.
Sat Oct 3 21:01:34 BST 1998 Adam D. Moss <adam@gimp.org>
* app/channel.c app/channel_ops.c app/disp_callbacks.c
app/floating_sel.c app/gdisplay.c app/gdisplay.h
app/gdisplay_ops.c app/gimpimage.c app/image_map.c
app/interface.c app/layers_dialog.c app/plug_in.c app/undo.c
app/xcf.c:
Resizing image canvases should be less horrible to look at.
I've removed the implicit clear of the whole area when a
window is resized by the user, and clear the exposed area around
the image manually when appropriate.
Dialogs which want synchronous updates for previews and
such use displays_update_now().
Removed some old debugging nonsense which I don't want any more.
Thu Oct 1 17:10:32 BST 1998 Adam D. Moss <adam@gimp.org>
* app/gdisplay.c app/gdisplay.h: Okay, that didn't
take quite as long as expected. This is the first cut at
a gimp-wide IdleRender in place of the previously synchronous
displays_update(). A synchronous displays_update_now() is
implemented for stuff like brushes, but it isn't used right
now. (Seems to go pretty well without.)
I need feedback and (previously nonexistant!) bug reports...
please. =)
Thu Oct 1 12:44:19 BST 1998 Adam D. Moss <adam@gimp.org>
* app/floating_sel.c app/gdisplay.c app/gdisplay.h
app/gimpimage.c app/layers_dialog.c app/undo.c:
Temporarily disabled IdleRender code whilst working
on a more centralised approach.
Sat Sep 26 20:46:18 BST 1998 Adam D. Moss <adam@gimp.org>
* app/channel.c app/channel_ops.c app/drawable.c
app/floating_sel.c app/gdisplay.c app/gdisplay.h
app/gimpimage.c app/layers_dialog.c app/undo.c:
Moved the idlerender stuff into gdisplay.c. Implemented
idlerender when doing floating_sel->layer, and undoing/redoing
layer deletion.
idlerender would be useful in many other places for improving
interactivity, if it weren't for the following problems:
* By definition, idlerender doesn't wait for a
gdisplays_update() call before starting work - it just
runs in idle time, which due to CPU contention with
plugins may not be genuinely available idle time when
things are 'noninteractive'.
* Most GIMP functions don't know whether they're
being run interactively or not. idlerender only
makes sense for interactive work. This is why
it is currently only applied to those functions which
would normally only be activated manually.
* Mixing idlerender and drawable_update() /
gdisplays_update_area() calls can lead to a region
being rerendered twice.
Hence, some slogwork is needed before idlerender can be
applied in the more general case.
Sat Sep 19 01:19:18 BST 1998 Andy Thomas <alt@picnic.demon.co.uk>
* app/blend.c app/brush_select.c app/brush_select.h app/bucket_fill.c
app/gimpbrushlist.c app/internal_procs.c app/plug_in.c libgimp/gimp.c
libgimp/gimp.h libgimp/gimpmenu.c libgimp/gimptile.c
plug-ins/gfig/gfig.c
Infrastructure to allow gimp dialogs to be controlled from plugins.
Brush dialog can now be invoked multiple times. Dialogs invoked
via plugins do not control the active brush (dialog only used for
selections).
New gimp_interactive_selection_brush() function to popup dialog
Example of usage in the gfig plugin.
Other dialogs should be able to use this method of invocation.
Mon Aug 31 23:32:40 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/gimpimage.c (gimp_image_remove_layer_mask): add back a call to
gdisplays_flush that seems to have been lost in the
objectification.
* app/gimage_cmds.c app/gimage_cmds.h app/gimpimage.c
app/gimpimage.h libgimp/gimp.h libgimp/gimpenums.h
libgimp/gimpimage.c: Moved the guide PDB functions into
a more sensible place, made them accessible to plugins
through libgimp.
Mon Aug 31 16:33:11 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/gimpimage.[ch]
* app/gimage_cmds.[ch]
* app/layers_dialog.c: Added merge down procedure, I'm not really
sure if this behaves the way people expect it to, so please send
me any comments on what it actually should do. It also needs a
little testing, especially the pdb call.
* app/gimpimage.c: cleaned up Seth's merge commit a little. Also
changed the mode of a merged layer to normal, as this seems to be
the proper thing. Discussion is welcome here as well.
* app/gimage.h app/gimpimage.c app/gimpimage.h
app/internal_procs.c app/layer.c app/xcf.c:
Guide creation/deletion/query is now available as
PDB procedures. Not yet directly exported to libgimp,
and needs to be moved into gimage_cmds.c, but it
works.
Mon Aug 24 13:41:49 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/fileops.c (file_save): move the mru and docindex calls to
before the call to gimp_image_set_filename so that they are still
accessing valid memory. Fixes the filename corruption seen in
these interfaces.
* app/gimpimage.c: added a warning about the side effect that
caused the above bug.
ok, i modified *way* more files than CVS is telling me....
- add canvas_init machinery (tile_manager_validate equivalent)
- fix bugs in compositing code
- layers/channels dialog, previews
- all color handling should be fairly precision independent now
- replaced gimage_type and gimage_base_type with Tags
- remove concept of flat vs. layered gimages
ray lehtiniemi <rayl@netrover.com>
Sat Aug 15 22:53:36 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/gdisplay.c (gdisplay_update_cursor): Make sure we check the
return value from gimp_image_active_drawable.
bookkeeping without being used). Made copy_region more intelligent on
when to use tile sharing; some changes made to pixel_regions to
facilitate this. Fixed a refcount problem with xcf load and probably
a few other bugs that I've forgotten about. Added a sanity check in
set_undo_tiles to help with a problem larry is reporting with airbrush
and xinput. --sg
* app/gdisplay.c: corrected 2 annoyances: that stupid hash table == NULL
warning and the pointer in the title bar instead of the ID
* app/internal_procs.c: we're registering more procs, so make update the total
proc count
-Yosh
Tue Jul 28 15:04:39 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/gimpdrawable.h: reordered the GimpFillType enum,
unfortunately this will cause a lot of recompilation for the
rest of you.
----------------------------------------------------------------------
Modified Files:
ChangeLog app/gimpbrushgenerated.c app/gimpbrushlist.c
gimpbrushgenerated now supports the stingy_memory_use flag.
fixed a bug in select_brush() related to stingy_memory_use.
----------------------------------------------------------------------
Fri Jul 24 12:01:31 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/gdisplay.c (gdisplay_update_cursor): Fixed a string
allocation problem that failed to account for the trailing \0
(removed time sensitve calculation/malloc in the process).
----------------------------------------------------------------------
Modified Files:
ChangeLog app/Makefile.am app/brush_select.c app/gimpbrush.c
app/gimpbrush.h app/gimpbrushgenerated.c app/gimpbrushlist.c
app/gimplist.c app/paint_core.c app/paint_core.h
added axis to brushes. paint_core now references a brush instead
of a mask. cleaned up some [brush]list removal stuff.
Added Files:
app/vector2d.c app/vector2d.h
very basic vector math struct/functions.
----------------------------------------------------------------------
----------------------------------------------------------------------
Modified Files:
ChangeLog app/brush_select.c
app/gimpbrush.c app/gimpbrush.h app/gimpbrushgenerated.c
app/gimpbrushlist.c app/gimpbrushlist.h
removed the index field from GimpBrush. tweaked the brush renaming
code
app/edit_selection.c:
look ahead in the event queue and process as many arrow keys as we
can.
----------------------------------------------------------------------
----------------------------------------------------------------------
Modified Files:
ChangeLog app/brush_select.c app/gimpbrush.c app/gimpbrush.h
app/gimpbrushlist.c
made the scrollbars recalc in brush_select when a brush is
added/removed.
GimpBrushLists now force brush names to be unique.
----------------------------------------------------------------------
* app/fileops.c: Added the ability to make multiple
selections from GIMP's load-file-selector. It's
adequate but not perfect without the ability to get
the filesel's idea of its cwd via clean GTK coding.
* app/convert.c: Minor textual changes.
----------------------------------------------------------------------
Modified Files:
ChangeLog app/brush_edit.c app/brush_edit.h app/brush_select.c
app/gimpbrush.c app/gimpbrushgenerated.c
app/gimpbrushgenerated.h app/gimpbrushlist.c
added support for loading generated brushes and updated the
brush_edit a bit.
Added Files:
data/brushes/round1.vbr
A sample generated brush.
Wed Jul 15 22:06:32 CDT 1998 Shawn T. Amundson <amundson@gimp.org>
* Cursor location in statusbar
* Fixed resize of window
* progressbar is smaller now
----------------------------------------------------------------------
Modified Files:
ChangeLog app/brush_edit.c app/brush_select.c
app/gimpbrushgenerated.c app/gimpbrushgenerated.h
app/interface.c
Added freeze/thaw to gimpbrushgenerated.
added a close button and a preview to the brush_edit dialog.
----------------------------------------------------------------------