2004-06-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpenumaction.[ch]
* app/widgets/gimppluginaction.[ch]
* app/widgets/gimpstringaction.[ch]: added parameters to the
gimp_*_action_selected() function so the "selected" signal can be
emitted with value != action->value. Changed GtkAction::activate()
implementations accordingly (pass action->value).
* app/widgets/gimpcontrollers.c: call gimp_enum_action_selected()
and pass the value of the GimpControllerEventValue instead of
temporarily replacing action->value and calling
gtk_action_activate().
* app/widgets/gimpcontrollerinfo.c: fixed debugging output.
2004-06-23 Michael Natterer <mitch@gimp.org>
* app/paint/gimpbrushcore.[ch]: added signal "set-brush" which is
G_SIGNAL_RUN_LAST so we can connect before and after the default
implementation. Moved the brush setting and outline invalidation
stuff to its default implementation. Also remember the outline's
width and height. Call gimp_brush_core_set_brush() from
gimp_brush_core_invalidate_cache() so "set-brush" is emitted
whenever a generated brush becomes dirty.
* app/tools/gimppainttool.c (gimp_paint_tool_button_press): don't
pause/resume but rather stop/start the draw_tool. Fixes straight
line preview aretefacts.
(gimp_paint_tool_oper_update): set the brush_core's brush before
starting the draw_tool.
(gimp_paint_tool_draw): never free the brush_core's cached brush
outline because the brush_core does that by itself now.
(gimp_paint_tool_set_brush)
(gimp_paint_tool_set_brush_after): new callbacks which pause and
resume the draw_tool. Fixes brush outline artefacts when modifying
the current brush e.g. by using the mouse wheel.
2004-06-22 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-regression.c: define timersub()
macro in case it's undefined. Patch by Tim Mooney, fixes 'make
check' on Tru64 (bug #144780).
2004-06-22 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpcurvestool.c: added Store/Recall buttons for
one-click saving and loading of curves. Should create stock
labels for them. Hopefully resolves bug #75558.
2004-06-22 Michael Natterer <mitch@gimp.org>
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: added actions & callbacks to
configure the canvas padding color.
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: added the actions' help IDs and menu entries.
* app/display/display-enums.h: added /*< skip >*/'ed enum value
GIMP_CANVAS_PADDING_MODE_RESET.
* app/display/gimpdisplayshell-appearance.c
* app/display/gimpdisplayshell-callbacks.[ch]
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell.[ch]: removed the canvas padding
button and its popup menu (fixes bug #142996). Instead, added a
toggle button which allows to zoom the image when the window is
resized (as known from sodipodi, except it doesn't work as nice
yet :-) improvements to the algorithm are welcome).
Cleaned up the GimpDisplayShell struct a bit and renamed some
of its members.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/stock-zoom-follow-window-12.png: added new
icon for the new display toggle button.
2004-06-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimpclonetool.c (gimp_clone_tool_draw): chain up
unconditionally now that we draw the brush outline while
painting. Fixes brush outline artefacts on button_press and
button_release. Spotted by sjburges.
2004-06-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): unset
the filename if the image is unnamed.
* configure.in
* app/sanity.c: depend on gtk+ >= 2.4.1.
* app/widgets/gimpthumbbox.[ch]: changed gimp_thumb_box_set_uris()
to gimp_thumb_box_take_uris() since the function takes ownership
of the list,
* app/widgets/gimpfiledialog.c: changed accordingly. Removed code
that worked around a problem in gtk+ < 2.4.1.
2004-06-22 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/fileops.pdb: app/pdb/fileops_cmds.c is a
generated file, need to do the documentation change here.
* app/pdb/fileops_cmds.c
* libgimp/gimpfileops_pdb.c: regenerated.
2004-06-21 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-enums.[ch] (enum GimpCursorFormat): removed
value GIMP_CURSOR_FORMAT_PIXBUF_PREMULTIPLY because it's the job
of GDK to do that (it was GDK that was broken, not some of the X
servers).
* app/widgets/gimpcursor.c (gimp_cursor_new): premultiply the
cursor's pixels for GTK+ < 2.4.4.
2004-06-21 Sven Neumann <sven@gimp.org>
* app/gui/gui.c (gui_exit_callback): improved message in quit
dialog just in case that we don't manage to redo this dialog
before 2.2.
2004-06-21 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.[ch]
* libgimpwidgets/gimpwidgets.def: added new utility function
gimp_label_set_attributes().
* app/display/gimpdisplayshell.c
* app/gui/preferences-dialog.c
* app/gui/resolution-calibrate-dialog.c
* app/widgets/gimpviewabledialog.c
* app/widgets/gimpwidgets-utils.c: use the new function.
* app/widgets/gimpcontainergridview.c
* app/widgets/gimphistogrameditor.c: display the name in italic.
* plug-ins/common/jpeg.c: display the file size in italic.
2004-06-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrambox.[ch]: removed the label between the
spinbuttons, it looks silly. Converted tabs to spaces, removed
trailing whitespace.
* app/widgets/gimphistogrameditor.c
* app/tools/gimpthresholdtool.c: changed accordingly.
* app/widgets/gimphistogrambox.[ch]:
* app/tools/gimpthresholdtool.c: Changed the threshold tool dialog
so that it uses a two-triangle-slider scale of the sort used in the
levels tool. Almost all of the changes are actually in the
histogram-box widget code, which is only used by the threshold
tool. Fixes bug #137521.
2004-06-20 Philip Lafleur <plafleur@cvs.gnome.org>
* app/display/gimpdisplayshell-scale.[ch]:
* app/display/gimpnavigationview.[ch]:
* app/actions/view-actions.c:
* app/actions/view-commands.[ch]:
* app/widgets/gimphelp-ids.h:
* menus/image-menu.xml.in: Changed "Zoom to Fit Window" command
to "Fit Image in Window" and added another command, "Fit Image
to Window", that zooms according to the opposite dimension. Fixes
bug #144597.
2004-06-19 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/tools/gimpscaletool.c: fixed my fix for bug # 68106, which
worked incorrectly for two of the control points.
2004-06-19 Sven Neumann <sven@gimp.org>
Applied a patch from Geert Jordaens that implements the
GtkStatusbar functionality in GimpStatusbar so that we can redo it
in order to fix bug #120175:
* app/core/gimpmarshal.list: added VOID: UINT, STRING.
* app/display/gimpstatusbar.[ch]: copied GtkStatusbar code.
* app/display/gimpdisplayshell.c: changed accordingly.
2004-06-19 Sven Neumann <sven@gimp.org>
* app/vectors/gimpbezierstroke.c (arcto_ellipsesegment): moved
array initialization out of variable declaration (bug #144632).
2004-06-19 Sven Neumann <sven@gimp.org>
* app/vectors/gimpbezierstroke.c (arcto_ellipsesegment): use
G_SQRT2 to make circlemagic a constant value so we can initialize
the array on declaration. Fixes bug #144632.
2004-06-19 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollers.c (gimp_controllers_event_mapped):
start supporting GIMP_CONTROLLER_EVENT_VALUE of type gdouble.
Assume the double value is in a [0.0..1.0] range and temporarily
change the value of the called GimpEnumAction to a range of
[0..1000] when invoking it. All still very hackish...
2004-06-18 Michael Natterer <mitch@gimp.org>
* app/actions/context-actions.c
* app/actions/context-commands.[ch]: added tons of new actions to
modify the current FG/BG color's RGB components.
Added new enum value GIMP_CONTEXT_SELECT_SET which allows to set
values, not only increase/decrease them.
Changed context_select_value() utility function to interpret
GimpEnumAction::value being >= GIMP_CONTEXT_SELECT_SET as settings
in a range from 0 to 1000. Yes, that's a hack...
2004-06-18 Philip Lafleur <plafleur@cvs.gnome.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_bounds):
If transforming a path, use the path bounds rather than the mask
bounds. Fixes bug #144570.
2004-06-17 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch]: added gimp_boolean_handled_accum().
* app/core/gimp.c
* app/widgets/gimpcontrollerinfo.c: use it.
2004-06-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontainer.c (gimp_container_deserialize): add newly
created children to the container *after* deserializing them so
GimpContainer::add() callbacks get the already deserialized
object.
* app/widgets/gimpcontrollers.c: connect to "add" and "remove" of
the controller list and remember / clear the wheel controller when
it appears / disappears.
2004-06-17 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: removed "enabled"
property. Removed GIMP_CONTROLLER_PARAM_RERIALIZE from the "name"
property because it's the hardware-determined name of this
controller instance.
* app/widgets/gimpcontrollerwheel.c
* modules/controller_linux_input.c: set the name.
* libgimpwidgets/gimpwidgets.h: #include gimpcontroller.h.
* app/widgets/gimpcontrollerinfo.[ch]: added "enabled" here
instead. Don't dispatch events if the controller is
disabled. Made everything work (not crash) with info->mapping
being NULL.
* etc/controllerrc: updated again with the changed format.
* app/widgets/gimpcontrollers.[ch]: added
gimp_controllers_get_list() which returns the container of
controllers.
* app/widgets/gimphelp-ids.h
* app/gui/preferences-dialog.c: added controller configuration
(can't change anything yet, just view the current settings).
Resurrected the "Input Devices" page and removed the "Session"
page by moving its widgets to other pages. Pack the various
"Save now"/"Clear now" buttons vertically, not horizontally.
Fixes bug #139069.
* themes/Default/images/preferences/Makefile.am
* themes/Default/images/preferences/controllers.png
* themes/Default/images/preferences/theme.png: new icons for new
prefs pages. Someone needs to make them nice...
2004-06-17 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c: GtkUIManager makes the menu bar
visible by default, hide it if options->show_menubar is FALSE.
Fixes bug #143243.
2004-06-17 Philip Lafleur <plafleur@cvs.gnome.org>
* app/core/gimpdrawable-transform.c (gimp_drawable_transform_tiles_affine):
Make transforms (most notably perspective transforms) conform exactly
to specified edges. Includes a patch by David Gowers. Fixes bug #144352.
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added #define
GIMP_CONTROLLER_PARAM_SERIALIZE. Made all properties serializable.
* modules/controller_linux_input.c: made "device-name"
serializable.
* app/config/gimpconfig-params.h: added macro
GIMP_CONFIG_INSTALL_PROP_POINTER() which needs to be handled
by custom (de)serialize_property() implementations.
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: made object (de)serialization
work for object properties which are *not* GIMP_PARAM_AGGREGATE.
Write/parse the exact type of the object to create to enable this.
* app/core/gimpmarshal.list: new marshaller for GimpControllerInfo.
* app/widgets/gimpcontrollerinfo.[ch]: implement GimpConfigInterface
and add "controller" and "mapping" properties. Add "event-mapped"
signal which carries the action_name.
* app/widgets/gimpcontrollers.c: removed all deserialization code
and simply (de)serialize the controller container. Install a
container handler for "event-mapped" and do the action_name ->
action mapping in the callback.
* etc/controllerrc: regenerated with new syntax. Delete your old one!
2004-06-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollerwheel.c
(gimp_controller_wheel_get_event_name): don't use gettext() here.
* modules/controller_linux_input.c: added more button events, set
the device name, some cleanup.
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added
GimpController::get_event_blurb() which returns the strings that
were returned by get_event_name(). The latter returns
untranslatable event identifiers now.
* app/widgets/gimpcontrollerwheel.c
* modules/controller_linux_input.c: changed accordingly.
* app/widgets/gimpcontrollerinfo.c
* app/widgets/gimpcontrollers.c: changed the event mapping from
event-id -> action-name to event-name -> action-name.
* etc/controllerrc: changed accordingly (finally readable now).
2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerinfo.[ch]: made an object out of
the GimpControllerInfo struct.
* app/widgets/gimpcontrollers.c: changed accordingly.
2004-06-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollers.c: bug fix.
* configure.in: check for linux/input.h.
* modules/Makefile.am
* modules/controller_linux_input.c: added a prototype controller
module using the linux input event interface.
* etc/controllerrc: added example config for linux input device.
2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollers.c: load the controller's
properties from the controllerrc file.
* etc/controllerrc: set the wheel's properties.
2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollers.c: ref the actions when putting
them in the mapping table.
* app/actions/context-actions.c: added actions to change the
opacity in 10% steps.
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added a "name" property.
Dispatch events only if the controller is enabled.
* app/widgets/gimpcontrollerwheel.c: added controller events for
all possible modifier combinations.
* etc/Makefile.am
* etc/controllerrc: default controllerrc which maps all unused
wheel+modifier combinations to more-or-less usefull stuff.
2004-06-16 Michael Natterer <mitch@gimp.org>
Started to fix bug #106920 in a more genreral way:
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpwidgetsmarshal.list
* libgimpwidgets/gimpcontroller.[ch]: new abstract base class
which provides an API for pluggable input controller modules
(mouse wheel, usb/midi stuff etc.).
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerwheel.[ch]: subclass of the above
which maps wheel mouse scroll events to controller events.
* app/widgets/gimpcontrollers.[ch]: manager for controllers.
reads $(gimpdir)/controllerrc and keeps a mapping of controller
events to GtkActions.
* app/gui/gui.c: initialize and shut down the controller stuff.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): if a wheel controller
exists, dispatch GdkEventScroll to it first and return if it was
handled.
2004-06-15 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/text_tool.pdb: deprecate the XLFD-based API
gimp_text() and gimp_text_get_extents().
* app/pdb/text_tool_cmds.c
* libgimp/gimptexttool_pdb.[ch]: regenerated.