2006-11-22 Simon Budig <simon@gimp.org>
* app/tools/gimpvectortool.c: Enable scrolling while dragging
the nodes of a path. Fix warning when deleting the last node
of a stroke.
2006-11-22 Michael Natterer <mitch@gimp.org>
* app/actions/actions.c (action_select_property): add support for
G_TYPE_INT properties.
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: add actions and callback which
affect the foreground select tool's stroke-width property.
* app/tools/gimpforegroundselecttool.c: map tool-action-value-2
(tool tip size) to the new action.
* app/tools/gimppaintoptions-gui.c: fixed visibility of the brush
scale slider.
2006-11-17 Michael Natterer <mitch@gimp.org>
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]: added actions and callbacks for
the new paint options brush scale property. Assigned new
shortcuts: '<' and '>' are now changing tool-value-1 and '[' and
']' are changing tool-value-2
* app/actions/context-actions.c: removed the shortcuts from the
brush size actions.
* app/tools/gimpbrushtool.c
* app/tools/gimpcolortool.c: set tool-value-2 to brush-scale and
to color-average-radius, so '[' and ']' always affect the size of
the tip of the active tool. tool-value-1 is connected to
context-opacity so that is changeable using '<' and '>' now.
2006-11-16 Michael Natterer <mitch@gimp.org>
Made all brushes scalable from the tool options. So far only
downscaling is supported since we lack an algorithm for bitmap
brush upscaling. Addresses bug #65030.
* app/paint/gimppaintoptions.[ch]: added "brush-scale" property.
* app/paint/gimpbrushcore.[ch]: separate pressure logic from brush
scaling logic and take paint_options->brush_scale into account.
Added gimp_brush_core_create_bound_segs() which returns BoundSegs
of the correctly scaled brush mask for the brush preview on the
canvas.
* app/tools/gimpbrushtool.c: use gimp_brush_core_create_bound_segs()
instead of doing this here (also removes all knowledge about lowlevel
stuff from this file). Connect to notify::brush-scale of the
paint options and invalidate the brush core's brush accordingly.
* app/tools/gimppaintoptions-gui.c: added brush scale slider.
2006-11-15 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.[ch]
* app/tools/gimprectangleselecttool.c: removed function from the
properties. Added getter and setter functions instead. Redraw
the
tool whenever the function changes.
2006-11-13 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.c: reduced the size of the side
handles to two third the size of the corner handles.
2006-11-11 Michael Natterer <mitch@gimp.org>
* app/tools/gimpselectiontool.c
(gimp_selection_tool_modifier_key): Fix behavior so that when Alt
is down, it appears as if no other modifier was pressed.
Fixes bug #349338.
2006-11-07 Sven Neumann <sven@gimp.org>
* app/dialogs/file-save-dialog.c: undef DEBUG_SPEW again.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw):
don't draw the handles while the rectangle is being moved.
2006-11-07 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner):
improved highlighting.
(gimp_draw_tool_draw_arc_by_anchor): take width and height
arguments instead of radius_x and radius_y.
* app/tools/gimpiscissorstool.c
* app/tools/gimpvectortool.c: slightly increased handle sizes.
* app/tools/gimpmeasuretool.c: increased size of the end points.
* app/tools/gimpperspectiveclonetool.c: increased handle size.
* app/tools/gimprectangletool.c: renamed variables.
* app/tools/gimpsourcetool.c: use a single define for the target
size.
* app/tools/gimptransformtool.[ch]: increased handle size. Made
the area that can be grabbed identical to the displayed handle.
Replaced filled circle with a circle outline and a cross.
* app/tools/gimptransformtool-undo.c: follow renaming of define
in
gimptransformtool.h.
2006-11-06 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner)
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw):
highlight the handles on mouse-over.
2006-11-06 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.[ch]: let gimp_draw_tool_draw_corner()
also handle north, south, east and west corners and allow for
filled corners.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw): simplified.
2006-11-05 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.[ch]
* app/tools/gimprectangletool.c: changed the way that the
handles
are drawn. This is still work in progress.
2006-11-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.[ch]: made gimp_rectangle_tool_halt()
private. Get rid of some more local variables (use private->foo
instead). Fixed statusbar rectangle size display. Some indentation
cleanup.
2006-11-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]: moved stuff from
GimpTool::initialize() to GObject::constructor() and removed all
initialize functions entirely. initialize() only needs to be
implemented if the tool has a dialog or if initialization() can
fail. Also moved some type-checking casts after the
g_return_if_fail()s
2006-11-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangleselecttool.[ch]: cache the round-corners
and corner-radius properties in the GimpRectSelectTool struct,
connect to "notify" of GimpRectSelectOptions and update display
drawing when the options change.
* app/tools/gimpcroptool.c
* app/tools/gimprectangleoptions.c: whitespace stuff.
2006-11-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcroptool.[ch]
* app/tools/gimpellipseselecttool.c
* app/tools/gimprectangleselecttool.[ch]
* app/tools/gimprectangletool.[ch]: removed dispose() and
finalize() implementations. The finalize() ones did nothing and
dispose() was only redundantly disconnecting from signals that
were connected using connect_object() anyway. Some cosmetic
cleanups all over the place.
2006-11-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c: merged all tool options notify
callbacks into a single one and added utility function
gimp_rectangle_tool_synthesize_motion() to improve
maintainability.
2006-11-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_motion): need
to subtract the snap_x and snap_y values from the coords before
calling ourselves recursively, otherwise we run into an infinite
recursion.
2006-11-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c: pause the draw tool earlier in
motion() so we don't get artifacts when the function changes.
Fixed inside_x and inside_y usage in oper_update(). Get rid of
some local variables in draw().
2006-11-04 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c: fixed snapping. Replaced lots of
g_object_get() by simply accessing private->member. Misc small
cleanups.
2006-10-24 Michael Natterer <mitch@gimp.org>
* app/tools/gimprotatetool.c (gimp_rotate_tool_dialog): show two
decimal digits when editing "Pixels" in the "Center" size entry.
Addresses bug #363775.
2006-10-21 Michael Natterer <mitch@gimp.org>
Added "Edit -> Fade" which allows to modify the paint mode and
opacity of the last drawable operation (fill, plugins etc.).
Started from a patch by Bill Skaggs. Fixes bug #170707.
* app/base/base-enums.[ch] (enum GimpLayerModeEffects): register
the values REPLACE_MODE, ERASE_MODE and ANTI_ERASE_MODE with
the type system.
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpwidgets-constructors.[ch]: added "gboolean
with_replace_modes" to the paint mode menu constructors.
* app/tools/gimppaintoptions-gui.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimplayertreeview.c: pass with_replace_modes = FALSE.
* app/core/gimpdrawableundo.[ch]: added members which keep tiles,
paint mode and opacity of the pasted pixels.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_get_fadeable):
returns a GimpUndo suitable for a fade operation, or NULL.
* app/core/gimp-edit.[ch] (gimp_edit_fade): implements the actual
fade by undoing the last operation and then re-applying the pixels
with different paint mode and opacity.
* app/core/gimpdrawable-combine.c: store the pasted pixels in
the GimpDrawableUndo.
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]: action and callback for fade.
* app/dialogs/Makefile.am
* app/dialogs/fade-dialog.[ch]: the fade dialog.
* app/widgets/gimphelp-ids.h: the fade help ID.
* menus/image-menu.xml.in: added a menu entry in "Edit".
2006-10-19 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c
(gimp_transform_tool_button_release): call response(OK) instead of
calling doit() directly, so all transform confirmation goes
through response() now.
2006-10-19 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_draw): show
the outline of the selection while transforming it.
Fixes bug #362587.
2006-10-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added
gimp_prop_expanding_frame_new() which creates a frame with a
toggle button in the title.
* app/tools/gimpblendoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimprectangleoptions.c
* app/tools/gimprectangleselectoptions.c
* app/tools/gimpselectionoptions.c: use it instead of duplicating
this code all over the place.
2006-10-18 Michael Natterer <mitch@gimp.org>
Applied modified patch from Martin Nordholts which adds a "Rounded
Corners" option to the rectangle select tool. Fixes bug #86279.
* app/core/gimpchannel-combine.[ch]: added
gimp_channel_combine_ellipse_rect(). Use it from
gimp_channel_combine_ellipse().
* app/core/gimpchannel-select.[ch]: added
gimp_channel_select_round_rect()
* app/tools/gimprectangleselectoptions.[ch]: added properties
"round-corners" and "corner-radius" and GUI for the new propeties.
* app/tools/gimprectangleselecttool.h: added macro
GIMP_RECT_SELECT_TOOL_GET_OPTIONS().
* app/tools/gimprectangleselecttool.c (gimp_rect_select_tool_draw):
draw round corners if enabled.
(gimp_rect_select_tool_real_select): use
gimp_channel_select_round_rect() if enabled.
* app/tools/gimpselectionoptions.[ch]: added "antialias_toggle"
to the GimpSelectionOptions struct so the rect select options
can set its sensitivity.
Unrelated:
* app/tools/gimpellipseselecttool.c (gimp_ellipse_select_tool_draw):
use 360 * 64 instead of 23040.
2006-10-18 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.c (find_mnemonic_widget): special
case GimpSizeEntry and use the last entry.
* app/tools/gimprotatetool.c
* app/tools/gimpsheartool.c: added mnemonics (bug #162541).
2006-10-18 Michael Natterer <mitch@gimp.org>
Separate selection tool function (select, move, cut, ...) from
selection mode (replace, add, ...). Fixes bug #313634 (that bug
wasn't triggered any more in HEAD, but was still there).
* app/tools/tools-enums.h: renamed enum SelectOp to SelectFunction
and replaced the values REPLACE, ADD, SUBTRACT and INTERSECT by a
single value SELECT.
* app/tools/gimpselectiontool.h (struct GimpSelectionTool):
renamed member "op" to "function". Changed "SelectOps saved_op" to
"GimpChannelOps saved_operation".
* app/tools/gimpselectiontool.c: we always have the right
GimpChannelOps in the tool options, so simply use it instead of
mixing up unrelated stuff in one enum. Results is some medium-ugly
nested switches, but is generally much cleaner than before.
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpregionselecttool.c: changed accordingly. Use the
operation from the tool options instead of selection_tool->op when
making the actual selection.
2006-10-17 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangleselecttool.[ch]
* app/tools/gimpellipseselecttool.c: use enum GimpChannelOps
instead of SelectOps.
2006-10-14 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangleselecttool.c (gimp_rect_select_tool_execute):
flush the image after clearing the selection and after anchoring
a floating layer. Fixes bug #362096.
2006-10-09 Michael Natterer <mitch@gimp.org>
Added message severities and make sure all messages are routed
through a central function, so redirecting to the error console or
stderr work again:
* app/core/core-enums.[ch]: added enum GimpMessageSeverity { INFO,
WARNING, ERROR }.
* app/core/gimp.[ch] (gimp_message)
(gimp_message_valist): added severity parameter. Changed
"GimpProgress *progress" parameter to "GObject *handler", where
"handler" can be either a GimpProgress, a GtkWidget or NULL.
* app/core/gimp-gui.[ch] (gimp_show_message): ditto. Honor
--console-messages again. Always dispatch to the GUI message
handler first if it exists.
* app/gui/gui-message.[ch]: pass severity parameters around.
(gui_message_error_dialog): if "handler" is a progress, dispatch
the message to it first. If it is a widget (and *not* a progress),
use a GtkMessageDialog on top of that widget's toplevel. Fall
back to the usual GimpErrorDialog otherwise.
* app/core/gimpprogress.[ch] (gimp_progress_message): added
severity parameter. Also added boolean return value to the virtual
function so it can decide to fail if it can't handle the message.
* app/display/gimpdisplay.c: implement GimpProgress::message() and
redirect the message to GimpDisplayShell.
* app/display/gimpdisplayshell-progress.c: implement
GimpProgress::message() and redirect the message to GimpStatusbar
if it is not an error and if the status bar is visible.
* app/display/gimpstatusbar.[ch]: implement GimpProgress::message(),
but fail on messages that contain a newline. Show the right icons
for the message severities (work in progress).
* app/display/gimpdisplayshell.[ch]: removed
gimp_display_shell_message() and its _valist() variant.
* app/widgets/gimperrorconsole.[ch]: show the right icons for the
message severities.
* app/widgets/gimpthumbbox.c (gimp_thumb_box_progress_message):
return TRUE to swallow all messages.
* app/widgets/gimpwidgets-utils.[ch]: removed
gimp_show_message_dialog(). Added gimp_get_message_stock_id().
* app/errors.c
* app/actions/edit-commands.c
* app/actions/error-console-commands.c
* app/actions/file-commands.c
* app/actions/select-commands.c
* app/actions/text-editor-commands.c
* app/actions/vectors-commands.c
* app/core/gimpimage-convert.c
* app/core/gimpimagefile.c
* app/dialogs/convert-dialog.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/dialogs/file-save-dialog.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/stroke-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/pdb/gimppdb.c
* app/plug-in/gimpplugin.c
* app/tools/gimpimagemaptool.c
* app/tools/gimptool.c
* app/tools/gimpvectortool.c
* app/widgets/gimpactionview.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimppdbdialog.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/brush.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/message.pdb
* tools/pdbgen/pdb/palette.pdb: added severity parameter to
gimp_message() calls. Convert all calls to
gimp_show_message_dialog() and gimp_display_shell_message() to
gimp_message(). Also converted some more g_message() calls.
* app/pdb/brush_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/image_cmds.c
* app/pdb/message_cmds.c
* app/pdb/palette_cmds.c: regenerated.
2006-09-28 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.[ch]: added
gimp_display_shell_message() and a valist variant and decide here
where the message is shown.
* app/actions/edit-commands.c (edit_paste)
* app/tools/gimptool.c (gimp_tool_message): use the new message API.
2006-09-28 Michael Natterer <mitch@gimp.org>
* app/display/gimpstatusbar.[ch]: added _valist() variants
of all printf-style functions.
* app/tools/gimptool.[ch] (gimp_tool_push_status)
(gimp_tool_replace_status)
(gimp_tool_message): take printf-style ... arguments and use the
new valist() variants of the statusbar API to avoid additional
strdups. Revert previous commit from Sven, he will add back that
feature differently right away :)
* app/tools/gimpmeasuretool.c
* app/tools/gimppainttool.c: use the new printf-style status API
where possible.
* app/tools/gimptransformtool.c: accidentially removed
"core/gimp.h", added it back.
2006-09-28 Sven Neumann <sven@gimp.org>
* app/core/gimp.h: formatting.
* app/tools/gimptool.c (gimp_tool_message): use gimp_message() if
the statusbar is not visible.
2006-09-28 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.[ch]: added gimp_tool_message() which uses
the new statusbar messages.
* app/tools/gimptool.c
* app/tools/gimppainttool.c: use it instead of accessing the
statusbar directly.
* app/tools/gimptransformtool.c: use it instead of gimp_message().
2006-09-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimpconvolvetool.c (gimp_convolve_tool_register):
changed menu label to "Bl_ur / Sharpen" and shortcut to Shift+U.
Fixes bug #356137. Use "Blur / Sharpen" for all strings.
* app/tools/gimpdodgeburntool.c (gimp_dodge_burn_tool_register):
changed strings from "Dodge/Burn" to "Dodge / Burn".