* app/tile.c
* app/tile.h
* app/tile_manager.c
* app/tile_swap.c:
Allocate Tile's array of TileRowHints dynamically. Make type
of TileRowHint explicit since it's fairly space-critical.
Can save several hundred K of memory with this and struct
changes.
Added warnings for old basically-untested-or-insane
paths through the tile referencing code.
* app/tile_pvt.h: Shrink down and rearrange fields of Tile
struct to save some space with gcc's padding for most people.
* app/paint_funcs.c: Use tile_sanitize_rowhints() to ensure
that rowhints have been allocated before use.
* app/channel_ops.c
* app/gdisplay.c
* app/pixel_region.c: Cosmetic, sanity or unfinished debug
changes (the latter commented out) for fun and reference.
Mon Nov 29 23:51:26 GMT 1999 Andy Thomas <alt@gimp.org>
* app/commands.c
* app/disp_callbacks.c
* app/gdisplay.c
* app/gimprc.c
* app/gimprc.h
* app/info_window.c
* app/info_window.h
* app/preferences_dialog.c
* app/undo_history.c
Info dialog now has option to follow the mouse movements or
the old behaviour of one dialog per display.
This dialog still needs some work.
Undo dialog now obeys the "tab" key in the display.
1999-11-23 Michael Natterer <mitch@gimp.org>
* app/app_procs.c
* app/channels_dialog.c
* app/fileops.c
* app/gdisplay.c
* app/gdisplay_ops.c
* app/layers_dialog.c
* app/menus.[ch]
* app/paths_dialog.c
* app/plug_in.c: removed
menus_set_[sensitive|state]_glue(). Removed the N_()'s from all
menu paths which are not eventually passed to
gtk_item_factory_create_item().
* app/tool_options.c: minor updates.
* app/file_new_dialog.c: reordered the action_area buttons.
Sat Nov 20 22:10:15 GMT 1999 Andy Thomas <alt@gimp.org>
* app/nav_window.c
Removed timer when windows are deleted. Removes
potential race conditions when closing images.
1999-11-20 Michael Natterer <mitch@gimp.org>
Reorganized the core menu items (everything except
<Image>/Filters). Everything is of course trivial to change again,
so please comment on the new "menu feeling" ;-)
* app/menus.[ch]:
- Applied the suggestions collected by Olof.
- Added "..." to all items which open a dialog.
- Introduced some additional separators (e.g. in "Dialogs").
- Reorder some plugins and the color correct tools after
initialisation.
- A menu entry to invoke the tooltips inspector.
- A debugging menu entry which dumps the menu paths and their help
pages (will of course go away when the help sys is consistent).
There are currently two identical "Help" menus because
<Toolbox>/Help trashes the menu bar if the toolbox is too narrow
(gtk doesn't seem to support multi-line menubars, any idea?)
* app/app_procs.c: call menus_reorder_plugins() after loading the
plugins to beautify the "Xtns" menu.
* app/commands.[ch]: reordered some functions to match the new
menu structure (for easier source navigation) and renamed some to
be consistent (e.g. all help functions are now called help_*).
Show/Hide the rulers with ordinary gtk_widget_[show|hide]()
commands. I've tested it several times and it looks exactly the
same as the old code which used internal gtk knowledge.
* app/gdisplay.c: applied the menu changes to
gdisplay_set_menu_sensitivity().
* app/gimphelp.[ch]: new public function gimp_context_help() which
invokes the tooltips inspector. Code cleanup.
* app/resize.c: changed the dialogs' titles to match the menu entries.
* app/session.c: renamed the gradient selection cmd callback to be
consistent with brushes/patterns.
* app/tools.c: added "..." to the menu paths of the tools which
have dialogs.
* app/fileops.c
* app/channels_dialog.c
* app/layers_dialog.c
* app/paths_dialog.c: added some "...".
* plug-ins/common/align_layers.c
* plug-ins/common/autostretch_hsv.c
* plug-ins/common/c_astretch.c
* plug-ins/common/color_enhance.c
* plug-ins/common/compose.c
* plug-ins/common/decompose.c
* plug-ins/common/mail.c
* plug-ins/common/normalize.c
* plug-ins/common/threshold_alpha.c
* plug-ins/dbbrowser/dbbrowser.c
* plug-ins/fp/fp.c
* plug-ins/print/print.c
* plug-ins/rcm/rcm.c: changed the menu paths and added "...".
2nd Try.. First failed due to problems at my end....
Sat Nov 20 00:27:26 GMT 1999 Andy Thomas <alt@gimp.org>
* app/commands.c
* app/gdisplay.c
* app/gimprc.c
* app/gimprc.h
* app/nav_window.c
* app/nav_window.h
* app/preferences_dialog.c
* app/scale.c
* app/scroll.c
Nav dialog now follows auto. There is an option in the
preferences dialog (interface) that allow you to switch
between this behaviour and the "original" way of having
one nav dialog per display.
Wed Nov 10 23:03:33 GMT 1999 Andy Thomas <alt@gimp.org>
* app/nav_window.c
Nav preview now really does work with !sqr pixels & dot_for_dot
off...
Nav preview for small images fixed.
Tue Nov 9 21:15:26 GMT 1999 Andy Thomas <alt@gimp.org>
* app/lc_dialog.c
* app/nav_window.c
* app/undo_history.c
Fixed some rounding errors in the preview images.
Sun Nov 7 18:59:22 GMT 1999 Austin Donnelly <austin@gimp.org>
* app/gimpcontextpreview.c: delay the showing of the full-size
pattern, brush or gradient by 150ms as the brush and pattern
selector dialogs currently do. Also, only generate a "click"
event if the user has clicked quickly, ie, the mouse up event
came before the timeout caused the popup to be displayed).
* app/gimprc.c: default image size now 983x857, in an attempt to
flush out problems to do with large images, images with
incomplete tiles around the edges, and images with
width != height. Non-square pixels and other resolution stuff
will come in at a later stage when we've got the first round
of problems fixed.
* app/gradient.c: don't allow two gradients with the same name -
replace the first. Mainly this stops us having two "Default"
gradients if you start up with --no-data.
* app/interface.c: can now create an indicator panel in the
toolbox even if we have --no-data, since we have built-in
defaults now.
* app/gdisplay_color_ui.c: fixed a crash on Cancel that occured
due to bad list handling
* app/module_db.c: indentation madness, no changes
* app/nav_window.c: set the zoom label and slider first, then
update the preview. Gives better user feedback. This is now what
bugreport #3354 suggest, but it comes close.
* plug-ins/common/plugindetails.c: tried to fix the strange resizing
of the dialog. Should fix bug #3352.
--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
1999-11-03 Michael Natterer <mitch@gimp.org>
* app/brush_select.[ch]
* app/gradient.c
* app/gradient_select.[ch]
* app/interface.[ch]
* app/palette.c
* app/pattern_select.[ch]: allow dragging a brush/pattern/... from
the selections with mouse2 without changing the active element in
the dialog.
* app/channels_dialog.c
* app/color_area.c
* app/color_panel.c
* app/color_select.c
* app/colormap_dialog.i.c
* app/devices.c
* app/gimpcontextpreview.[ch]
* app/gimphelp.[ch]
* app/gimpui.[ch]
* app/indicator_area.c
* app/interface.[ch]
* app/layers_dialog.c
* app/lc_dialog.c
* app/ops_buttons.[ch]
* app/paths_dialog.c
* app/preferences_dialog.c
* app/tools.[ch]: wrapped gtk_tooltips_set_tip() with
gimp_help_set_help_data() and moved it to gimphelp.[ch].
This should (hopefully) be the final state of the help system. The
New function allows a "private tip" to be set without a visible
tooltip. This way the tooltips inspector (shift+F1) can search for
help data in the parent containers of the clicked widget. E.g. the
ops buttons in the layers dialog have private tips like
"#new_layer" which gets composed with the help data of the layers
dialog notebook page resulting in a complete help path.
Allow mouse2 for all dnd operations. Mouse1 still works like before.
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.
1999-10-30 Michael Natterer <mitch@gimp.org>
* app_procs.c
* app/commands.[ch]
* app/interface.c
* app/menus.c
* app/session.c
* app/tools.[ch]: namespace cleanups: changed the
"tools_options_*" functions to "tool_options_*" and prefixed all
dialog menu callbacks with "dialogs_*".
Allow dropping a tool to the tool options dialog.
* app/bezier_select.c: change the active tool using context
functions.
* app/dialog_handler.[ch]: replaced the uppercase datatype names
by standard mixed upper/lowercase ones. Provide a function to
register the fileload dialog instead of accessing it as global
variable.
* app/disp_callbacks.c: switch to the move tool using context
functions. Fixed the drop color/pattern functions to convert the
dropped thing to the dest. image's color space.
* app/fileops.c: don't export the fileload dialog as global
variable but register it with the dialog handler instead.
* app/paths_dialog.[ch]: replaced all the uppercase struct names
defined here by mixed upper/lowercase. Introduced a
"set_menu_sensitivity" function like in layers/channels instead of
calling single button on/off functions from various places.
Added a menu entry for "Selection to Path".
1999-10-29 Michael Natterer <mitch@gimp.org>
* app/brush_select.c
* app/gradient_select.c
* app/pattern_select.c: call the PDB callback from the context
callback because it gets called on every change.
* app/interface.c: the tool buttons had the wrong private tooltips
attached.
* app/gimphelp.c: call the help browser with plug_in_run() instead
of procedural_db_execute() to make it really ansynchronous.
Added a GtkTipsQuery tooltips inspector which gets invoked by
<Shift>+F1. Did some illegal juggling with the tips_query's
"parent" pointer which may cause problems, so I made the stuff
disable-able with #ifdef's.
Is there a proper way to create a tips_query widget without having
to show it somewhere??
* 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
Wed Oct 20 23:08:31 BST 1999 Andy Thomas <alt@gimp.org>
* app/nav_window.c
Now works correctly with non-square pixels. (dot-for-dot off
and xres != yres).
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.
1999-10-16 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/menus.c: made the "Dialogs" sub-menus of <Toolbox>/File and
<Image> consistent.
* app/nav_window.c: wheelmouse support as in the gdisplay shell.
* 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 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
Wed Sep 29 21:56:52 BST 1999 Andy Thomas <alt@gimp.org>
* app/colourmap_dialog.i.c
* app/gdisplay_ops.c
* app/palette.c
1) Index palette dialog now registered so it gets hidden/shown when
the "TAB key" is pressed in the canvas window.
2) When the index palette is modified the changes are now shown
immediately in all views.
3) DND now works in the index palette.
4) OK button when modifying a colour in the index palette
dismisses the dialog correctly.
5) DND in the colour palette viewer does not crash when no colours
are selected.
6) Corrected a problem with "New View". If your canvas is zoomed in
and the image is offset in the display and a new view is requested
the Canvas in the new view is corrupted. This bug is also in
gimp 1.0.x
* 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).
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/gtkvwrapbox.[ch]: new vwrapbox stuff
* app/Makefile.am: added new files
* app/interface.c: place the indicator areas in a vwrapbox. Still
kinda screwy tho.
-Yosh
* 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
* 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
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.
* app/apptypes.h
* app/pathsP.h: removed trailing enum commas
* app/gdisplay_color.[ch]: added a foreach function to iterate
over the display filter names
* app/gdisplay_color_ui.[ch]: display filter ui stuff (doesn't do
much yet ;)
* app/commands.[ch]
* app/menus.c: hooked the above into the menu system
* app/Makefile.am: added new files
* plug-ins/gimpressionist/preview.c: removed bogus // comment
-Yosh
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).
Tue Aug 24 22:50:28 BST 1999 Andy Thomas <alt@gimp.org>
* app/nav_window.c
Preview now updated when image is modified. Done on a two second +
idle timer. However the preview cache needs modifying since
the tiles are transversed twice. Once for small previews then for
larger ones. Should only be done once.
1999-08-24 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/channels_dialog.c
* app/color_area.c
* app/color_panel.c
* app/color_select.c
* app/disp_callbacks.[ch]
* app/gimpdnd.[ch]: pass the widget to the color dnd callbacks.
* app/palette.c: color dnd for the palette dialog. Shift+click
toggles setting the FG/BG color now.
Mon Aug 23 23:25:05 BST 1999 Andy Thomas <alt@gimp.org>
* app/menus.c
* app/nav_window.c
Nav window code now handles boundary conditions correctly (ie
you can scroll to the edges of the image now).
It also has some key bindings:-
1) Arrow keys work as expected
2) =/- keys perform zoomin/zoomout. Note these keys are hardcoded
at present until (if) I find away of finding out how to get the
current accel. keys for these functions.
3) Space will raise the display window to the top of the window stack.
It also updates the preview. This will be changed to happen
automatically RSN.
Tearoff menus are now popped up and down (like other dialogs) when
the tab key is pressed in the image window.
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.
1999-08-23 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/bucket_fill.[ch]: export bucket_fill_region().
* app/channels_dialog.c: enabled dropping a color to a channel.
* app/color_area.c
* app/color_panel.c
* app/gimpdnd.[ch]: the whole color dnd is now done in a generic
function in gimpdnd.c (dnd of other types is still hacked in at
various places but will go to generic functions and callbacks as
well).
* app/disp_callbacks.[ch]
* app/interface.c: drop a color to the display to bucket fill the
selected region.
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, ...
Sat Aug 21 01:06:53 BST 1999 Adam D. Moss <adam@gimp.org>
* app/nav_window.c: Navigation window shows checkmarked alpha,
also previews correctly for greyscale images now.
Sat Aug 21 00:07:37 BST 1999 Adam D. Moss <adam@gimp.org>
* app/nav_window.c: Improved pointer tracking when
dragging navigator rectangle - less lag. Enabled hourglass
when computing first thumbnail.
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.)
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.
* app/interface.c: My last change to the dnd code did fix the bug
but disabled loading multiple files. Now applied a new patch from
Shuji Narazaki <narazaki@gimp.org>.
--Sven
1999-07-28 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/gdisplay_ops.c: tweaked one more dialog box: "Changes were
made to %s. Close anyway?"
* app/layers_dialog.c: Eek, layers_dialog_flush() was assuming
that layers can be moved by one position only and thus traversed
and reordered the same list at the same time. Should work with
arbitrarily misplaced layers now.
Fixed some strange dnd special cases and cleaned up the dnd code.
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.
1999-07-10 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/disp_callbacks.c (gdisplay_canvas_events): added wheelmouse
scrolling support for the canvas (cut & paste from gtkmain.c).
CTRL+wheel scrolls horizontally.
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.
Thu Jul 8 00:08:50 EDT 1999 Adrian Likins <alikins@redhat.com>
*app/interface.c: added type for _NETSCAPE_URL to the DnD stuff
so you can now drag image urls from netscape
-adrian
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
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.
* tools/pdbgen/pdb/guides.pdb
* app/guides_cmds.c: fixed a bug in image_find_next_guide
* plug-ins/xjt: reflect the name change of gimp_image_find_next_guide
* app/interface.c: applied the patch from
Shuji Narazaki <narazaki@gimp.org> that allows to open images by
dropping them onto the toolbar
--Sven
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-23 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/brightness_contrast.c
* app/by_color_select.c
* app/curves.c
* app/disp_callbacks.c
* app/histogram_tool.c
* app/hue_saturation.c
* app/levels.c
* app/posterize.c
* app/threshold.c:
Factored out the cleaning up code to the tool dialog's "cancel"
callbacks because they are called from every function which is
aborting the tool. This should fix the remaining segfaults.
I probably killed a feature of "Levels". The tool wanted to
preserve it's drawable all the time, so it was possible to select
colors from other displays. If this was the intended behaviour,
please flame me and I will try to set the "preserve" flag
correctly.
* plug-ins/common/Makefile.am: "struc" was in the Makefile but not
in the directory.
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.
Also fixed a small bug in the pattern code that let a pattern stay
up if the user focussed on another widget before releasing mouse button.
Modified Files:
ChangeLog app/devices.c app/gimprc.c app/gimprc.h
app/interface.c app/preferences_dialog.c app/indicator_area.c
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-02 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/disp_callbacks.c
* app/gimpset.[ch]
* app/gimpsetP.h
* app/layers_dialog.c: applied Simon's <Simon.Budig@unix-ag.org>
active image patch.
GimpSet has an "active_changed" signal now. The image_context
emits it whenever there is a button or key event in the gdisplay
and the L&C dlg. connects to it for the new auto-update feature.
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 !)
1999-05-31 Michael Natterer <mitschel@cs.tu-berlin.de>
* app/commands.c
* app/crop.c
* app/file_new_dialog.c
* app/info_dialog.[ch]
* app/interface.c
* app/layers_dialog.c
* app/resize.[ch]
* app/rotate_tool.c
* app/scale_tool.c
* app/shear_tool.c: finished the float->double migration for
resolution values. Standardized the order of function calls which
initialize sizeentries. Fixed some off-by-one errors by using
correct double->int casting. Use the g* counterparts of int and
double in some places. Various code cleanups.
* app/preferences_dialog.c: same changes as above plus a cleaner
implementation of the mem_size_unit stuff. The whole dialog should
behave like before.
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.
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.
Mon Apr 5 22:24:30 BST 1999 Andy Thomas <alt@gimp.org>
Changed:-
* app/bezier_select.c
* app/bezier_selectP.h
* app/paths_cmds.c
* app/pathsP.h
* app/paths_dialog.c
* app/xcf.c
* tools/pdbgen/pdb/paths.pdb
New PDB functions.
gimp_path_get_point_at_dist (gets the x,y of a point a given distance
along the curve & the normal at the point).
gimp_path_get_tattoo
gimp_get_path_by_tattoo
Paths now have tattoos (similar to the layer and image tattoos).
* app/move.c
* app/scroll.c
Try to fix the problem where mouse events from the rulers get
mixed up with those from the canvas causing guides & image dragging
to "jump" around when the mouse enters the ruler areas.
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-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.
Sun Mar 21 15:29:38 GMT 1999 Adam D. Moss <adam@gimp.org>
* app/disp_callbacks.c app/edit_selection.c app/move.c:
Happy-fun opaque layer moves.
* app/edit_selection.c: I doubt that using button3 to abort
a layer move has worked for a long time. I rewrote some
stuff and moved the 'abort' button to button2. Hold it down
when you release button1, to abort the current move. It
doesn't actually abort, it just automatically does an undo.
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-14 Michael Natterer <mitschel@cs.tu-berlin.de>
* gimprc.in: removed two unused directories from plug-in-path.
* app/file_new_dialog.c: make the first spinbutton grab the focus
and one more unit initialisation bugfix
* app/interface.c: grab focus in query_[string|int|..]_box()
This still needs to be done in many dialogs to be consistent.
* app/preferences_dialog.c: made the module-path configurable
* libgimp/gimppatheditor.[ch]: change the order of the buttons to
match the order in the L&C dialog
* libgimp/gimpsizeentry.[ch]: enabled highlighting of the
spinbuttons' contents on focus_in_event.
Ugly new function gimp_size_entry_grab_focus() because it seems
impossible to implement gtk_widget_grab_focus(sizeentry).
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.
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.
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.
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
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.
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 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.
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.
Sun Jan 10 22:41:51 GMT 1999 Andy Thomas <alt@picnic.demon.co.uk>
New
* app/dialog_handler.c
* app/dialog_handler.h
Changed
* app/disp_callbacks.c
* app/gradient_select.c
* app/tools.c
* app/interface.c
* app/patterns.c
* app/gimpbrushlist.c
* app/palette.c
* app/layers_dialog.c
* app/devices.c
* app/errorconsole.c
Can now hide/show all main dialogs using the TAB key in any window.
However....
there is a bug in gtk that causes the Gimp the crash if you show
and then hide a lot of dialogs (eg if you have all dialogs visible
and press the TAB key repeatedly). I have email-ed an example to
the gtk bug list.
Also I can't seem to be able to catch the SHIFT-TAB combination
(suggestions welcome ;-) so the first press of the tab hide all
dialogs the second press reshows only the toolbox and the third
press reshows all. Comments please if you find this behaviour
non-intuitive.
* 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
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
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
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.
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
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).
Mon Jul 20 11:07:32 EDT 1998 Matthew Wilson <msw@gimp.org>
* app/app_procs.c
* app/interface.c: Changed progressbar updaters to work with
new API. THIS WILL NOT WORK WITH OLDER GTK+. SOMEONE NEEDS
TO MAKE AN ENTRY IN gtkfeatures.h SO WE CAN #ifdef THIS.
(I suppose I should... but what can I say - I'm lazy)
--Matt
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.
----------------------------------------------------------------------
* app/gdisplay.h
* app/interface.c
* app/plug_in.c: Added the ability to cancel a running
plugin when the progress-bar has been sucked into the image
window.
* plug-ins/psd/psd.c: Turned debugging on again, since we
are in a development cycle...
* app/tile_swap.c: made the g_message errors a little smarter instead
of popping up a ton of dialogs
* app/layer.c
* app/channel.c
* app/gdisplay.c
* app/gimprc.c: some code cleanups
-Yosh
Started separating crud out of drawables.
Isolated the id system of images entirely within pdb. Even the
window titles and menus use pointers instead of ids. Should at
least remind people that this is a developers' version. :)
to detect if an image still exists, some things may, for now,
access freed images and break. This will be fixed once proper
destroy handlers are added.
* app/interface.c: minor unused variable warning cleanup
* plug-ins/bumpmap/bumpmap.c: another warning cleanup
* plug-ins/flame/flame.c: time(NULL) instead of time(0)
* plug-ins/gpc/Makefile.am
* plug-ins/megawidget/Makefile.am: install in $libdir instead of
$gimpplugindir since they *are* libs. Some archs try to exec them, and it
barfs
-Yosh
file 'sessionrc' is written and the position of some windows is
remembered. Still has some problems (offset by wm decorations).
Can be switched off in the preferences.
Sun Jun 21 15:16:46 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/bezier_select.c
* app/commands.[ch]
* app/devices.c
* app/disp_callbacks.c
* app/interface.c
* app/menus.c
* app/pixmaps.h
* app/tools.[ch]
* app/undo.c: Lots of changes to the way tools are intialized and
accessed. All information about a tool type is now contained in a
single ToolInfo array. There are still some small issues to
adress about tool groups and we need some way of getting menu
ordering/grouping to work better (plug-ins need this too). There
is still much to be done, but this is the next in cleaning up the
tools.
* app/posterize.[ch]
* app/threshold.[ch]
* app/histogram_tool.[ch]
* app/hue_saturation.[ch]
* app/levels.[ch]
* app/brightness_contrast.[ch]
* app/by_color_select.[ch]
* app/color_balance.[ch]
* app/curves.[ch]: Changed the *_initalize function prototypes from
gpointer to GDisplay, to allow better type chacking and provide a
uniform interface for all the dialog tools.
Thu Jun 18 21:20:12 1998 Owen Taylor <otaylor@gtk.org>
* app/interface.c app/tools.c: Removed calls to
gtk_container_[dis/en]able_resize()
Thu Jun 18 21:03:33 1998 Owen Taylor <otaylor@gtk.org>
* app/interface.c (create_display_shell): Set the resize
mode on the statusbar to prevent the window from being
unnecessarily auto-shrunk.
* plug-ins/gfig/gfig.c (my_gtk_label_set): Removed unused
function using deprecated gtk_container_need_resize()
Thu Jun 18 16:31:16 1998 Owen Taylor <otaylor@gtk.org>
* app/blob.c: Try to prevent overflows when drawing ellipses)
(fixes the ink => line bug for big sizes)
a few window-positions (more to come). I plan to move the saving out of
gimprc into a seperate file and add more stuff like last openend image etc.
Any help is appreciated...
--Sven
Tue Jun 16 15:06:19 CDT 1998 Larry Ewing <lewing@gimp.org>
* app/interface.c:
* app/menus.c: added menu entry and changed loop bounds to get the
new ink tool functioning properly
* app/tools.[ch]: added new and free funcs to the ToolInfo struct,
and began small cleanup of tools
Sun Jun 14 23:41:17 CDT 1998 Shawn T. Amundson <amundson@gimp.org>
* app/plug_in.c: Fixed progress code to account for when
a plugin gets two progress inits
* app/interface.c: Fixed table allocation sickness. Now use
two tables, and a vbox instead of one table so things don't
get expanded when they shouldn't. This (table/table_inner)
should be merged back to 1.0 tree. The other resize bug is a
gtkstatusbar bug.
Sun Jun 14 21:16:42 CDT 1998 Shawn T. Amundson <amundson@gimp.org>
* app/gdisplay.c
* app/gdisplay.h
* app/interface.c
* app/plug_in.c
* app/plug_in.h
* libgimp/gimp.c: added statusbar and progressbar, which
the plugins now use if they have a gdisp. Unfortunately
this introduces a resize bug I wasn't able to fix
immediately. ;-(
Sun Jun 14 18:37:06 1998 Owen Taylor <otaylor@gtk.org>
* Makefile.am app/blob.[ch] (blob_bounds): Added new files for
handling scan-converted convex polygons. (From
gsumi) (these will be moved out to a plug-in tool directory
when such a thing exists)
* app/ink.[ch]: New tool for drawing with a hard-edged
pressure and tilt-sensitive brush.
* gimprc.c interface.c paint_core.c pixmaps.h tools.[ch]
All the modifications for adding a new tool. We need
to fix this.
Thu Jun 11 00:34:51 1998 Owen Taylor <otaylor@gtk.org>
* app/color_area.c (color_area_events): Create/resize
the pixmap on every expose CONFIGURE event, not just
on the first expose event.
Thu Jun 11 00:02:15 1998 Owen Taylor <otaylor@gtk.org>
* app/interface.c (create_toolbox): Create the color
area before showing the window, so that the window gets
created at the right size. [ This doesn't actually fix
much, but it is better to do that way ]
Wed Jun 10 14:17:44 1998 Owen Taylor <otaylor@gtk.org>
* app/disp_callbacks.c (gdisplay_origin_button_press):
Stop signal emission so that button doesn't grab the
pointer away from the menu.
* app/disp_callbacks.h: add declaration to get interface.c to compile
* autogen.sh: make sure we know about ACLOCAL_FLAGS
* I went on a compiler warning pogrom
-Yosh
Sun Jun 7 11:04:38 1998 Tim Janik <timj@gtk.org>
* app/gradient.c (cpopup_create_menu_item_with_label): use GtkAccelLabel
when creating a menuitems label seperatedly.
* app/commands.h:
* app/commands.c:
(tips_dialog_cmd_callback):
(filters_repeat_cmd_callback):
(tools_select_cmd_callback): make use of the callback_action argument.
* app/main.c (main): removed gtk_accelerator_table_set_mod_mask(),
since gtk provides decent default values now.
* app/layers_dialog.c:
* app/interface.c:
* app/indexed_palette.c:
* app/channels_dialog.c:
* app/buildmenu.c:
conversions for use of GtkAccelGroup.
* app/buildmenu.c:
* app/gradient.c:
installed accelerators are locked, because these code portions don't
support accelerator saving.
* ChangeLog:
* ChangeLog.pre-1-0: ChangeLog split up.
Sun Jun 7 00:22:01 EDT 1998 Matthew Wilson <msw@gimp.org>
* app/interface.c: Register private tips for all the tools -
for use with online help later
--Matt
* app/interface.c: changed it back, things work now
* plug-ins/gfli/gfli.c: fixed gccism
* plug-ins/MapObject/mapobject_main.c: update display when we're done
(from seth)
-Yosh
on gdk_image_destroy(). I've changed the code in interface.c to workaround
this (so gimp at least starts) but the text tool is still broken, as well
as many of the plugins.
What niggles me is that I can't find anything in glib or gdk that could
explain this (diffing against the stable branch, where everything works).
I dunno, maybe I'm looking over something obvious...
I'd like to know what data this problem started happening... anyone?
-Yosh
Fri Jun 5 22:37:40 1998 Owen Taylor <otaylor@gtk.org>
* app/Makefile.am app/app_procs.c app/brushes.c app/commands.[ch]
app/disp_callbacks.c app/gdisplay.[ch] app/gimprc.c
app/interface.[ch] app/menus.c app/paint_core.[ch]
app/paintbrush.c app/palette.c app/scroll.c
app/tools.[ch] app/undo.c
- Added two new dialogs - input devices; (GtkInputDialog)
and DeviceStatus - which shows the tool/color for
each device.
- Added device_status_update() call that gets called
whenever the tool/color etc. are changed.
- Added ~/.gimp/devicerc file to store settings
- Code to draw cursor on canvas for non XFree86 XInput
where device can't control cursor and extended input
device simultaneously.
- Changed input handling so that we always use the pointer
position from the device, not from gdk_input_window_get_cursor,
so that motion and cursor position sync.
- Various changes so things work with non-integer coordinates
- Pay attention to pressure and tilt in basic tool support.
- New paint mode PRESSURE that changes the brush based on
the brush pressure
- Left in a few XInput hacks that should be removed, but I no longer
remember what they are.
* README
* INSTALL: make info a bit more current
* gimptool.in: update usage message
* gtkrc.forest2: sample gtkrc file with cool stuff from tigert
* gimp.1
* gimptool.1: updated/rewrote some
* app/fileops.c: removed the "might have tried to save an RGB image with an
indexed plugin" since g_message gives nice user feedback now
* app/interface.c: fix the mem leak properly
-Yosh
* app/interface.c: plug mem leak in message_box
* plug-ins/mail/mail.c: use g_message
* plug-ins/script-fu/scripts/carve-it.scm: fix for gimp-layer-new params from
Kevin Cozens <kcozens@interlog.com>
* plug-ins/CEL/CEL.c
* plug-ins/pcx/pcx.c
* plug-ins/tiff/tiff.c: updates from author
* plug-ins/png/png.c: correct copyright
* plug-ins/print/print.h: use correct version
-Yosh
* app/app_procs.c: create tips dialog after loading files on the command line,
instead of in an idle function. Lamer hack, but it works better.
* app/gdisplay_ops.c: fix for new view on zoomed image
* Makefile.am
* gimptool.1: added man page for gimptool by Ben Gertzfield
-Yosh
Thu Apr 30 03:15:51 EDT 1998 Matthew Wilson <msw@gimp.org>
* app/curves.c: Another small change to keep the segfaults away
* app/disp_callbacks.c: An attempt to squelch some warnings
--Matt
Wed Apr 15 01:58:12 EDT 1998 Matthew Wilson <msw@gimp.org>
* app/gdisplay.c: made a change to gdisplays_update_area to
update _all_ gdisplays that point at the gimage ID. This
(should) fix the paint on the second layer of a second view bug.
--Matt
Tue Apr 14 18:01:50 EDT 1998 Matthew Wilson <msw@gimp.org>
* app/gdisplay.c: Set active_tool->drawable to NULL when destroying
the gdisplay that the active tool points to.
* app/giamge.c: Fixed spacing...
--Matt
setting the paste functions insensitive.
When pasting from the named buffer, a call to gdisplays_flush() was missing.
I originally intended to fix the bug that canceling the cut-named-function
doesn't work. But it appears that there's no way to check if the
Cancel-button was hit in the query_string_box?!
--Sven
Mon Apr 13 00:27:45 EDP 1998 Matthew Wilson <msw@gimp.org>
* app/gdisplay.c: Set the current tool's gdisplay pointer to NULL
when destroying a gdisplay
* app/interface.c: Use "clicked" as the signal to handle for menu
based tools. This lets us pop by_color_select back up.
--Matt
* configure.in: I guess it didn't end... an attempt to try to recognize all
types of tiff configs
* app/gdisplay_ops.c: resize on zoom fix for naught window positioning from
Kevin Cozens <kcozens@interlog.com>
* app/errors.c: gdk_exit needs to be prototyped
-Yosh
* app/gdisplay.c: reverted cosmetic fix below, broke zoomed updates
* configure.in: changes to xdelta and jpeg checks
* updated bmp plugin
* portability patch for polar
* minor bugfix to vpropagate
* fix for memory problem in xwd
-Yosh
* configure.in: redid libjpeg check to make sure old versions aren't used.
Also #undef PACKAGE and VERSION since some jconfig.h's define it
* updated included regex.[ch] to the one in GNU grep
* plug-ins/script-fu/interp_regex.c: we don't need to kludge around OSF1
anymore, since we use our own regex stuff
-Yosh
* app/bezier_select.c: Destroy the tool when changing displays.
* app/command.c: initialize pointers to drawables when selecting
tools
* app/disp_callbacks.c: initialize pointers to drawables on first
click of a gdisplay
* app/gimage.c: removed extra tool destruction
* app/tools.c: make a fallback case when starting tools so that
you'll always have an active tool.
--Matt
added it twice, once under <Image>->Layers and additionally under
<Image>->Image->Alpha
Now it is possible to work on a single-layer image without opening the
Layers-dialog for adding an alpha channel.
--Sven
Thu Apr 2 04:06:50 EST 1998 Matthew Wilson <msw@gimp.org>
* app/disp_callbacks.c: Always ungrab the pointer on button release.
This is a quick and dirty hack to try to nuke the pointer grab
bug.
* app/brightness_contrast.c
* app/by_color_select.c
* app/color_balance.c
* app/color_picker.c
* app/curves.c
* app/histogram_tool.c
* app/hue_saturation.c
* app/levels.c
* app/posterize.c
* app/threshold.c
* app/transform_core.c: modified to call the cancel callback
instead of the ok callback when freed. modified to save the
last used drawable so that we might be able to check later
and restart the tool if need be.
* app/disp_callbacks.c
* app/gimage.c: modified tool restart/destruction code
* app/tools.c
* app/tools.h: added tools_initialize, made changes to
be able save the last used drawable in the tool.
--Matt
Wed Apr 01 04:07:29 EST 1998 Matthew Wilson <msw@gimp.org>
* app/disp_callbacks.c: Only destroy the current tool if you change
gdisplays and the tool caches image data.
--Matt "flood the commits-list" Wilson
Wed Apr 01 03:40:15 EST 1998 Matthew Wilson <msw@gimp.org>
* app/disp_callbacks.c: If the current gdisp->ID does not match
the ID of the gdisp_ptr in the active_tool, restart it.
--Matt "I need sleep" Wilson
Tue Mar 31 02:21:15 EST 1998 Matthew Wilson <msw@gimp.org>
* app/gimage.c
* app/tools.c
* app/tools.h: Added a field in the Tools struct, preserve.
During gimage_dirty, if this flag is not set the tool will be
reset. This is good for tools that keep a copy of the image
in cache for local manipulation like transform_core.
* app/bezier_select.c
* app/blend.c
* app/brightness_contrast.c
* app/bucket_fill.c
* app/color_balance.c
* app/color_picker.c
* app/crop.c
* app/curves.c
* app/ellipse_select.c
* app/free_select.c
* app/histogram_tool.c
* app/hue_saturation.c
* app/levels.c
* app/move.c
* app/paint_core.c
* app/posterize.c
* app/rect_select.c
* app/text_tool.c
* app/transform_core.c: Set the preserve flag to the correct
values in the new functions and wrapped calls to functions that
dirty the gimage to prevent tool restarts.
* app/disp_callbacks.c
* app/menus.c: Removed Nether's tool patch.
--phew. Matt
Mon Mar 16 05:12:00 CST 1998 Larry Ewing <lewing@gimp.org>
* app/move.c:
* app/gdisplay.c:
* app/gimage.c: Reworked the guide drawing and picking code to
remove all known guide artifacts.