Commit Graph

20 Commits

Author SHA1 Message Date
Michael Natterer 3675004ef6 app/gimpbrush.[ch] moved the scale and pipe indicator rendering code from
2001-02-07  Michael Natterer  <mitch@gimp.org>

	* app/gimpbrush.[ch]
	* app/gimpbrushpreview.c: moved the scale and pipe indicator
	rendering code from GimpBrush to GimpBrushPreview.
	Removed the "dirty" signal from GimpBrush and use
	"invalidate_preview" of the GimpViewable class.

	* app/brush_edit.c
	* app/brush_select.c
	* app/gimpbrushgenerated.c
	* app/gimpcontext.c
	* app/gimpcontextpreview.c
	* app/tools/paint_core.c: changed accordingly.
2001-02-07 03:14:38 +00:00
Michael Natterer be0e7d119c app/Makefile.am some new files and data types:
2001-02-05  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/apptypes.h: some new files and data types:

	* app/gimppreview.[ch]: new widgets which provides a view
	of a GimpViewable.

	* app/gimpcontainerview.[ch]: new abstract widget base class for
	views of GimpContainers of GimpViewables

	* app/gimpcontainerlistview.[ch]: (still) simple implementation of
	a list view of the container.

	* app/gimpbrush.[ch]
	* app/gimppattern.[ch]: provide dumb implementations of the
	GimpViewable's "preview" method.

	* app/image_render.c: quick bad hack to enable preview sizes which
	are != "preview_size": Always allocate data chunks for previews up
	to 256 pixels width.

	* app/drawable.c: emit the "incalidate_preview" signal from
	drawable_update(). This may cause useless updates at the moment
	but as we want to move from explicit updates to signal-driven
	model-view stuff it's the right thing (TM).

	* app/commands.[ch]
	* app/interface.c
	* app/menus.c: Added a "Test dialogs" menu to the Toolbox.

	* app/pdb/image_cmds.c
	* libgimp/gimpenums.h
	* plug-ins/script-fu/script-fu-constants.c
	* tools/pdbgen/enums.pl: propagated the new alpha channel stuff
	to the autogenerated files.
2001-02-05 15:22:20 +00:00
Michael Natterer cac3f7cb25 app/apptypes.h app/brush_edit.c app/brush_select.c app/brushes_cmds.c
2001-01-14  Michael Natterer  <mitch@gimp.org>

	* app/apptypes.h
	* app/brush_edit.c
	* app/brush_select.c
	* app/brushes_cmds.c
	* app/channel.h
	* app/colormap_dialog.c
	* app/datafiles.[ch]
	* app/devices.c
	* app/docindex.c
	* app/fileops.c
	* app/gdisplay.c
	* app/gimage.c
	* app/gimpbrush.[ch]
	* app/gimpbrushgenerated.[ch]
	* app/gimpbrushlist.[ch]
	* app/gimpbrushpipe.[ch]
	* app/gimpcontext.[ch]
	* app/gimpcontextpreview.c
	* app/gimpdnd.c
	* app/gimpdrawable.h
	* app/gimpimage.[ch]
	* app/gimplist.h
	* app/gimpobject.h
	* app/gimpset.[ch]
	* app/gradient.c
	* app/info_window.c
	* app/layer.[ch]
	* app/module_db.c
	* app/palette.[ch]
	* app/patterns.[ch]
	* app/plug_in.[ch]
	* app/undo_history.c
	* app/xcf.c
	* tools/pdbgen/pdb/brushes.pdb

	- Removed the "name" argument from all objects and use
	  GimpObject's name.
	- Use the same code in all "uniquefy name" functions (this
	  functionality will be a method of the "GimpContainer" class).
	- Renamed the parent instances of all objects to "parent instance".
	- Added missing instance and class cast macros.
	- Changed some "gchar *" to "const gchar *" parameters.
2001-01-14 03:55:56 +00:00
Michael Natterer 92c45a90e6 app/Makefile.am removed. added.
2001-01-10  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/gimpsignal.[ch]: removed.
	* app/gimpmarshal.[ch]: added.

	* app/channel.[ch]
	* app/gimpbrush.[ch]
	* app/gimpbrushgenerated.c
	* app/gimpbrushlist.[ch]
	* app/gimpbrushpipe.[ch]
	* app/gimpcontext.c
	* app/gimpdrawable.c
	* app/gimpimage.c
	* app/gimplist.[ch]
	* app/gimpobject.[ch]
	* app/gimpset.[ch]
	* app/layer.c
	* app/layers_dialog.c
	* app/module_db.c
	* app/parasitelist.[ch]: removed gimp_signal_new() and
	GIMP_TYPE_INIT(). Fixed lots of object related uglyness.
2001-01-10 00:36:54 +00:00
Michael Natterer 8d6c335f8f app/Makefile.am app/channel_pvt.h app/drawable_pvt.h app/gdisplayF.h
2000-12-29  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/channel_pvt.h
	* app/drawable_pvt.h
	* app/gdisplayF.h
	* app/gimpdrawableP.h
	* app/gimpimageP.h
	* app/layer_pvt.h
	* app/toolsF.h: removed these files.

	* app/apptypes.h
	* tools/pdbgen/enums.pl: added tons of opaque typedefs and enums.

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/brushes.pdb
	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/convert.pdb
	* tools/pdbgen/pdb/display.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/help.pdb
	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/patterns.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/tools.pdb
	* app/*: chainsaw #include cleanup:

	- Never (never!!) include stuff in header files except where we
	  need access to structures' contents (like derived objects).
	- Added prototypes and proper formating in many files.
	- The #include order in *all* *.c files is as follows:

	#include "config.h"

	#include <system stuff>

	#include <gtk/gtk.h>

	#include "apptypes.h"

	#include "gimp stuff"

	#include "libgimp stuff"

	#include "libgimp/gimpintl.h"

	By following this scheme we can easily see a file's dependencies
	from it's #include's and can grep for the inclusion to find out
	where a file is used.

	* tools/pdbgen/app.pl: changed to follow the include scheme above.

	* libgimp/Makefile.am
	* libgimp/gimpuitypes.h: new file, included from libgimp/gimpui.h
	and from app/apptypes.h.

	* libgimp/gimpcolorbutton.[ch]
	* libgimp/gimpdialog.[ch]
	* libgimp/gimphelpui.[ch]
	* libgimp/gimpparasite.[ch]
	* libgimp/gimppatheditor.[ch]
	* libgimp/gimpprotocol.c
	* libgimp/gimpquerybox.[ch]
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimptypes.h
	* libgimp/gimpui.h
	* libgimp/gimpunit.h
	* libgimp/gimpunitmenu.[ch]
	* libgimp/gimpwidgets.[ch]: changed accordingly.

	* plug-ins/FractalExplorer/Dialogs.c
	* plug-ins/gdyntext/message_window.c
	* plug-ins/imagemap/imap_default_dialog.c
	* plug-ins/imagemap/imap_file.c: these files used to include
	"libgimp/gimpui.h" without including "libgimp/gimp.h". This is
	no longer possible because the libgimpui headers don't inlcude
	"libgimp/gimpunit.h" any more.
2000-12-29 15:22:01 +00:00
Sven Neumann 3cff8419db Jens Lautenbacher <jtl@gimp.org>
2000-12-18  Sven Neumann  <sven@gimp.org>
	    Jens Lautenbacher <jtl@gimp.org>

	* app/Makefile.am

	* app/gimpbrushlistP.h
	* app/gimpbrushpipeP.h
	* app/gimpobjectP.h: removed these three files

	* app/parasitelistP.h
	* app/channels_dialog.c
	* app/docindex.c
	* app/gimpdrawable.c
	* app/gimpdrawableP.h
	* app/gimpimage.c
	* app/gimpimageP.h
	* app/gimplist.[ch]
	* app/gimpobject.c
	* app/gimpobject.h
	* app/gimpsetP.h: changed according to header removal

	* app/airbrush.c
	* app/brush_select.[ch]
	* app/brushes_cmds.c
	* app/gimpbrush.[ch]
	* app/gimpbrushgenerated.[ch]
	* app/gimpbrushlist.[ch]
	* app/gimpbrushpipe.[ch]
	* app/gimpcontextpreview.c
	* app/paint_core.c
	* app/paintbrush.c
	* app/pencil.c
	* tools/pdbgen/pdb/brushes.pdb: Big Brushes Cleanup.

	The GimpBrush* object hierarchy and the file formats were broken by
	"design". This made it overly difficult to read and write pixmap
	brushes and brush pipes, leading to the situation that The GIMP was
	not able to read it's very own file formats. Since the GimpBrush
	format did support arbitrary color depths, the introduction of a
	file format for pixmap brushes was unnecessary.

	The GimpBrushPixmap object is dead. GimpBrush has an additional
	pixmap temp_buf and handles pixmap brushes transparently. The file
	format of pixmap brushes is not any longer a grayscale brush plus
	a pattern, but a simple brush with RGBA data. The old brushes can
	still be loaded, but the .gpb format is deprecated.

	GimpBrushPipe derives from GimpBrush. The fileformat is still a text
	header, followed by a number of brushes, but those brushes are stored
	in the new GimpBrush format (no pattern anymore). The pipe does not
	care about the depth of the contained GimpBrushes, so we get
	grayscale BrushPipes for free. Since the brush loader still loads the
	old format, old .gih files can also still be loaded.

	Since the brushes in the GimpBrushPipe do not any longer contain a
	pointer to the pipe object, we do only temporarily switch brushes
	in the paint_core routines. This is not very elegant, but the best
	we can do without a major redesign.

	* app/patterns.[ch]: changed the loader to work with a filedescriptor
	instead of a filehandle to make it work with the new brush loading
	code.

	* plug-ins/common/.cvsignore
	* plug-ins/common/Makefile.am
	* plug-ins/common/plugin-defs.pl
	* plug-ins/common/gih.c: new plug-in that saves GIH files in the
	new format (loader will follow soon)

	* plug-ins/common/gpb.c: removed since Pixmap Brushes are no longer
	supported as a special file format.

	* plug-ins/common/gbr.c: load and save brushes in the new brush format
	which allows RGBA brushes too.

	* plug-ins/common/pat.c: load and save grayscale patterns too
2000-12-18 15:14:08 +00:00
Sven Neumann dfa2bed505 Last-minute cleanup:
2000-12-16  Sven Neumann  <sven@gimp.org>

	Last-minute cleanup:

	* app/gimpdrawableF.h
	* app/gimphistogramF.h
	* app/gimpimageF.h
	* app/gimplistF.h
	* app/gimplutF.h
	* app/gimpobjectF.h
	* app/gimpsetF.h
	* app/layerF.h
	* app/parasitelistF.h: removed these files

	* app/Makefile.am
	* tools/pdbgen/Makefile.am: changed accordingly

	* app/[almost every file]: include cleanup
2000-12-16 21:37:03 +00:00
Michael Natterer f38cdf123c app/brush_edit.[ch] app/brush_header.h app/gimpbrush.[ch]
2000-09-29  Michael Natterer  <mitch@gimp.org>

	* app/brush_edit.[ch]
	* app/brush_header.h
	* app/gimpbrush.[ch]
	* app/gimpbrushgenerated.[ch]
	* app/gimpbrushlist.[ch]
	* app/gimpbrushpipe.[ch]
	* app/gimpcontext.h
	* app/gimplist.[ch]
	* app/gimpobject.[ch]
	* app/gimpset.[ch]
	* app/gimpsignal.[ch]
	* app/parasitelist.h: Lotsa fixes in the brush referencing code
	and cleanups in many GtkObjects:

	- Reference brushes correctly (call gtk_object_sink() after adding
	  them to the brush list). Don't crash when renaming a brush
	  multiple times.
	- Replaced all gtk_object_destroy() with gtk_object_unref|sink().
	- Removed the "Fake Gimp object system" (gimp_object_destroy() et.al.)
	  all over the place (while it's a good idea to have a common Gimp
	  base object, it's totally useless to try to imitate Gtk's object
	  system).
	- s/sz_BrushHeader/sizeof(BrushHeader)/g
	- And of course various indentation and coding style paranoia changes
	  in all files I visited.
2000-09-29 12:00:00 +00:00
Daniel Egger 4b2c4d8424 Return when brush loading failed and react the right way. Fixes parts of
Return when brush loading failed and react the right way. Fixes
 parts of bug #8150.
2000-09-27 17:50:59 +00:00
Michael Natterer 8f4adbadbf app/gimpbrush.[ch] app/gimpbrushgenerated.[ch] app/gimpbrushlist.[ch]
2000-02-24  Michael Natterer  <mitch@gimp.org>

	* app/gimpbrush.[ch]
	* app/gimpbrushgenerated.[ch]
	* app/gimpbrushlist.[ch]
	* app/gimpbrushlistP.h
	* app/gimpbrushpipe.[ch]
	* app/gimpbrushpipeP.h: did a brushes code-review: indentation,
	removed some includes, didn't find a bug :-)

	* app/gradient.c
	* app/palette.c: we were leaking all gradient and palette preview
	pixmaps as well as all lists of palette colors on each refresh.

	* libgimp/gimpenv.c: updated documentation.
2000-02-24 11:39:26 +00:00
Michael Natterer 2715fd15c8 app/Makefile.am removed.
2000-02-14  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/vector2d.[ch]: removed.

	* app/gimpbrush.h
	* app/paint_core.c: use the vectors from libgimp.
2000-02-14 18:09:33 +00:00
Michael Natterer a74d52fbbf Use the context almost everywhere. 1999-10-26 18:27:27 +00:00
Tor Lillqvist 26b70edddf Add a new method, gboolean want_null_motion(), that tells if the brush
1999-08-30  Tor Lillqvist  <tml@iki.fi>

* app/gimpbrush.h (GimpBrushClass): Add a new method, gboolean
want_null_motion(), that tells if the brush wants to be painted
when we don't know the direction yet. This is needed (so far) by
brush pipes that select the brush based on direction.

* app/gimpbrush.c: Implement above method returning always TRUE.

* app/gimpbrushpipe.c: Here, implement it returning FALSE or TRUE
on whether the brush pipe has any angular (direction) dependent
dimension or not.

* app/paint_core.c (paint_core_button_press): Call the method
if current point == last point.
1999-08-30 21:24:13 +00:00
Tor Lillqvist 868bdfff44 Overhaul of pixmap brushes and pipes: No separate pixmap pipe
brush tool any longer. The paintbrush, airbrush and pencil
tools, which already knew how to handle the single-pixmap
brushes now also handle the pipes as well.

* app/pixmapbrush.{h,c}
* app/gimpbrushpixmap.{h,c}: Removed these files.

* app/Makefile.am
* app/makefile.{cygwin,msc}: Remove from here, too.

* app/gimpbrushpipe.{h,c}: Total overhaul.

* app/paint_core.h
* app/apptypes.h: Some more types moved to apptypes.h

* app/context_manager.c
* app/tool_options.c
* app/tools.c
* app/toolsF.h: Remove PIXMAPBRUSH tool.

* app/gimpbrush.h: New method: select_brush. Used to change the
brush in paint_core, for pipe brushes.

* app/gimpbrush.c: Add gimp_brush_select_brush, which is dummy for
the normal brushes (returns the same brush).

* app/paint_core.c: Call the brush's select_brush method to get a
potential new brush before calling the paint_func.

* app/gimpbrushlist.c: Various changes related to the pixmap and
pipe overhaul.

* app/airbrush.c
* app/pencil.c: Reorder code a bit in the tool motion function to
avoid executing unnecessary code in the case of a pixmap brush.

Other changes in the same commit:

* app/install.c: Make quote_spaces extern.

* app/appenv.h: Declare it.

* libgimp/gimpui.def: Add missing entry points.

* libgimp/makefile.{cygwin,msc}: Add missing objects to gimpui.
1999-08-26 00:54:30 +00:00
EDT 1999 Adrian Likins 5c61305f24 app/gimpbrushhose.c removed. app/gimpbrushpipe.c New files to replace the
Mon Aug 23 00:56:59 EDT 1999 Adrian Likins <alikins@redhat.com>

        * app/gimpbrushhose.c
        * app/gimpbrushhose.h:
                removed.
        * app/gimpbrushpipe.c
        * app/gimpbrushpipe.h:
                New files to replace the above
        * app/gimpbrushlist.c
        * app/paintbrush.c
        * app/pixmapbrush.c
        * app/Makefile.am:
                s/hose/pipe. Seems someone else uses that name,
        so change it to pipe.

        * app/gimpbrush.c
        * app/gimpbrush.h
        * app/gimpbrushpixmap.c
        * app/patterns.c
        * app/patterns.h
        * app/pixmapbrush.c:
                Added functions to do the actual loading of
        brush/pattern data. Use them where approriate instead
        of cut&pasting the same code all over the place.

        * app/pixmapbrush.c: Fix the bug where masks and brush
        data werent aligned. I didnt quite notice that
        paint_core_get_paint_area returns an area with a 1 pixel
        border larger than the brush. Ooops.

        * TODO: just update a few things while I'm at it
        (pixmap/pipe stuff in particular)
1999-08-23 06:06:12 +00:00
Michael Natterer ca2cbd3257 First version of per-tool paint options. No PDB interface yet. The tool
1999-04-22  Michael Natterer  <mitschel@cs.tu-berlin.de>

	First version of per-tool paint options. No PDB interface yet.
	The tool options dialog got rather big when in per-tool mode, so
	it will probably have to become a notebook.

	It's not yet 100% consistent. If switched off, everything should
	behave exactly like before.

	* app/Makefile.am
	* app/paint_options.h: new file

	* app/tool_options.c: PaintOptions gui. Maintain a list of all
	paint tools' ToolOptions to enable switching between global and
	per-tool paint options.

	* app/brush_select.[ch]: changed packing boxes, tables, ...
	The paint options in the brush selection can be hidden now.
	Moved create_paint_mode_menu() to paint_options.h and
	tool_options.c and renamed it to paint_mode_menu_new().

	* app/gimage_mask.c
	* app/gimpbrush.[ch]
	* app/gimpbrushlist.[ch]
	* app/paint_core.c: moved gimp_brush_[set|get]_spacing() from
	gimpbrushlist.[ch] to gimpbrush.[ch].
	Moved gimp_brush_[get|set]_[opacity|paint_mode]() to
	paint_options.h and tool_options.c and renamed them to
	paint_options_*_*().  They are "global paint options" now.

	* app/airbrush.c
	* app/blend.c
	* app/bucket_fill.c
	* app/clone.c
	* app/convolve.c
	* app/eraser.c
	* app/ink.c
	* app/paintbrush.c
	* app/pencil.c: all paint tools' options are derived from
	"PaintOptions" now. Opacity and paint mode are obtained through
	macros which take into account the current paint options mode.

	* app/buildmenu.h: #include <gtk/gtk.h>

	* app/color_picker.c
	* app/text_tool.c: changed spacings.

	* app/gimprc.[ch]: new gimprc option "global-paint-options"

	* app/preferences_dialog.c: Added a "Tool Options" page. Code
	cleanup. Some work on the convenience constructors test site.

	* app/tools.c: fixed "unused variable" warning.
1999-04-22 14:34:00 +00:00
jaycox 69d922412a ----------------------------------------------------------------------
----------------------------------------------------------------------
 Modified Files:
 	ChangeLog app/Makefile.am app/brush_select.c app/gimpbrush.c
 	app/gimpbrush.h app/gimpbrushgenerated.c app/gimpbrushlist.c
 	app/gimplist.c app/paint_core.c app/paint_core.h
    added axis to brushes.  paint_core now references a brush instead
    of a mask.  cleaned up some [brush]list removal stuff.


 Added Files:
 	app/vector2d.c app/vector2d.h
    very basic vector math struct/functions.
----------------------------------------------------------------------
1998-07-24 08:56:18 +00:00
jaycox 2f93825eb2 ----------------------------------------------------------------------
----------------------------------------------------------------------
 Modified Files:
 	ChangeLog app/brush_select.c
 	app/gimpbrush.c app/gimpbrush.h app/gimpbrushgenerated.c
 	app/gimpbrushlist.c app/gimpbrushlist.h
     removed the index field from GimpBrush.  tweaked the brush renaming
     code

	app/edit_selection.c:
     look ahead in the event queue and process as many arrow keys as we
     can.
 ----------------------------------------------------------------------
1998-07-20 14:05:33 +00:00
jaycox 33cc34dda2 ----------------------------------------------------------------------
----------------------------------------------------------------------
 Modified Files:
 	ChangeLog app/brush_select.c app/gimpbrush.c app/gimpbrush.h
 	app/gimpbrushlist.c
      made the scrollbars recalc in brush_select when a brush is
      added/removed.
      GimpBrushLists now force brush names to be unique.
 ----------------------------------------------------------------------
1998-07-19 22:32:35 +00:00
jaycox b7d8e6ea91 Modified Files: ChangeLog app/Makefile.am app/airbrush.c app/app_procs.c
Modified Files:
 	ChangeLog app/Makefile.am app/airbrush.c app/app_procs.c
 	app/brush_select.c app/brush_select.h app/clone.c
 	app/colormaps.c app/commands.c app/convolve.c app/devices.c
 	app/eraser.c app/gimage_mask.c app/gimpobject.h app/ink.c
 	app/internal_procs.c app/paint_core.c app/paint_core.h
 	app/paintbrush.c app/pencil.c app/preferences_dialog.c
      Minor modifications to support new brush functionality

 Added Files:
 	app/brush_edit.c app/brush_edit.h app/gimpbrush.c
 	app/gimpbrush.h app/gimpbrushgenerated.c
 	app/gimpbrushgenerated.h app/gimpbrushlist.c
 	app/gimpbrushlist.h
      new files to support vector generated brushes and
      reorganization/objectification of the brush class

 Removed Files:
 	app/brushes.c app/brushes.h
    Obsoleted by gimpbrush.? and gimpbrushlist.?

 ----------------------------------------------------------------------
1998-07-09 05:31:06 +00:00