2001-02-19 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gimppalette-import.[ch]: new files. The import functions
stripped from all UI crap.
* app/palette_import.c: removed from here.
2001-02-19 Michael Natterer <mitch@gimp.org>
* app/context_manager.c
* app/gimpdatafactory.c
* app/gimpdatalist.[ch]
* app/gimplist.[ch]
* app/module_db.c: return a GimpContainer from all container
subclass constructors.
* app/gimppalettepreview.c
* app/palette.c: changed the preview a bit. Still ugly.
2001-02-18 Michael Natterer <mitch@gimp.org>
* app/gimpdnd.[ch]: added DND source functions which work by
GtkType.
* app/commands.c
* app/brush_select.c
* app/gradient_select.[ch]
* app/pattern_select.c: removed the DND code here because it's all
done by the GimpContainerView now.
* app/gimpbrushpreview.c
* app/gimpgradientpreview.c
* app/gimppalettepreview.c
* app/gimppatternpreview.c: use the DND by-type connect functions.
* app/gimpbrushgenerated.c: implemented "duplicate", cleanup.
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpcontainerview.[ch]: added a "activate_item" signal
method which is emitted by the subclasses to indicate double click.
* app/gimpdatafactoryview.c: connect to "activate_item" and show
the editor.
* app/convert.c
* app/gimppalette.[ch]
* app/palette.c
* app/paletteP.h
* app/palette_import.c
* app/palette_select.[ch]: major cleanup: Behaves like the other
datatypes now: DND, context stuff, GimpContainerListViews in
the dialogs etc. Mostly just removal of code.
* app/gradient_editor.c: fixed signal blocking/unblocking.
* plug-ins/script-fu/scripts/Makefile.am: install the "Test Sphere"
script again.
2001-02-17 Michael Natterer <mitch@gimp.org>
* app/gimpcontainer.[ch]
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpcontainerview.[ch]
* app/gimplist.c
* app/gimpmarshal.[ch]: the GimpContainer has a new virtual "reorder"
method which is much more eficient then the current remove/add
braindeadness when renaming data objects.
Changed the views to connect to "reorder" and call the
GimpContainerView's new "reorder_item" method which then does
the right thing in the view subclasses.
* app/gimpdatafactory.c
* app/gimpdatafactoryview.c
* app/gimpdatalist.[ch]: removed the data list loading and saving
stuff from GimpDataList because that's the job of the
GimpDataFactory.
* app/brush_edit.[ch]
* app/brush_select.c: cleanup.
* app/gradient_editor.[ch]: changed it to work like the brush
editor: return a GradientEditor pointer in the constructor
and statically store this pointer in the gradient selection file.
Removed the global "g_editor" variable and added tons of
GradientEditor* variables to function calls so they know their
context without the global variable.
* app/gradient_select.c: changed accordingly.
2001-02-16 Stanislav Brabec <utx@penguin.cz>
On request of Martin Weber <martweb@gmx.net>.
* plugins/common/despeckle.c: Fixed comparison *sort_ptr > black_level.
Only adopting white_level had a visual effect. This fix causes
that also adopting blck_level works also.
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.
* plug-ins/plugin-helper/*: prototype for an extension that allows
gmodules as plugins. Known bug: crashes on gmodules with a static "query" function
* app/tools/tool.c
* app/tools/tool.h: created new GimpTool object. Did away with ToolInfo.
Most tools still need to be ported over to the new api.
* plug-ins/script-fu/script-fu-scripts.c: fixed typo in comment. Pathetic, huh?
2001-02-13 Michael Natterer <mitch@gimp.org>
* gimprc.in
* user_install
* user_install.bat
* app/gimprc.[ch]
* app/preferences_dialog.c: removed the "brush_vbr_path" variable,
because all data types will be editable and saveable soon.
* app/Makefile.am
* app/apptypes.h
* app/gimpdatafactory.[ch]: new object which holds a data list and
knows how to create, edit, duplicate etc. the items in it. Will
completely replace the brushes.[ch], patterns.[ch], ... files soon.
* po/POTFILES.in
* app/gimpdatacontainerview.[ch]: removed.
* app/gimpdatafactoryview.[ch]: added.
A view on the GimpDataFactory with a GUI for creating, editing,
deleting etc. items (mostly unimplemented).
* app/context_manager.[ch]: replaced the global data lists by global
data factories.
* app/brush_select.c
* app/brushes.[ch]
* app/commands.c
* app/convert.c
* app/devices.c
* app/gimpbrush.[ch]
* app/gimpbrushgenerated.c
* app/gimpcontext.c
* app/gimpdata.[ch]
* app/gimpdatalist.[ch]
* app/gimpdnd.c
* app/gimpgradient.[ch]
* app/gimppalette.[ch]
* app/gimppattern.[ch]
* app/gradient_editor.c
* app/gradient_select.c
* app/gradients.[ch]
* app/indicator_area.c
* app/palette.c
* app/palette_import.c
* app/palette_select.c
* app/palettes.[ch]
* app/pattern_select.c
* app/patterns.[ch]
* app/pdb/brush_select_cmds.c
* app/pdb/brushes_cmds.c
* app/pdb/convert_cmds.c
* app/pdb/gradient_select_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/pattern_select_cmds.c
* app/pdb/patterns_cmds.c
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/patterns.pdb: changed accordingly.
2001-02-13 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* po/POTFILES.in
* app/gimpdatacontainerview.[ch]: new widget which will replace the
current brush, pattern, ... selections. To really use it, there
needs to be a GimpDataFactory object (coming soon...)
* app/commands.[ch]
* app/menus.c: added test data container views.
* app/paint_funcs_simd.S: #include the implementation with "", not <>
2001-02-13 Michael Natterer <mitch@gimp.org>
* app/gradient_editor.[ch]
* app/gradient_select.[ch]: use GimpContainerListView instead of
cooking an own list.
* app/gimpgradient.[ch]: removed the GdkPixmap from the gradient.
* app/gimpcontainerlistview.c: connect the viewable's "name_changed"
signal to the label.
* app/gimpmarshal.[ch]
* app/gimppreview.[ch]: new virtual function "get_size",
* app/gimpgradientpreview.c: implement "get_size" and return a 3:1
aspect ratio.
* app/gradients.c
* app/palette_select.[ch]
* app/palettes.c: removed the dialog freeze/thaw functions.
* app/brush_select.c
* app/pattern_select.c
* app/plug_in.c: stuff.
2001-02-12 Michael Natterer <mitch@gimp.org>
* app/brush_select.[ch]
* app/pattern_select.[ch]: removed almost all code by using
the GimpContainerGridView.
* app/brushes.c
* app/patterns.c: brush|pattern_select_freeze|thaw_all() don't
exist any more.
* app/devices.c: made it work again.
* app/gimpgradientpreview.c: the gradient popup is 128 x 32 again.
* app/plug_in.c: follow the brush and pattern dialog function
renaming.
* app/gimppalette.[ch]
* app/gimppalettepreview.c: added a "Columns" attribute and show
the popups accordingly.
The palette file format has changed again. It now can have an
optional "Columns: <n>" line after the palette's name.
* data/palettes/Bgold.gpl
* data/palettes/Borders.gpl
* data/palettes/Cascade.gpl
* data/palettes/China.gpl
* data/palettes/Coldfire.gpl
* data/palettes/Dark_pastels.gpl
* data/palettes/Ega.gpl
* data/palettes/Gold.gpl
* data/palettes/Grayblue.gpl
* data/palettes/Hilite.gpl
* data/palettes/Kahki.gpl
* data/palettes/Named_Colors.gpl
* data/palettes/News3.gpl
* data/palettes/Op2.gpl
* data/palettes/Plasma.gpl
* data/palettes/Visibone.gpl
* data/palettes/Visibone_2.gpl
* data/palettes/Web.gpl: added the "Columns" parameter where it
makes sense and remove those ugly black colors which were hanging
around as first color of may palettes.
2001-02-12 Michael Natterer <mitch@gimp.org>
* app/Makefile.am: took gimpcontextpreview.[ch] out of the build
but still left the sources there as reference.
* app/app_procs.c: initialize the render stuff before creating the
toolbox (needed for the previews).
* app/devices.c
* app/indicator_area.c: use GimpPreviews instead of
GimpContextPreviews.
* app/context_manager.[ch]: create the global data lists here
because they now must exist before any context is created.
* app/brushes.[ch]
* app/gradients.[ch]
* app/palettes.[ch]
* app/patterns.[ch]: removed them here.
* app/gimpcontainer.[ch]: added a "freeze_count" and emit the
"freeze" and "thaw" signals accordingly.
* app/gimpcontext.[ch]: greatly simplified the way how the
contexts connect to the data lists (simply keep them connected all
the time). Also removed all those ugly explicit update functions
because "thaw" callbacks do this job now.
* app/gimpdata.c: a GimpData object now becomes dirty on
"name_changed"; "dirty" now triggers "invalidate_preview" because
the context does not dispatch these signals any more soon.
* app/brush_select.c
* app/convert.c
* app/gimpdnd.c
* app/gradient_editor.c
* app/gradient_select.c
* app/pattern_select.c
* app/gradient_editor.c
* app/gradient_select.c
* app/gradients.[ch]
* app/pdb/brush_select_cmds.c
* app/pdb/brushes_cmds.c
* app/pdb/convert_cmds.c
* app/pdb/gradient_select_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/pattern_select_cmds.c
* app/pdb/patterns_cmds.c
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/patterns.pdb: changed accordingly.
2001-02-11 Michael Natterer <mitch@gimp.org>
* app/apptypes.h: added the datafile loader_func typedefs.
* app/datafiles.h: removed from here.
* app/gimpcontainer.[ch]: emit "freeze" and "thaw" signals to get
rid of those blah_select_[freeze|thaw]_all() stuff.
* app/gimpdatalist.[ch]: new function gimp_data_list_load() which
takes a va_list of GimpDataObjectLoaderFuncs and file extensions
and is almost a replacement for the four files below.
* app/brushes.c
* app/gradients.c
* app/palettes.c
* app/patterns.c: very simple now. It may be worth thinking about
making all GimpData subclasses managed by a descriptive array in
the context_manager.
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 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/apptypes.h
* app/gimpdata.[ch]: new abstract base class for everything
(except images) which has a filename and can become dirty and must
be saved.
* app/gimpbrush.[ch]
* app/gimpgradient.[ch]
* app/gimppattern.[ch]: all derived from GimpData now.
* app/gimpbrushgenerated.[ch]
* app/brush_select.c
* app/brushes.c
* app/gimpbrushpipe.c
* app/gradient_editor.c
* app/gradients.c
* app/patterns.c: removed lots of code duplication due to common
file save magic.
The gradient file format has changed: it now contains the
gradient's name (no more ugly underscores). The files have the
extension ".ggr".
* app/gimpgradient.[ch]: save new gradients, load new and old
gradients.
* data/gradients/*: removed all old gradients and added the new
ones.
MMX paint_funcs
Should autodetect whether the assembler handles MMX and whether the C
compiler allows gcc-like __attribute function specifications.
Should detect MMX at run-time.
2001-02-10 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gradientP.h
* app/gradient_header.h: removed.
* app/gimpgradient.[ch]: new object -- bye bye "gradient_t"
* app/gradients.[ch]: new files for managing the gradient list.
* app/gradient.[ch]: containes only the gradient editor now (which
still badly poked aroung in the GimpGradient structure).
* app/app_procs.c
* app/apptypes.h
* app/devices.c
* app/gimpcontainerlistview.c
* app/gimpcontext.[ch]
* app/gimpcontextpreview.[ch]
* app/gimpdnd.[ch]
* app/gradient_select.[ch]
* app/indicator_area.c
* app/palette_import.c
* app/pdb/gradient_select_cmds.c
* app/pdb/gradients_cmds.c
* app/tools/airbrush.c
* app/tools/blend.c
* app/tools/paint_core.c
* app/tools/paintbrush.c
* app/tools/pencil.c
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb: changed accordingly, some
changes to the preview and view stuff.
* app/gimppreview.[ch]: removed the "context" attribute again
because it was overkill (a simple gtk_signal-connect_object does
the same as doing the autoconnection magic inside the GimpPreview
object).
* app/commands.[ch]
* app/menus.c: example views on the gradient container.
2001-02-09 Michael Natterer <mitch@gimp.org>
* app/gimpcontainergridview.[ch]
* app/gimpcontainerlistview.[ch]
* app/gimpcontainerview.[ch]: follow the GimpPreview API change
and take only "size" instead of "width" and "height" in the
constructor.
* app/gimpdnd.[ch]: first attempt to hack GtkType based DND which
speaks in terms of GimpViewable instead of Brush, Pattern, ...
Added functions to remove DND callbacks (used by the multi-views).
* app/gimppreview.[ch]: new function gimp_preview_set_size_full().
* app/commands.c: updated the example dialogs to be DND aware.
* app/gimpimage.c: fixed preview size calculation by ensuring a
minimal width/height of 1 pixel.
Reported by Dave Neary <dneary@eircom.net>
2001-02-09 Michael Natterer <mitch@gimp.org>
* app/gimppreview.[ch]: moved the constructor-parameter-overkill
to the new function gimp_preview_new_full() and made the
gimp_preview_new() interface simple.
* app/gimpbrushpreview.c
* app/gimppatternpreview.c: added DND support.
* app/gimpdnd.c: use the new preview system.
* app/gimpconstrainedhwrapbox.c: implement "size_allocate". Ok,
this is silly -- I will write an own widget which does the
"scrollable grid of whatever" stuff in one place...
* app/commands.c
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpimagepreview.c: follow the GimpPreview constructor change.
2001-02-09 Michael Natterer <mitch@gimp.org>
* app/commands.c: changed the test dialogs a bit.
* app/gimpconstrainedhwrapbox.[ch]: should be called
GimpHackedWrapBoxForContainerView now ;-)
* app/gimpcontainergridview.[ch]
* app/gimpcontainerlistview.[ch]: fixed the minimal size setting
by getting the magic values from the relevan gtk widgets.
Scroll to the active item if it not visible.
2001-02-08 Michael Natterer <mitch@gimp.org>
* app/gimppreview.[ch]: added a "border" attribute. The border can
have any color (which has no sane API yet...). Added "width" and
"height" attributes and provide a "set_size" function.
* app/gimpbrushpreview.c
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpimagepreview.c
* app/gimppatternpreview.c: changed accordingly, enabled
highlighting of the selected item in the grid views.
2001-02-07 Michael Natterer <mitch@gimp.org>
* app/gimppreview.[ch]: allocate less temp_bufs by removing the
"create_preview" virtual function and adding a "render" one.
Implementations have to call the new public function
gimp_preview_render_and_flush() to render their temp_bufs.
This way, e.g. the GimpPatternPreview can render the preview
directly from the pattern's mask.
* app/gimpdrawablepreview.c
* app/gimpimagepreview.c
* app/gimppatternpreview.c: changed accordingly.
* app/gimpbrushpreview.[ch]: same as above and added BrushPipe
popup animation.
2001-02-07 Michael Natterer <mitch@gimp.org>
* app/gimppreview.[ch]
* app/gimpbrushpreview.c
* app/gimpcontainergridview.c
* app/gimpcontainerlistview.c
* app/gimpimagepreview.c
* app/gimppatternpreview.c: added an "is_popup" parameter to the
preview constructor so the subclasses can decide if to do special
stuff like pipe animation.
2001-02-07 Michael Natterer <mitch@gimp.org>
* app/gimpcontext.[ch]: added "set_by_type", "get_by_type" and
"changed_by_type" methods which take a GtkType and decide from
that if to manipulate the Brush, Pattern etc.
* app/gimpcontainerview.[ch]
* app/gimpcontainergridview.[ch]
* app/gimpcontainerlistview.[ch]: added a GimpContext to the views
which is used to manage the active item.
* app/commands.c: pass the user_context to the test views.
* app/gimpbrushpreview.c
* app/gimppatternpreview.c
* app/gimppreview.[ch]: added a virtual "needs_popup" method which
returns a boolen indicating if the viewable is already fully
visible.
* app/gimage.[ch]: removed gimage_foreach() and some other
functions which can easily be done be gimp_container_foreach().
Removed gimage_delete().
* app/fileops.c
* app/gdisplay.c
* app/lc_dialog.c
* app/nav_window.c
* app/palette_import.c
* app/preferences_dialog.c
* app/xcf.c
* app/pdb/image_cmds.c
* tools/pdbgen/pdb/image.pdb: changed accordingly. Switched from
"disp_count" refcounting to real GtkObject refcounting for
GimpImages.
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 Michael Natterer <mitch@gimp.org>
* app/Makefile.am
* app/gimpimagepreview.[ch]: new object with own implementations
of "create_preview" and "create_popup".
* app/gimpdrawablepreview.c: stuff... still unused.
* app/gimppreview.c: fixed idle rendering crashes, don't
forget popups on GDK_2BUTTON_PRESS.
* app/app_procs.c: gimpbrushlist.h doesn't exist any more.
* app/gimpobject.h: removed the GimpObject typedef because it
is in apptypes.h