2003-06-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added utility function
gimp_rgb_get_gdk_color(), documented gimp_get_screen_resolution().
* app/widgets/gimppreviewrenderer.c
(gimp_preview_renderer_set_border_color)
* app/display/gimpdisplayshell-appearance.c
(gimp_display_shell_set_padding): use the new function.
2003-06-10 Sven Neumann <sven@gimp.org>
* app/gui/tools-commands.c (tools_select_cmd_callback): expects
the tool identifier as a GQuark now.
* app/gui/image-menu.c: changed accordingly. Removed code that
used to move the menu entries for the color correction tools to
the Layers menu. Added the respective menu entries by hand. Added
a menu entry for arbitrary rotations and one for Select by Color.
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorizetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimphistogramtool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimplevelstool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c: register the color correction
tools in the Tools menu.
* app/tools/gimptransformtool.c: added an initialize method and
moved most initalization code from button_press to this place.
2003-06-09 Sven Neumann <sven@gimp.org>
* app/paint/gimpsmudge.c (gimp_smudge_start): now that
blend_pixels() behaves correctly, we can simply initialize the
smudge buffer with transparent pixels.
2003-06-09 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs-generic.h (blend_pixels): weight
pixels by their alpha value. Fixes the smudge tool (bug #72879).
2003-06-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfontselection-dialog.c
(gimp_font_selection_dialog_new): pack the main table expanding,
not shrinking. Fixes bug #114656.
2003-06-06 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimptoolbox-dnd.[ch]: new files containing the
toolbox' drop callbacks. Exports gimp_toolbox_dnd_init().
* app/widgets/gimptoolbox.c: removed the callbacks and all the
"core/" includes they needed and call gimp_toolbox_dnd_init().
2003-06-06 Sven Neumann <sven@gimp.org>
* app/core/gimptoolinfo.[ch]: added "in_toolbox"; defaults to TRUE.
* app/tools/tool_manager.c: set "in_toolbox" to FALSE for tools
derived from GimpImageTool.
* app/widgets/gimptoolbox.c: respect the new flag when constructing
the toolbox.
2003-06-06 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/message.pdb: UTF-8 validate messages before
passing them to g_message().
* app/pdb/message_cmds.c
* libgimp/gimpmessage_pdb.c: regenerated.
2003-06-06 Michael Natterer <mitch@gimp.org>
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: moved the convenience items which
create new docks from the "Dialogs/" level to a new
"Dialogs/Create New Dock/" sub-menu. Fixes bug #111278.
* app/gui/dialogs-commands.[ch] (dialogs_create_data_cmd_callback):
new convenience constructor callback. Factored out duplicated
code to the new dialogs_create_dock() utility function.
2003-06-06 Michael Natterer <mitch@gimp.org>
* app/gui/image-menu.c: added CW/CCW to the "Rotate" menu entries
as suggested in bug #57797. Cleaned up image_menu_update().
2003-06-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemfactory.c (gimp_item_factory_set_label):
use gtk_label_set_text_with_mnemonic() instead of just
gtk_label_set_text().
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: added mnemonics for all sub-menus.
Fixes bug #106991.
* app/gui/image-menu.c: cleaned up the "Layers" menu: moved
sub-menus together. Changed the "Stack" menu's labels and
accelerators and added "Select Top/Bottom Layer" for consistency
(bound to Home/End).
* app/gui/layers-commands.[ch]: changed accordingly. Added the
new select top/bottom callbacks.
2003-06-05 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable.c (gimp_drawable_get_color_at):
* app/core/gimpimage-projection.c (gimp_image_projection_get_color_at):
use OPAQUE_OPACITY instead of 255.
* app/core/gimpimage-pick-color.[ch]: factored out code that
averages over colors so it can be used from GimpImageTool.
* app/tools/gimpimagemaptool.[ch]: derived from GimpColorTool and
added a GimpColorTool::pick implementation.
* app/tools/gimpcoloroptions.c
* app/tools/gimpcolorpickeroptions.c: add the toggle for
"sample_merged" in gimp_color_picker_options_gui().
* app/tools/gimpcolortool.c (gimp_color_tool_cursor_update): check
if the cursor is over the active drawable or if "sample_merged" is
active.
* app/tools/gimplevelstool.c: simplified since all color-picking is
now handled by the parent classes. Fixes bug #112668.
2003-06-05 Sven Neumann <sven@gimp.org>
* app/tools/gimpcoloroptions.c: changed the default radius.
* app/tools/gimpcolortool.[ch]: pass GimpColorOptions to
gimp_color_tool_enable(). Added gimp_color_tool_disable() and
gimp_color_tool_is_enabled().
* app/tools/gimpcolorpickertool.c: changed accordingly.
* app/tools/gimppainttool.[ch]: derived GimpPaintTool from
GimpColorTool and removed most color picking code.
* app/tools/gimpdodgeburntool.c (gimp_dodgeburn_tool_modifier_key)
* app/tools/gimperasertool.c (gimp_eraser_tool_modifier_key):
chain up to the parent class.
* app/tools/gimppaintbrushtool.c: purely cosmetic change.
2003-06-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c (gimp_channel_bounds): always return
channel->x1,y1,x2,y2, *not* tx1,ty1,tx2,ty2 since the latter
contain bogus values if the mask is empty. Fixes bug #114419.
* plug-ins/script-fu/scripts/unsharp-mask.scm: cleaned up
while searching the bug.
2003-06-04 Sven Neumann <sven@gimp.org>
* app/core/gimpmarshal.list: added VOID: ENUM, BOXED, INT.
* app/tools/gimpcolortool.[ch]: added a default implementation for
GimpColorTool::pick. Emit a "picked" signal when a color was
successfully picked.
* app/tools/gimpcolorpickertool.c: simplified a lot since
GimpColorTool does most of the work for us now.
2003-06-04 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): undraw the cursor on
GDK_PROXIMITY_OUT. Always set shell->proximity to FALSE *before*
calling gimp_display_shell_update_cursor().
2003-06-04 Sven Neumann <sven@gimp.org>
* app/tools/Makefile.am
* app/tools/gimpcoloroptions.[ch]
* app/tools/gimpcolortool.[ch]: new files that implement base
classes moved out of GimpColorPickerOptions and GimpColorPickerTool.
* app/tools/gimpcolorpickeroptions.[ch]
* app/tools/gimpcolorpickertool.[ch]: derive from the new obejcts.
* app/tools/gimpimagemaptool.h
* app/tools/gimppainttool.c
* app/tools/tools-types.h: moved typedefs into the types file.
2003-06-04 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_reconnect):
call gimp_display_shell_scale_setup() instead of
gimp_display_shell_shrink_wrap() so window size, zoom factor and
scroll offsets are preserved across File->Revert if possible.
Fixes bug #114383.
2003-06-03 Sven Neumann <sven@gimp.org>
* app/text/gimptext-compat.c (text_get_extents): need to get
ascent and descent from a PangoLayoutLine. Report negative descent
so the function behaves like it used to in 1.2.
2003-06-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-rotate.c (gimp_image_rotate_item_offset):
fixed offset calculation for 90 and 270 degree rotations.
* app/core/gimpimage-flip.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c: increase the progress also when
transforming the selection. Makes the progress appear more
continuous. Also clened up and simplified the progress code
in all files.
* app/core/gimpimage-resize.[ch]: added a progress like in the
files above.
* app/gui/image-commands.c (image_resize_callback): changed
accordingly.
(image_scale_implement): clened up and simplified a lot.
* tools/pdbgen/pdb/image.pdb: changed accordingly.
* app/pdb/image_cmds.c: regenerated.
2003-06-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpvectorstreeview.h
* app/widgets/widgets-types.h: moved function definitions to the
widgets-types header file.
* app/gui/dialogs-constructors.c
* app/widgets/gimpselectioneditor.[ch]: added a "Selection to
Path" button as suggested in bug #112448.
2003-06-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c (gimp_channel_scale, resize): make sure
channels end up at (0, 0) after scaling and resizing.
Fixes bug #114213.
2003-06-02 Michael Natterer <mitch@gimp.org>
Implemented DISSOLVE_MODE the way it should have always been.
Fixes bug #107402.
* app/paint-funcs-generic.h (struct apply_layer_mode_struct): added
"guchar *mask" so it can be used by the layer mode.
(dissolve_pixels): take an additional "mask" parameter and
dissolve the pixels according to the *combined* opacity of the
pixel's alpha, the opacity and the mask. Removed a wrong comment
about why we call g_rand_int() x times before we start to use its
values.
(layer_dissolve_mode): pass the mask to dissolve_pixels(). No need
to call add_alpha_pixels() since we overwrite the dest buffer
entirely in disolve_pixels().
* app/paint-funcs.c (initial_sub_region, combine_sub_region):
allocate the buffer large enough for DISSOLVE (which always needs
an alpha channel). Pass the mask to the layer mode functions.
Discard opacity and mask after applying DISSOLVE since it
"consumes" all transparency.
2003-05-31 Tor Lillqvist <tml@iki.fi>
* app/gimp.sym: Remove. No gimp library uses symbols from the
gimp executable any longer, says Mitch.
* app/Makefile.am: Remove related stuff from here, too.
2003-05-31 Michael Natterer <mitch@gimp.org>
* app/tools/tools-enums.[ch]: added enum GimpTransformType which
can be one of { LAYER, SELECTION, PATH }
* app/tools/gimptransformoptions.[ch]: added a GimpTransformType
property to GimpTransformOptions. Added a GUI for the new
option.
* app/tools/gimpflipoptions.[ch]: derive it from
GimpTransformOptions and add the GUI here, too.
* app/tools/gimpfliptool.c
* app/tools/gimptransformtool.[ch]: added support for transforming
the selection. Added framework for transforming paths (still
unimplemented).
* app/tools/gimpselectionoptions.c: small cleanup.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/stock-path-16.png
* themes/Default/images/stock-path-22.png
* themes/Default/images/stock-selection-16.png: new icons for the
new transform options buttons. Simply copied existing ones...
2003-05-30 Tor Lillqvist <tml@iki.fi>
* configure.in: As gimp uses fontconfig directly, check for it.
* app/Makefile.am: And link with it.
* app/gimp.sym: Remove dead symbols.
* libgimp/gimp.def
* libgimpwidgets/gimpwidgets.def: Move gimp_standard_help_func.
* plug-ins/xjt/xjt.c: Use _mkdir() on Win32.
2003-05-30 Sven Neumann <sven@gimp.org>
* app/tools/gimpeditselectiontool.c
(gimp_edit_selection_tool_button_release): don't stop the active
tool, the tool manager did this already when the edit-selection
tool was pushed.
2003-05-29 Michael Natterer <mitch@gimp.org>
* app/main.c (main): removed the calls to g_log_set_handler().
* app/app_procs.[ch] (app_init): added the g_log_set_handler()
calls and pass them the global Gimp instance as user_data.
Renamed app_gui_init() to app_gui_libs_init().
* app/errors.c: use the passed Gimp pointer instead of using
"the_gimp". Don't #include "app_procs.h".
* app/gui/gui.[ch]: removed gui_get_screen_resolution().
* app/widgets/gimpwidgets-utils.[ch]: added
gimp_get_screen_resolution().
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell.c
* app/gui/preferences-dialog.c
* app/gui/user-install-dialog.c: changed accordingly.
* app/display/gimpdisplayshell.c: don't #include "gui/gui.h".
2003-05-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): remove
main_column->editable_widget on each button_press_event. Should
fix more (if not all) stale editing widgets.
2003-05-28 Sven Neumann <sven@gimp.org>
* app/app_procs.[ch]: wrap gui_libs_init() so we don't need to
include gui.h from main.c
* app/main.c: changed accordingly.
* app/gui/gui.[ch]: added a GdkScreen parameter to
gui_get_screen_resolution(). Use NULL if you want the default
screen.
* app/gui/preferences-dialog.c
* app/gui/user-install-dialog.c: changed accordingly.
* app/display/gimpdisplayshell-scale.c: use the monitor resolution
stored in the GimpDisplayShell object.
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell.c: get the monitor resolution for
the widget's GdkScreen. Set it in the realize method so it gets
changed when the image window is migrated to another screen.
2003-05-28 Michael Natterer <mitch@gimp.org>
* app/gui/image-menu.c
* app/gui/palette-editor-menu.c
* app/gui/view-commands.[ch]
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.[ch]: changed all places to show
zoom menu items and icons in ZOOM_OUT, ZOOM_IN order. In an attack
of consistency, also reordered all callbacks accordingly.
2003-05-28 Michael Natterer <mitch@gimp.org>
* app/display/gimpnavigationview.c: don't let the navigation
_popup_ auto-resize itself and don't allocate a minimum size
bacause that makes sense for the navigation _tab_ only. Fixes
popup size and positioning.
2003-05-27 Sven Neumann <sven@gimp.org>
* app/gui/vectors-commands.c (vectors_selection_to_vectors): don't
mark a string for translation which should never be used.
2003-05-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimpfreeselecttool.[ch]
* app/tools/gimprectselecttool.[ch]: added the possibility to
<alt>+drag the whole selection preview line *while* creating the
selection. Used a modified version of
http://aeropc5.hut.fi/~mjkorhon/gimp-move-selection.patch (found
in the mailing list archives). Fixes bug #87688.
2003-05-27 Michael Natterer <mitch@gimp.org>
* app/gui/select-commands.c (select_save_cmd_callback): switch
to the "Channels" tab after adding the new channel.
Fixes bug #101970.
2003-05-26 Michael Natterer <mitch@gimp.org>
* app/base/tile-manager-private.h: added "gint ref_count" to the
TileManager struct.
* app/base/tile-manager.[ch]: replaced tile_manager_destroy()
by tile_manager_ref() and tile_manager_unref().
* app/core/gimpimage-undo-push.c: ref the tile managers stored in
the undo system and DON'T destroy them if no undo could be pushed.
Should fix the remaining crashes with undo disabled like in
bug #9350.
(!!!) Note that the tiles passed to gimp_image_undo_push_image()
and gimp_drawable_push_undo() as well as the tile managers of
drawables passed to gimp_image_undo_push_[layer|channel]_mod()
must be unref'ed by the caller now.
* app/core/gimpdrawable-transform.c (gimp_drawable_transform_paste):
don't take ownership of the passed tiles but ref them if needed.
(!!!) Callers must unref the passed tiles themselves now.
* app/core/gimpbuffer.c
* app/core/gimpdrawable-blend.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable-offset.c
* app/core/gimpdrawable.c
* app/core/gimpedit.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-mask.c
* app/core/gimpimage-projection.c
* app/core/gimpimage.c
* app/core/gimpimagemap.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayer.c
* app/paint/gimppaintcore.c
* app/text/gimptextlayer.c
* app/tools/gimpinktool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimptransformtool-undo.c
* app/tools/gimptransformtool.c: changed accordingly.
2003-05-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteeditor.[ch]
* app/gui/palette-editor-commands.[ch]
* app/gui/palette-editor-menu.c: started to clean up the palette
editor: added buttons for all menu items and menu items for all
buttons. Improved selected palette entry handling. Moved all code
to gimppaletteeditor.c and call it from the menu callbacks. Lots
of cleanup (unfinished).
2003-05-26 Pedro Gimeno <pggimeno@wanadoo.es>
* app/tools/gimpeditselectiontool.c (selection_transform_segs):
Fix off-by-one when dragging the selection. Fixes the last pending
issue of bug #17904. Use temporary variables for clamp values.
* app/display/gimpdisplayshell-selection.c
(selection_transform_segs): Perform the clamping that fixes
bug #110014 here instead of in the callers. Solves a rare case
that was not properly handled before.
(selection_render_points, selection_generate_segs): Remove the
clamping code from here.
* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_rectangle): More
clampings to avoid overflow of 16-bit coordinates.
2003-05-25 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimphelpui.[ch] (_gimp_help_init): changed again
to take no paramaters and use _gimp_standard_help_func from
gimpwidgets-private.
* libgimpwidgets/gimpwidgets-private.[ch]: removed the palette
functions from GimpWidgetVTable. Instead, pass them as
GimpGetColorFunc to gimp_widgets_init() and make them available as
_gimp_get_foreground_func and _gimp_get_background_func.
* libgimpwidgets/gimpcolorbutton.c
* libgimp/gimpui.c: changed accordingly.
* app/libgimp_glue.[ch]: removed the palette functions.
* app/gui/gui.c: added gui_get_foreground_func() and
gui_get_background_func() and pass them to gimp_widgets_init().
2003-05-25 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimphelpui.[ch]: added a GimpHelpFunc parameter to
_gimp_help_init(). Implement gimp_standard_help_func() here and
use the function pointer passed to _gimp_help_init().
* libgimpwidgets/gimpwidgets-private.[ch]: removed
standard_help_func from GimpWidgetsVTable. Require it as paramater
to gimp_widgets_init() and pass it to _gimp_help_init().
* libgimpwidgets/gimpunitmenu.c: use gimp_standard_help_func
directly again.
* app/libgimp_glue.[ch]: removed gimp_standard_help_func().
* libgimp/Makefile.am
* libgimp/gimphelp.c: removed this file (containing
gimp_standard_help_func()).
* app/gui/gui.c: added private gimp_help_func() and pass it to
gimp_widgets_init().
* libgimp/gimpui.c: added private gimp_ui_help_func() and pass it
to gimp_widgets_init().
2003-05-24 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-rotate.c (gimp_image_rotate): fixed offset of
layers and vectors after rotation (bug #113611).
2003-05-23 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets-private.[ch]: new files. Moved
gimp_widgets_init() here and added a vtable parameter. The vtable
has entries for all the symbols that are either provided by libgimp
or gimp itself depending on who is using the library.
* libgimpwidgets/libgimp-glue.c: removed this file that uses to
provide a Win32 only hack that is now not needed any longer.
* libgimpwidgets/gimpcolorbutton.c
* libgimpwidgets/gimphelpui.c
* libgimpwidgets/gimpsizeentry.c
* libgimpwidgets/gimpunitmenu.c
* libgimpwidgets/gimpwidgets.[ch]: don't call the offending
functions directly, but use the vtable entries. This is ugly but
the ugliness is restricted to our code. There are plans to clean
this up further... (Fixes#113410 once more.)
* app/gui/gui.c (gui_libs_init)
* libgimp/gimpui.c (gimp_ui_init): initialize libgimpwidgets with
the proper vtable.
2003-05-23 Sven Neumann <sven@gimp.org>
* app/paint/gimppaintcore.c
* app/tools/gimppainttool.c: applied a patch from Henning Makholm
<henning@makholm.net> that improves drawing of narrow straight lines
by moving the endpoints to pixel centers. Fixes bug #84145.