Commit Graph

17 Commits

Author SHA1 Message Date
Michael Natterer 6eeec175d9 app/core/gimpbrushgenerated.h app/core/gimpbrushpipe.h
2001-10-26  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrushgenerated.h
	* app/core/gimpbrushpipe.h
	* app/core/gimpbuffer.h
	* app/core/gimpdatafactory.h
	* app/core/gimpdrawable.h
	* app/core/gimpgradient.h
	* app/core/gimpimage.h: added some missing FOO_GET_CLASS() macros.
2001-10-25 23:08:20 +00:00
Michael Natterer 357f463d59 added a TODO entry about additional image/file info.
2001-08-11  Michael Natterer  <mitch@gimp.org>

	* TODO.xml: added a TODO entry about additional image/file info.

	* app/file-save.c: #include "core/gimpdocuments.h"

	* app/core/gimpcontainer.[ch]: made virtual functions out of some
	signals.

	* app/core/*.[ch]: more GObject stuff: ported all
	gimp_foo_get_type() functions and replaced almost all "destroy"
	implementations with either "finalize" or "dispose" functions.
2001-08-11 14:39:19 +00:00
Michael Natterer 06b16890ba Port to glib/gtk+ 2.0 episode I (every segfault has it's beginning)
2001-07-24  Michael Natterer  <mitch@gimp.org>

	Port to glib/gtk+ 2.0 episode I (every segfault has it's beginning)

	* configure.in: require glib/gtk+ >= 1.3.7, commented out the
	gtkxmhtml stuff.

	From now on, you will need glib, pango, atk and gtk+ HEAD from CVS
	to hack or use GIMP HEAD.

	Beware, it crashes randomly :)

	* app/core/Makefile.am
	* app/core/gimpmarshal.list: new file plus rules to generate
	gimpmarshal.[ch] from it.

	* app/core/*
	* app/tools/*
	* app/widgets/*
	* libgimpwidgets/*: started to use the glib object system. All
	core/ objects are still gtk objects however. All signals are
	created using g_signal_new(). There are many gtk+ artefacts left.
	Finally, we will _not_ use the gtk_signal_foo() wrappers and
	friends any more.

	* app/colormaps.c
	* app/devices.[ch]
	* app/disp_callbacks.c
	* app/errorconsole.c
	* app/file-save.[ch]
	* app/interface.c
	* app/module_db.c
	* app/nav_window.c
	* app/ops_buttons.c
	* app/scroll.c
	* app/user_install.c
	* app/gui/about-dialog.c
	* app/gui/brush-editor.c
	* app/gui/brushes-commands.c
	* app/gui/color-notebook.c
	* app/gui/colormap-dialog.c
	* app/gui/dialogs-commands.c
	* app/gui/dialogs-constructors.c
	* app/gui/file-commands.c
	* app/gui/file-dialog-utils.c
	* app/gui/file-new-dialog.c
	* app/gui/file-open-dialog.[ch]
	* app/gui/file-save-dialog.c
	* app/gui/gradient-editor.c
	* app/gui/gradients-commands.c
	* app/gui/image-commands.c
	* app/gui/info-dialog.[ch]
	* app/gui/layer-select.c
	* app/gui/layers-commands.c
	* app/gui/menus.c
	* app/gui/offset-dialog.c
	* app/gui/palette-editor.c
	* app/gui/palettes-commands.c
	* app/gui/patterns-commands.c
	* app/gui/preferences-dialog.c
	* app/gui/resize-dialog.[ch]
	* app/gui/splash.c
	* app/gui/tips-dialog.c
	* app/gui/tool-options-dialog.c
	* app/gui/toolbox.c
	* app/gui/tools-commands.c
	* libgimp/gimpbrushmenu.c
	* libgimp/gimpmenu.c
	* libgimp/gimppatternmenu.c
	* libgimp/gimpui.c
	* libgimpbase/gimpenv.c: tons and tons of changes like "const
	gchar*", switch from GdkDeviceInfo to GdkDevice (very incomplete
	and currently disables), lots of s/gtk_signal/g_signal/,
	removal/replacement of deprecated stuff,
	s/GtkSignalFunc/GCallback/ and lots of small changes and fixes
	while I was on it, zillions of warnings left...

	* modules/Makefile.am: disabled the water color selector
	temporarily (XInput issues).

	* plug-ins/Makefile.am
	* plug-ins/common/.cvsignore
	* plug-ins/common/Makefile.am
	* plug-ins/common/plugin-defs.pl: simply excluded all plug-ins
	which did not build (including Script-Fu). They are trivial to
	fix.
2001-07-24 21:27:11 +00:00
Michael Natterer 22371de3e7 added a note about apptype.h and about not including headers in headers.
2001-02-14  Michael Natterer  <mitch@gimp.org>

	* HACKING: added a note about apptype.h and about not including
	headers in headers.

	* app/apptypes.h: added GimpTool and BitmapCursor.

	* app/cursorutil.h
	* app/devices.h
	* app/draw_core.h
	* app/tools/color_picker.h
	* app/tools/tool.h
	* app/tools/tool_options.h
	* app/gimpcontext.h: removed includes of "tools/tool.h"

	* app/gimprc.[ch]: indentadion cleanup, added
	"module_db_load_inhibit".

	* app/module_db.c: removed the above variable here.

	* app/gimpdata.[ch]: added a vitrual "duplicate" method.

	* app/gimpbrush.[ch]
	* app/gimpbrushgenerated.[ch]
	* app/gimpbrushpipe.[ch]
	* app/gimpgradient.[ch]
	* app/gimppalette.[ch]
	* app/gimppattern.[ch]: all "load", "new" and "get_standard"
	functions return a GimpData pointer now.

	* app/gimpdatafactory.[ch]: made some stuff const.

	* app/gimpdatafactoryview.c: activate the "duplicate" button and
	set the initial button sensitivity correctly.

	* app/brush_select.c
	* app/gradient_select.c
	* app/pattern_select.c: use the new GimpDataFactoryView.

	* libgimp/Makefile.am: grouped the file to sort out what _may_
	go to subdirs or separate libs.

	* libgimp/gimpenv.[ch]: added many "const".

	* app/app_procs.c
	* app/brush_edit.c
	* app/gimpcontext.c
	* app/gimpdnd.c
	* app/gradient_editor.c
	* app/palette.c
	* app/palette_import.c
	* app/user_install.c: many related changes.

	* libgimpmath/gimpmathtypes.h
	* libgimpmath/gimpvector.[ch]: minor cleanups.

	* plug-ins/script-fu/script-fu.c: gimp_data_directory() is const now.
2001-02-14 14:57:14 +00:00
Michael Natterer 68216c6ff9 Made a GimpContainer out of the palette list:
2001-02-11  Michael Natterer  <mitch@gimp.org>

	Made a GimpContainer out of the palette list:

	* app/Makefile.am
	* app/palettes.[ch]: new files for the global palette list.

	* app/gimpgradientpreview.[ch]
	* app/gimppalettepreview.[ch]: new widgets.

	* app/gimppalette.[ch]: derive it from GimpData to get all the
	preview etc. stuff.

	* app/datafiles.[ch]: new function datafiles_check_extension(),
	added a "loader_data" parameter to datafiles_read_directories()
	and pass it to the loader function.

	* app/gimpcontext.[ch]: added the palette (not really used yet
	except by the test dialogs).

	* app/gimpdatalist.[ch]: new function gimp_data_list_save_and_clear()
	which does everything needed for patterns_free(), brushes_free() ...

	* app/gimpdnd.c: added palette DND.

	* app/app_procs.c
	* app/brushes.c
	* app/color_notebook.h
	* app/commands.c
	* app/convert.c
	* app/gimpbrush.h
	* app/gimpbrushpipe.h
	* app/gimpgradient.c
	* app/gimppattern.h
	* app/gimppreview.c
	* app/gradients.c
	* app/module_db.c
	* app/palette.[ch]
	* app/paletteP.h
	* app/palette_import.c
	* app/palette_select.[ch]
	* app/patterns.c
	* app/plug_in.c
	* app/pdb/convert_cmds.c
	* app/pdb/palette_cmds.c
	* tools/pdbgen/pdb/convert.pdb
	* tools/pdbgen/pdb/palette.pdb: lotsa stuff: changed due to the above
	API changes, #define the file extensions in the GimpData subclasses'
	header files instead of hardcoding them in several places, ...

	* data/palettes/*: The same file format change as for the gradient
	files:

	- Save the palette name in a parsable form (as part of the file
	  format, not in a comment.
	- Removed unserscores from the palette names.
	- Added an extension (Gimp PaLettes are ".gpl" files now ;-)
2001-02-11 16:14:25 +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
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
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
Sven Neumann ae743e3f17 Cleanups...
Shame on the one who decided it would be good idea to load pixmap brushes
as pipes, it destroys the whole purpose of the GIMP_IS_BRUSH_PIPE macro!!


--Sven & Jtl
1999-09-26 03:39:59 +00:00
Sven Neumann 831b75e301 Correct scaling of brush pipes and pixmap brushes.
--Sven
1999-09-09 19:11:38 +00:00
EDT 1999 Adrian Likins 5e64804c4b app/gimpbrushpip.[ch] app/airbrush.c app/pencil.c fix pencil tool for use
Wed Sep  1 00:56:37 EDT 1999 Adrian Likins <adrian@gimp.org>

        * app/gimpbrushpip.[ch]
        * app/airbrush.c
        * app/pencil.c
        * app/paintbrush.c: fix pencil tool for use with
           pixmaps again
1999-09-01 06:02:08 +00:00
Tor Lillqvist 70fca093f3 Implement the selection of brush based on cursor direction, pressure,
1999-08-28  Tor Lillqvist  <tml@iki.fi>

* app/gimpbrushpipe.c: Implement the selection of brush based on
cursor direction, pressure, tilt, or a random value. (Hmm, forgot
velocity, later.) (In addition to just incrementally stepping.)
Read the brush pipe parameters from the gih file's second line.
There is no way to tune the parameters in the GIMP, they must
currently be set when saving the gih file (in the gpb plug-in).

* app/gimpbrushpipe.h
* app/gimpbrushpipeP.h: Move the PipeSelectModes enum to the
"private" header. Add a stride array to GimpBrushPipe to make
indexing easier.

* plug-ins/common/gpb.c: Add selection mode fields to the dialog.
Attach the pipe parameters entered as a parasite, too.

* docs/parasites.txt
* plug-ins/common/psp.c: Use "placement", not "spacing" (which
means another thing).
1999-08-28 01:14:42 +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