Commit Graph

96 Commits

Author SHA1 Message Date
Sven Neumann d05156aa2a Ok, Undo History actually makes more sense in the Dialogs menu.
--Sven
2000-03-09 19:58:23 +00:00
Sven Neumann 5fc0b8a9c0 moved Undo History into the Edit menu next to Undo and Redo
--Sven
2000-03-09 19:45:52 +00:00
Garry R. Osgood 8769bbb456 app/commands.c app/gimpimage.c app/layer.c app/layer.h app/resize.c
2000-02-26 Garry R. Osgood <gosgood@idt.net>
* app/commands.c
* app/gimpimage.c
* app/layer.c
* app/layer.h
* app/resize.c
* app/resize.h

Aliasing artifacts that changed relative positions
of layers under scaling, giving rise to #5271, are
minimized by a new layer.c function,
layer_scale_by_factors(). Closes #5271. See
http://idt.net/~gosgood/gimp-patch/patch07.html for
further detail. See also usage documentation for
layer_scale() and layer_scale_by_factors() in
layer.c.

Provided logic for the Scale Image dialog box to
pre-check an image's layers for the possibility that
a particular scaling, s: 0 < s < 1, reduces a layer
dimension to zero. Should this case prevail, a
boolean dialog box warns the user of the
possibility. The user may (1) Cancel, returning
focus to Scale Image and the possibility of
corrective adjustment, or (2) OK the scaling. The
layers that will vanish upon the new scaling are
culled from the GimpImage::layers list first.
2000-02-26 18:46:08 +00:00
Michael Natterer 9ffed65563 removed the query boxes.
2000-02-10  Michael Natterer  <mitch@gimp.org>

	* app/gimpui.[ch]: removed the query boxes.

	* po-libgimp/POTFILES.in
	* libgimp/Makefile.am
	* libgimp/gimpui.h
	* libgimp/gimpquerybox.[ch]: new files. Added a boolean query box
	to get rid of all those handmade "yes/no" query dialogs. Changed
	the query box callback prototypes to return the entered value
	instead of a pointer to it.

	* app/commands.c
	* app/display_ops.c
	* app/gradient.c
	* app/palette.c
	* app/paths_dialog.c: correctly call the new query box functions
	and use the boolean query box instead of inventing this wheel over
	and over again.

	* app/global_edit.[ch]: same as above and cleaned up the public
	interface.
2000-02-10 21:54:12 +00:00
Michael Natterer 9cb95b1949 Makefile.am new file.
2000-02-10  Michael Natterer  <mitch@gimp.org>

	* Makefile.am
	* pixmaps/wilber.xpm: new file.

	* libgimp/gimpdialog.[ch]: uncommented some lines. Depending on
	your window manager, you'll figure out what it does without having
	to look at the sources...

	* app/app_procs.c
	* app/gradient.c
	* app/menus.c: minor changes to bring the goodie above to all
	places. Did dome cleanups.

	* app/commands.c: I18N fix.

	* app/channels_dialog.c: removed an unused declaration.
2000-02-10 00:00:54 +00:00
Michael Natterer ef17866973 app/* libgimp/* plug-ins/* did a global s/GUnit/GimpUnit/ and
2000-02-07  Michael Natterer  <mitch@gimp.org>

	* app/*
	* libgimp/*
	* plug-ins/*
	* tools/pdbgen/*: did a global s/GUnit/GimpUnit/ and
	s/GimpSizeEntryUP/GimpSizeEntryUpdatePolicy/

	* libgimp/gimpcolorspace.c: renamed the parameter names to match
	the names in the header.

	* libgimp/gimphelpui.h
	* libgimp/gimpimage.c
	* libgimp/gimpmatrix.h
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimpunit.[ch]
	* libgimp/gimpunitmenu.[ch]
	* libgimp/gimpwidgets.[ch]: added documentation and use g* types
	all over the place (enables cross-referencing with the glib and
	gtk+ html documentation).

	* plug-ins/common/exchange.c
	* plug-ins/common/max_rgb.c: small cleanups.

	* plug-ins/common/mapcolor.c: the color buttons were attached in
	the wrong order.
2000-02-07 20:35:13 +00:00
Sven Neumann c9482821ab mostly header cleanup and i18n
--Sven
2000-01-31 23:59:05 +00:00
Sven Neumann 489e5ab29e call setup_scale when changing the resolution or unit, so the rulers
get updated correctly


--Sven
2000-01-22 15:05:42 +00:00
Manish Singh 66e95bbd49 let's not be redundant redundant. Made a real compat #define for
gimp_image_find_parasite

-Yosh
2000-01-11 21:07:17 +00:00
Manish Singh bc28e6fa80 fill dummy gimage->base_type as well
* app/color_area.[ch]: fill dummy gimage->base_type as well

* app/gdisplay_color.[ch]: add attach_clone, configure, and configure_cancel
functions.

* app/gdisplay.[ch]: remove notify hacks, don't need them anymore. Add cd_ui
field for cdisplay ui.

* app/commands.c: make display filter dialog per display instead of global

* libgimp/color_display.h: ok/cancel notification callbacks

* modules/cdisplay_gamma.c
* app/gdisplay_color_ui.[ch]: changes for above, enabled configuration dialog
and color_area dummy handling

* app/color_balance.c
* app/paint_funcs.c: #include "libgimp/gimpcolorspace.h"

* plug-ins/webbrowser/web-browser.scm: updated urls

-Yosh
2000-01-03 07:49:19 +00:00
GMT 1999 Andy Thomas 7dfc54b956 app/commands.c app/disp_callbacks.c app/gdisplay.c app/gimprc.c
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-30 00:11:08 +00:00
Sven Neumann 7427a53c95 Layer to Imagesize in C
--Sven
1999-11-27 14:00:26 +00:00
Michael Natterer e46eaf8687 Reorganized the core menu items (everything except <Image>/Filters).
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 "...".
1999-11-20 12:12:41 +00:00
GMT 1999 Andy Thomas 48fb5c0959 2nd Try.. First failed due to problems at my end....
2nd Try.. First failed due to problems at my end....

Sat Nov 20 00:27:26 GMT 1999 Andy Thomas <alt@gimp.org>

	* app/commands.c
	* app/gdisplay.c
	* app/gimprc.c
	* app/gimprc.h
	* app/nav_window.c
	* app/nav_window.h
	* app/preferences_dialog.c
	* app/scale.c
	* app/scroll.c

	Nav dialog now follows auto. There is an option in the
	preferences dialog (interface) that allow you to switch
	between this behaviour and the "original" way of having
	one nav dialog per display.
1999-11-20 00:46:58 +00:00
Michael Natterer b3144e7ccc app_procs.c app/commands.[ch] app/interface.c app/menus.c app/session.c
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-30 10:39:48 +00:00
Michael Natterer 79e27e984a More context & dnd stuff... 1999-10-28 15:05:49 +00:00
Michael Natterer a74d52fbbf Use the context almost everywhere. 1999-10-26 18:27:27 +00:00
Sven Neumann fce4ad6327 a whole lotta guide fixes
--Sven
1999-10-13 23:07:45 +00:00
Michael Natterer a11f33345d The GIMP Help System part II: press "F1" while browsing a menu to show the
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.
1999-10-03 13:50:19 +00:00
Michael Natterer 002aa905db app/Makefile.am app/gimphelp.[ch] new files
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).
1999-09-27 17:58:10 +00:00
EDT 1999 Austin Donnelly bf8db4adc8 Honest, guv, it's not a feature - it's a tightly integrated package of
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.
1999-09-20 17:15:20 +00:00
Sven Neumann 1f90bbd251 Correct the bug in gimage_mask_border_callback () that was reported on the
list yesterday.


--Sven
1999-09-07 10:58:20 +00:00
Tor Lillqvist 6ef23d984f app/appenv.h New file. Includes <math.h>. Move G_PI, RINT(), ROUND() etc
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.
1999-09-01 20:30:56 +00:00
Manish Singh e3004838f4 unlame
-Yosh
1999-08-31 03:43:02 +00:00
Manish Singh 32772963f1 app/apptypes.h removed trailing enum commas
* 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
1999-08-31 02:00:34 +00:00
BST 1999 Andy Thomas df7ad092f4 app/nav_window.c app/nav_window.h app/gimppreviewcache.h app/layer.c
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).
1999-08-27 19:07:21 +00:00
BST 1999 Andy Thomas 2557c517b1 app/commands.c app/commands.h app/disp_callbacks.c app/gdisplay.c
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.
1999-08-12 22:21:04 +00:00
Michael Natterer acffb96f7b app/commands.c app/desaturate.[ch] no need to pass the image as a void
1999-07-27  Michael Natterer  <mitschel@cs.tu-berlin.de>

	* app/commands.c
	* app/desaturate.[ch]
	* app/equalize.[ch]: no need to pass the image as a void pointer
	to desaturate and equalize.

	* app/gimage.h
	* app/gimpimage.[ch]: new function gimp_image_position_layer().

	* app/layers_dialog.c: move layers with drag'n'drop.
1999-07-27 02:41:34 +00:00
Michael Natterer a4c1e8a557 new ui for the "Layer Offset" dialog.
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-22 16:21:10 +00:00
Michael Natterer 810a3db516 set the "visible" flags before mapping the widgets.
1999-07-09  Michael Natterer  <mitschel@cs.tu-berlin.de>

	* app/commands.c (view_toggle_rulers_cmd_callback): set the
	"visible" flags before mapping the widgets.
1999-07-09 00:35:33 +00:00
MEST 1999 Sven Neumann b12614646d app/commands.[ch] app/global_edit.[ch] added "Paste As New" feature that
Tue Jul  6 22:40:16 MEST 1999 Sven Neumann <sven@gimp.org>

        * app/commands.[ch]
        * app/global_edit.[ch]
        * app/menus.c: added "Paste As New" feature that allows to paste
        the current (or a named) buffer to a new image. Still need to
        add PDB call for that...


--Sven
1999-07-06 20:43:52 +00:00
Michael Natterer a60b2c2f02 the Tool structure is now allocated by a common constructor which sets
1999-07-02  Michael Natterer  <mitschel@cs.tu-berlin.de>

	* app/[all tools]: the Tool structure is now allocated by a common
	constructor which sets default values and provides default tool
	action functions. To get rid of much code duplication there should
	be a object hierarchy of tools.

	* app/context_manager.c
	* app/tools.[ch]: create and destroy private contexts for the
	paint tools on startup and exit. They are not used yet.

	* app/interface.c
	* app/menus.c
	* app/tools.h: num_tools is now exported in tools.h

	* app/commands.c
	* app/gdisplay.c
	* app/menus.c: made "Toggle Selection" a toggleable menu item.
1999-07-02 17:40:10 +00:00
Michael Natterer c456ba93ba app/[all tool related files] app/commands.c app/disp_callbacks.c
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...
1999-06-26 11:16:47 +00:00
Michael Natterer f1b5e1ae47 namespace cleanups.
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.
1999-06-21 22:12:07 +00:00
Michael Natterer a72dbe86b4 connect to the user context's "display_changed" and to the image context's
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 23:29:34 +00:00
Michael Natterer 142ccb742d app/commands.c app/disp_callbacks.c app/gdisplay.c app/lc_dialog.c applied
1999-06-20  Michael Natterer  <mitschel@cs.tu-berlin.de>

	* app/commands.c
	* app/disp_callbacks.c
	* app/gdisplay.c
	* app/lc_dialog.c
	* app/menus.c: applied a patch from <Simon.Budig@unix-ag.org>
	which implements tear-off-menus(!!!). Modified it to use the
	GimpContext.
	The sensitivity of the menu entries is not updated after
	executing a command. This leaves the sensitivity in the state
	before the command was executed (which is buggy). Will probably
	have to update the sensitivity from gdisplays_flush().
	Simon called the patch "temporary" but it looks pretty stable to
	me. Please test it :-)

	* app/context_manager.[ch]: minor changes.

	* app/gimpcontext.[ch]: the user context keeps track of the
	current display and image. The image is set automatically from
	gimp_context_set_display().
	Still have to figure out how this should interact with
	gdisplay_active() (the current state is a hack).
	Made the context attributes real GtkObject arguments.
	Pass the changed attributes to the callbacks which connect to
	the <attribute>_changed signals.

	* app/gimpset.[ch]
	* app/gimpsetF.h
	* app/gimpsetP.h: made the gimpset properly derivable by adding
	signal slots to the object class structure. Added copyright
	headers.

	* app/gimpsignal.[ch]: new type gimp_sigtype_double, copyright
	header and my usual indentation fanaticism.
1999-06-20 13:53:15 +00:00
Tomas Ogren 6a6bc56c84 app/bucket_fill.c app/color_picker.c app/commands.c app/convolve.c
1999-06-07  Tomas Ogren  <stric@ing.umu.se>

* app/bucket_fill.c app/color_picker.c app/commands.c app/convolve.c
* app/crop.c app/flip_tool.c app/gimpunit.c app/global_edit.c
* app/gradient.c app/histogram_tool.c app/magnify.c app/module_db.c
* app/palette.c app/paths_dialog.c app/text_tool.c app/transform_tool.c
  Misc i18n fixes, partly ported from Egger-gimp
1999-06-07 02:21:31 +00:00
Michael Natterer ac98e8fa81 app/Makefile.am app/lc_dialog.[ch] app/lc_dialogP.h new files
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-06 17:26:51 +00:00
Michael Natterer 01a045a4c8 app/commands.[ch] app/gdisplay.c for the pleasure of all: a deeper nested
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-06-01 20:19:49 +00:00
Michael Natterer 4a13995205 app/commands.c app/crop.c app/file_new_dialog.c app/info_dialog.[ch]
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-31 14:11:10 +00:00
Michael Natterer dcfb450b25 app/[all files with resolution info] libgimp/gimp.h libgimp/gimpimage.c
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.
1999-05-22 17:56:35 +00:00
Michael Natterer c0b24ce90b app/channel.[ch] app/commands.c app/gimage_mask.[ch]
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.
1999-05-06 23:10:29 +00:00
Michael Natterer e7c8de57ae call gdisplays_resize_cursor_label(gimage) after changing the image's
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.
1999-05-04 17:20:05 +00:00
Michael Natterer 26b9002cd1 app/commands.c app/layers_dialog.c new scale/resize ui: Use size entries
1999-05-02  Michael Natterer  <mitschel@cs.tu-berlin.de>

	* app/commands.c
	* app/layers_dialog.c
	* app/resize.[ch]: new scale/resize ui:
	Use size entries instead of text entries, chainbuttons instead of
	check buttons. Put the stuff into frames. Added labels for the
	original width and height.
	It's possible to change resolution/unit now, please test if it
	does the right thing.

	* libgimp/gimpsizeentry.c: allow lower == upper when checking
	boundaries.
1999-05-02 14:24:54 +00:00
Manish Singh 80de6ea79c app/gimage_cmds.c pdbgenned files
* app/gimage_cmds.c
* app/guides_cmds.c: pdbgenned files

* app/parasite_cmds.c: added image parasite cmds

* app/gimpimage.h: capitalized ChannelType and MergeType enums,
made HORIZONTAL_GUIDE and VERTICAL_GUIDE an enum

* app/layer.h: made APPLY and DISCARD an enum

* app/internal_procs.[ch]: finally pdbgenned

* app/channels_dialog.c
* app/fileops.c
* app/gimpimage.c
* app/layers_dialog.c: ChannelType, MergeType enum changes

* app/commands.c: remove gimage_cmds.h #include

* app/cursorutil.h: #include <gdk/gdktypes.h>

* app/paint_funcs.h: cosmetic change for PDB help

* app/brush_select_cmds.c
* app/brushes_cmds.c
* app/layer_cmds.c
* app/tools_cmds.c: pdbgen updates

* app/Makefile.am: removed gimage_cmds.h, added guides_cmds.c

* plug-ins/Lighting/lighting_main.c
* plug-ins/MapObject/mapobject_main.c
* plug-ins/rcm/rcm.c
* plug-ins/xbm/xbm.c: removed trailing ";" from MAIN ()

-Yosh
1999-04-27 04:57:59 +00:00
Michael Natterer 737aa1a0de corrected a typo
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.
1999-03-25 23:14:36 +00:00
Michael Natterer 7fd5b7c18e This is mostly unit stuff and code cleanup
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
1999-03-12 03:44:59 +00:00
jaycox a26f8d3f5c new source files that implement pixel Look Up Table functions.
* app/gimplut.[ch]: new source files that implement pixel Look Up
 	Table functions.

	* app/Makefile.am: build gimplut.[ch]


	* app/brightness_contrast.c
	* app/curves.c
	* app/invert.c
	* app/levels.c
	* app/posterize.c: Use the new lut functions.  Use
 	pixel_region_process_parallel in the PDB versions of these routines.

	* libgimp/parasite.h
	* libgimp/parasite.c: new functions parasite_name and
 	parasite_compare.

	* app/gimpdrawable.c:
	* app/gimpdrawable.h: new function
 	gimp_drawable_get_color_at(...) returns the RGBA[color index]
 	value at a specified position in the drawable.  Don't set the dirty
 	bit on the image if a new parasite is the same as the old.

	* app/gimpimage.c
	* app/gimpimage.h new function
 	gimp_image_get_color_at(...) returns the RGBA[color index]
 	value at a specified position in the drawable.  Don't set the dirty
 	bit on the image if a new parasite is the same as the old.

	* app/by_color_select.c
	* app/color_picker.c: use the new gimp_*_get_color_at
 	functions instead of messing with the tiles.

	* app/layer.c: fixed a minor warning.

	* app/commands.c:
	don't scale the image if the new size == the old size

	* app/channel.c: optimized channel_bounds by only checking the
 	pixels in a tile if it is not already entirely within the
 	currently computed bounds.
1999-02-16 08:53:54 +00:00
GMT 1999 Austin Donnelly f45dfe1764 don't #include resize.h - it's not needed ditto.
Sun Feb 14 20:43:55 GMT 1999  Austin Donnelly  <austin@gimp.org>

	* app/channels_dialog.c: don't #include resize.h - it's not needed
	* app/preferences_dialog.c: ditto.

	* app/resize.c: do all dialog creation here to factor out lots of
	     common code in commands.c and layers_dialog.c.  Also cancel
	     resize/scale dialog on destruction/removal of images/layers -
	     proper fix for Peter Teichman's bug.
	* app/resize.h: new prototype for resize_widget_new() - beginnings
	     of resolution-aware scaling.
	* app/commands.c: pull all the resize/scale dialog creation stuff
	     out to resize.c
	* app/layers_dialog.c: same again.

	* app/layer.c: add REMOVED signal, sent when a layer is removed
	     from an image.  Layers typically aren't destroyed until their
	     undo info expires.
	* app/layer.h: prototype for layer_removed() call.
	* app/gimpimage.c: send out removed signal.
1999-02-14 21:09:55 +00:00
GMT 1999 Austin Donnelly 54fe3402e7 New manpage plus bumper fun pack of bugfixes.
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.
1999-02-14 01:53:23 +00:00