2002-05-27 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig.[ch]: added "gint nest_level" to the
deserialization functions, so nested calls to deserialize()
don't error on the trailing ')'. Made the scanner config parse
one-character identifiers and allow G_CSET_A_2_Z for all
identifiers.
Added gimp_config_deserialize_return() because returning the
correct return value from a deserialize() function is not
trivial any more with nested calls.
* app/config/gimpconfig-deserialize.[ch]
* app/config/gimprc.c
* app/core/gimpdocumentlist.c
* app/core/gimpparasitelist.c: use the new return value utility
function and made the main parsing loops simpler.
* app/core/gimpunits.c: made the main parsing loops consistent
with the stuff that uses GimpConfig.
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: call the
(de)serialize_property() functions only if the property's class
implements the method itself (does *not* inherit it from one of
it's parents).
* app/core/gimpcontainer.c: implemented deserialization of
containers. For each child entry encountered in the input, check
if it's already contained in the container and create it if not.
If a "gimp" pointer is passed as user_data pass it as construct
property to g_object_new() when creating the object.
* app/core/gimpcontext.c: changed deserialization of brush,
pattern etc. to honor "no_data".
* app/widgets/gimpdeviceinfo.c: added a "gimp" construct_only
property which overrides GimpContext's "gimp" property. Moved all
initialisation code from gimp_device_info_new() to
gimp_device_info_set_property(PROP_GIMP) so it is properly
performed if the object is created by GimpContainer's
deserialize() implementation.
* app/widgets/gimpdevices.c: made gimp_devices_restore_test() work.
2002-05-27 Sven Neumann <sven@gimp.org>
* configure.in: restructured, added lots of comments. Reenabled
build of gimp-remote.
* app/main.c: output name and version with usage information.
* docs/Makefile.am: install the gimp-remote-1.3 man-page.
* tools/Makefile.am: link gimp-remote-1.3 to gimp-remote if
enable-default-binary was choosen at configure time.
* tools/gimp-remote.c: make it start gimp-1.3 if called with the
--new command-line option. Still the same bad hack as in 1.2 :-(
2002-05-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpchannellistview.c
* app/widgets/gimpcomponentlistitem.c: kindof fixed the channel
dialog's component items. Had to disable keyboard navigation
because GtkList is horribly broken with GTK_SELECTION_MULTIPLE.
Left in lots of #if 0'ed stuff because this is not the final
solution...
2002-05-27 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c: "%lld" is not a portable format string,
cast to gint64 and use G_GINT64_FORMAT instead.
2002-05-27 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagefile.c: use "%lld" when printing or parsing
file sizes because AC_SYS_LARGEFILE makes off_t a long long.
2002-05-24 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-deserialize.c: added deserialization of
GValueArrays (untested). Added gimp_config_deserialize_value()
which is factored out from gimp_config_deserialize_property().
2002-05-24 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig.c (gimp_config_string_indent): fixed assertion
which did not check for indent_level >= 0 but > 0.
* app/config/gimpconfig-serialize.c (gimp_config_serialize_value):
serialize floats with g_ascii_formatd() to be locale independed,
added serialization of GValueArrays.
* app/widgets/gimpdeviceinfo.c: added properties for "mode",
"axes" and "keys". Their set_property() implementations are
untested.
2002-05-24 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig.[ch]
* app/config/gimpconfig-serialize.[ch]: added "gint indent_level"
to all serialization functions. Added gimp_config_string_indent()
which indents a GString.
* app/config/gimprc.c
* app/core/gimpdocumentlist.c
* app/core/gimpparasitelist.c: changed accordingly.
* app/core/gimpcontext.c: don't crash when serializing NULL object
properties.
* app/config/gimpscanner.[ch]: added gimp_scanner_parse_identifier().
* app/core/gimpcontainer.c: implement GimpConfigInterface.
Container serialization works, deserialization is not implemented yet.
* app/widgets/gimpdevices.[ch]: made
GimpDeviceManager->device_info_list a GimpList, not GList, added
testing functions for (de)serializing it.
* app/gui/menus.c
* app/gui/test-commands.[ch]: call the new test functions from
the <Toolbox>/File/Debug menu.
2002-05-24 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c: copied some code from
gtk+/gtk/gtkmenubar.c:window_key_press_handler() which pops up the
<Image> menu on F10 (or whatever is configured in GtkSettings).
2002-05-22 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig.[ch]: added virtual interface methods
serialize_property() and deserialize_property() which can be used
to implement (de)serialization of special properties or to
override the default implementation.
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: for each property, check if
the class which added it implements the virtual functions and call
them before trying the default implementations.
* app/config/gimpconfig-params.h: added new macro
GIMP_CONFIG_INSTALL_PROP_OBJECT().
* app/core/gimpcontext.c: declare the "tool", "brush", "pattern",
"gradient" and "palette" properties as serializable and added
implementations of (de)serialize_property().
2002-05-21 Sven Neumann <sven@gimp.org>
* app/config/Makefile.am: need to link test-config against
libgimpcolor now.
* app/config/gimpconfig.c (gimp_config_serialize): write newlines
after header and before footer.
* app/config/test-config.c
* app/config/gimprc.c
* app/core/gimp-documents.c
* app/core/gimp-parasites.c
* app/gui/test-commands.c: removed the newlines here.
* app/config/gimpconfig-params.h: define GIMP_PARAM_SERIALZE flag
which can be used to mark an object property as serializable.
Make the GIMP_CONFIG_INSTALL_PROP_* macros set it.
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: check the GIMP_PARAM_SERIALIZE
flag.
* app/config/gimpconfig-params.c (gimp_param_color_set_default):
fixed.
* app/core/gimpcontext.c: install serializable properties using the
GIMP_CONFIG_INSTALL_PROP_* macros.
2002-05-21 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-types.[ch]: added GIMP_TYPE_COLOR as boxed
type encapsulating GimpRGB.
* app/config/gimpconfig-params.[ch]: added GimpParamSpecColor
which is derived from GParamSpecBoxed and adds a default value.
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: added generic
(de)serialization of the new property type.
* app/core/gimpcontext.c: implement the config interface, changed
signal parameters and property types to use the new
GIMP_TYPE_COLOR.
* app/core/gimpmarshal.list: added a VOID__BOXED marshaller.
* app/gui/menus.c
* app/gui/test-commands.[ch]: some test code which (de)serializes
the user context.
2002-05-21 Sven Neumann <sven@gimp.org>
* app/core/gimplayer.[ch] (gimp_layer_new_from_tiles): added a
GimpImageType parameter to specify the desired drawable type. This
is needed when pasting into layer masks.
* app/core/gimpdrawable-transform.c
* app/core/gimpedit.c
* app/core/gimpimage-mask.c: changed accordingly.
2002-05-21 Michael Natterer <mitch@gimp.org>
* app/gimprc.c
* app/widgets/gimpdeviceinfo.c: write/parse the "wheel" axis
properly when writing/parsing devicerc.
* app/widgets/gimpdevices.c: no need to #define something twice.
2002-05-16 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpprotocol.[ch]
* libgimpbase/gimpwire.[ch]: pass "gpointer user_data" to all
functions, which in gets turn passed to the registered reader,
writer, and flusher funcs.
* libgimp/gimp.c
* libgimp/gimptile.c: pass NULL as user_data. We have only one
pipe on the plug-in side.
* app/plug-in/plug-in.c: pass the PlugIn as user_data. As a
consequence, got rid of more global variables. The global
"current_plug_in" and the plug_in_push()/pop() madness are still
there. Will reeplace them by some less ugly hack later...
2002-05-16 Michael Natterer <mitch@gimp.org>
* libgimpbase/tmpl/gimpprotocol.sgml
* libgimpbase/tmpl/gimpwire.sgml: regenerated after API change.
2002-05-16 Sven Neumann <sven@gimp.org>
* app/gui/splash.c: don't allow to close the splash screen. Fixes
bug #81962.
* plug-ins/gimpressionist/gimpressionist.c: changed button order.
As mentioned in bug #81963 the UI of this plug-in needs some more
work.
* plug-ins/gimpressionist/brush.c
* plug-ins/gimpressionist/paper.c
* plug-ins/gimpressionist/presets.c: fixed handling of scrolled
windows.
2002-05-16 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in.c: Pass PlugIn, not Gimp pointers to all
message handler functions so they have a proper context to operate
on. Use the PlugIn pointer passed instead of "current_plug_in".
Removed global variables "current_readchannel" and
"current_writechannel" because it is now always possible to use
plug_in->my_read and plug_in->my_write.
2002-05-15 Michael Natterer <mitch@gimp.org>
* app/tools/gimpmovetool.c: <shift>+click toggles the active
layer's "linked" property now.
* themes/Default/images/stock-tool-options-16.png: new icon.
* themes/Default/images/Makefile.am
* themes/Default/imagerc
* libgimpwidgets/gimpstock.[ch]: added it to the stock system.
* app/gui/menus.c: use it for the tool_options dialog's menu
entries.
2002-05-15 Sven Neumann <sven@gimp.org>
* app/config/gimpconfig.c: fixed documentation.
* app/tools/gimppenciltool.c
* app/tools/gimpsheartool.c: assign shortcuts that don't collide with
other tools.
2002-05-15 Michael Natterer <mitch@gimp.org>
New feature: pressing <space> in the image window temporary
switches to the move tool (so that releasing <space> switches back
to the old tool).
* app/display/gimpdisplayshell.[ch]: added booleans
shell->space_pressed and shell->space_release_pending. Connect
more events to gimp_display_shell_events() so they can be blocked
there if needed.
* app/display/gimpdisplayshell-callbacks.c: beautified and
uglified at the same time:
beauty:
- moved the checks if gimp is busy or button1 is down to
gimp_display_shell_events() so they don't clutter
gimp_display_shell_canvas_tool_events().
- factored tool modifer updating out to a separate function.
- indentation/spacing cleanup.
ugly:
- added more static variables to track the state of <space>
- added the actual move tool toggling code.
2002-05-15 Sven Neumann <sven@gimp.org>
* app/core/gimpdocumentlist.c
* app/core/gimpparasitelist.c
* app/core/gimpunits.c: improved parser error messages. Relies on a
fix in glib (see bug #81850). However it doesn't hurt if you don't
have the fix.
2002-05-15 Sven Neumann <sven@gimp.org>
* app/config/gimpconfig.[ch]: added user_data pointer to serialize
and deserialize methods.
* app/config/gimprc.[ch]: implement gimp_rc_save() using
gimp_config_serialize() so it can take advantage of the file
handling magic implemented there.
* app/config/test-config.c
* app/core/gimp-documents.c
* app/core/gimp-parasites.c
* app/core/gimpdocumentlist.c
* app/core/gimpparasitelist.c: changed accordingly.
2002-05-15 Sven Neumann <sven@gimp.org>
* app/config/gimpconfig.[ch]: added a return value to indicate
success of GimpConfigInterface::serialize. Added a GimpConfigError
value for write errors and check the return value of all write()
calls. Allow to specify file header and footer when calling
gimp_config_serialize().
* app/config/gimpconfig-serialize.[ch]
* app/config/gimprc.c: changed accordingly.
* app/core/gimp-documents.[ch]: new files with functions to handle
gimp->documents.
* app/core/gimpdocuments.[ch]: removed ...
* app/core/gimpdocumentlist.[ch]: ... and added under this name.
Implements a generic document list.
* app/core/gimp-parasites.[ch]: new files with functions to handle
gimp->parasites.
* app/core/gimpparasite.[ch]: removed.
* app/core/gimpparasitelist.[ch]: nothing more than a generic
parasite list.
* app/undo.c
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimp.c
* app/core/gimpdrawable.c
* app/core/gimpimage-merge.c
* app/core/gimpimage.c
* app/core/gimpitem.c
* app/file/file-open.c
* app/file/file-save.c
* app/gui/file-open-dialog.c
* app/pdb/parasite_cmds.c
* tools/pdbgen/pdb/parasite.pdb: changed accordingly.
2002-05-15 Sven Neumann <sven@gimp.org>
* app/core/gimpdocuments.c: misc small changes.
* app/core/gimpparasite.[ch]: reduced to a small set of wrappers
around gimp->parasites.
* app/core/gimpparasitelist.c: moved the code that reads and
writes parasite lists ala parasiterc to this file. Added a
GimpConfigInterface to GimpParasiteList.
* app/core/gimp.c: changed accordingly.
2002-05-14 Sven Neumann <sven@gimp.org>
* app/core/core-types.h
* app/core/gimpdocuments.[ch]: made the list of recently used
images an object derived from GimpList that implements the
GimpConfigInterface.
* app/core/gimp.c
* app/file/file-open.c
* app/file/file-save.c: changed accordingly.
2002-05-13 Sven Neumann <sven@gimp.org>
* app/config/gimpconfig.c (gimp_config_serialize): serialize to a
temporary file and rename it to the target filename when it is
completely written.
2002-05-13 Michael Natterer <mitch@gimp.org>
* app/core/gimpparasite.c: parse parasiterc using GScanner instead
of gimprc.
* app/gimprc.c: removed the parasite parsing stuff.
2002-05-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimpenummenu.[ch]: added _with_range variants for all
enum menu widgets that limit the range of choices.
* app/gui/file-new-dialog.c
* app/gui/layers-commands.c
* app/gui/preferences-dialog.c: use GimpEnumMenus with ranges.
2002-05-13 Sven Neumann <sven@gimp.org>
* app/core/core-enums.[ch]: uhh, skipping values used in the PDB
was a bad idea. Removed the skip trigraphs again. This breaks the
GUI; will fix it later.
* tools/pdbgen/enums.pl: regenerated.
2002-05-13 Sven Neumann <sven@gimp.org>
* app/core/core-enums.[ch]: registered GimpFillType enum and added
translatable names to GimpImageBaseType.
* app/core/gimp.[ch]
* app/core/gimpedit.c
* app/core/gimpimage-new.[ch]: removed gimp_image_new_[init|exit]()
where we used to create names for the enums mentioned above. Dropped
gimp_image_new_set_have_current_cut_buffer() in favor of accessing
the value directly.
* app/gui/file-new-dialog.c (file_new_dialog_create)
* app/gui/layers-commands.c (layers_new_layer_query): use
GimpEnumMenus to choose the base_type and fill_type.
2002-05-13 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.c commented out a warning in
initial_sub_region and a g_error() in combine_sub_region which
didn't expect to get chunks of pixels with a width of > 128
passed. I guess it was an assertion to ensure the integrity of
some higher level code (see gimpdisplay.c:
gimp_display_idlerenderer_callback()). The assertion went off
whenever we wanted to render a preview with a width of > 128,
which is however handled absolutely correctly by the two
functions. (fixes#26072)
* app/core/gimpcontext.c (gimp_context_get_by_type): unref objects
before returning them. Fixes our biggest memleak (whole images).
* app/display/gimpdisplay-handlers.c: commented out debugging
g_print()s which track the image's refcount.
2002-05-13 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: set the view's display to NULL
in "destroy". Fixes crash on closing the navigation dialog.
* app/gui/dialogs-constructors.c
* app/gui/menus.c: use GIMP_STOCK_NAVIGATION instead of
GIMP_STOCK_TOOL_MOVE. Use the new GIMP_STOCK_WARNING (see below)
for the error console.
* themes/Default/images/*.png
* themes/Default/images/tools/*.png: renamed all stock icons to
have the pixel size instead of "button" or "menu" in the name.
(e.g. stock-menu-scale.png -> stock-scale-16.png).
* libgimpwidgets/gimpstock.[ch]
* themes/Default/gtkrc
* themes/Default/imagerc
* themes/Default/images/Makefile.am: changed accordingly.
2002-05-11 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: connect to size allocations of
the navigation preview's parent container and resize it so it
takes all available space.
* app/widgets/gimppreview.[ch]: replaced magic values by public
#defines of GIMP_PREVIEW_MAX_SIZE and GIMP_PREVIEW_MAX_POPUP_SIZE.
Increased the maximum preview size to 1024. Don't call the virtual
get_size() function if preview->viewable is NULL but call
gimp_preview_real_get_size() directly.
* app/widgets/gimpbufferpreview.c
* app/widgets/gimpcomponentlistitem.c
* app/widgets/gimpcontainermenu.c
* app/widgets/gimpdrawablepreview.c
* app/widgets/gimpimagepreview.c
* app/widgets/gimplistitem.c
* app/widgets/gimpmenuitem.c
* app/widgets/gimpnavigationpreview.c: replaced magic values by
the new costants.
2002-05-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolormapeditor.c: Added a comment to explain why
the "correct" size calculation is commented out and put back the
old buffer size so we don't crash. Made the code robust against
whether we render only the color cells or the whole widget's
allocation->width.
* app/widgets/gimpdialogfactory.c: Don't try to #define DEBUG(...)
but wrap the whole g_print(...) statement in a debugging macro.
2002-05-11 Sven Neumann <sven@gimp.org>
* libgimp/stdplugins-intl.h
* plug-ins/script-fu/script-fu-intl.h: use the new function
gimp_locale_directory() instead of LOCALEDIR.
* app/Makefile.am
* plug-ins/*/Makefile.am: removed LOCALEDIR definition.
2001-05-11 Hans Breuer <hans@breuer.org>
* app/makefile.msc : add appconfig.lib. Statically
link libgimptool/gimptool.lib.
* app/main.c : use gimp_locale_directory()
* app/config/gimpconfig-utils.c : <string.h>
* app/config/makefile.msc : add gimpscanner
* app/core/gimpimagefile.c : some G_OS_WIN32 mess to get
mkdir() and chmod()
* app/display/gimpdisplayshell.c
app/plug-in/plug-in-progrss.c
app/tool/gimpcolorpickertool.c
app/tool/gimpcroptool.c
app/tool/gimpmeasuretool.c
app/tool/gimpperspectivetool.c
app/tool/gimprotatetool.c
app/tool/gimpscaletool.c
app/tool/gimpsheartool.c
app/tool/gimptransformtool.c
app/widgets/gimpcolormapeditor.c
app/widgets/gimpcolorpanel.c
app/widgets/gimptoolbox-color-area.c
add #ifdef __GNUC__ to avoid breaking on non standard
pragma #warning
* app/tools/makefile.msc : add gimptoolcontrol remove
tools-enum
* app/tools/tool_manager.c : need to include
libgimptool/gimptoolcontrol.h after core includes
otherwise we would compile without prototypes or
break miserably
* app/gui/plug-in-menus.c : replace LOCALEDIR with
gimp_locale_directory ()
* app/gui/preferences-dialog.c (prefs_notebook_append_page) :
only try to gdk_pixbuf_new_from_file() with a valid filename.
It should simply return NULL otherwise, but fails if the
filename is an empty string.
* app/paint-funcs/makefile.msc : add -FImsvc_recommended_pragmas.h
* app/widgets/gimpcolormapeditor.c : the 'row'
allocated needs to be 'xn * cellsize * 2' (to avoid
accessing unowned memory) not only width, which has
become allocation.width by someone commenting out
the correct size calculation
* app/widgets/gimpdialogfactory.c : varargs to macros
are GCCism or at least non standard. #define DEBUG
to g_print or nothing - without arguments - does fix
it somewhat dirty as the compiler needs to tolerate
the '(blah, foo, bar);' statement than
* app/widgets/makefile.msc : updated
* app/xcf/makefile.msc : add -FImsvc_recommended_pragmas.h
* etc/gimprc.win32 : use ';' to separate theme-path
* libgimpbase/gimpenv.c : #include <stdio.h>
for sprintf()
* app/widgets/gimpdnd.c (gimp_dnd_set_file_data) :
the passed in vals chunk is not always null-terminated
(at least not on win32). Use the length parameter too
to avoid reading junk filenames.
* libgimp/gimp.def : export gimp_image_get_name()
* libgimpbase/gimpbase.def : export gimp_locale_directory()
* libgimpbase/gimpenv.[ch] : added gimp_locale_directory ()
* libgimpbase/makefile.msc : define DATADIR and SYSCONFDIR
to empty string to let gimp find its files in the common
place (win32: relative to the top level gimp dir)
* plug-ins/common/pixelize.c : <string.h>
* plug-ins/flame/cmap.c : #include <glib.h> for g_random_int()
* plug-ins/makefile.msc : -FImsvc_recommended_pragams.h
and a little hack to give imagemap the prototypes it
desires without changing the lexed source
* themes/Default/images/makefile.msc : now added (see below)
* themes/Default/images/stock-button-reset.png : made it binary
2002-05-10 Michael Natterer <mitch@gimp.org>
* app/file/file-open.c (file_open_image): invalidate all layer and
channel previews after loading an image. Fixes previews containing
garbage after image loading (also fixes thumbnail generation).
2002-05-10 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/image.pdb: initialize a variable to please the
compiler.
* app/pdb/image_cmds.c: regenerated.