2007-03-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: added new ugly function
gimp_dialog_factory_hide_dialog() which does gtk_widget_hide() and
sets the stored visibility state to GIMP_DIALOG_VISIBILITY_INVISIBLE
in order to avoid re-showing dialogs that were already insivible due
to TAB-toggling when we gtk_widget_hided them.
* app/tools/gimptransformtool.c
* app/tools/gimpimagemaptool.c: use the new function instead of
gtk_widget_hide() to hide tool dialogs. Fixes bug #414006.
svn path=/trunk/; revision=22111
2007-03-09 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: include "libgimpmath/gimpmathtypes.h"
instead of "libgimpmath/gimpmath.h".
* app/core/gimpbrush.h
* app/paint/gimppaintcore.h
* app/paint/gimpperspectiveclone.h
* app/text/gimptext.h
* app/tools/gimptransformtool.h: include gimpvector.h and
gimpmatrix.h explicitely where they are needed in public structs.
* app/*/*.c
* tools/pdbgen/pdb/paths.pdb: include "libgimpmath/gimpmath.h"
where needed.
* app/pdb/paths_cmds.c: regenerated.
svn path=/trunk/; revision=22084
2007-03-08 Sven Neumann <sven@gimp.org>
* app/tools/gimpperspectivetool.c
* app/tools/gimpscaletool.c
* app/tools/gimprotatetool.c
* app/tools/gimpfliptool.c
* app/tools/gimpsheartool.c
* app/tools/gimptransformtool.[ch]: removed shell_desc member
from
GimpTransformToolClass and just use the tool blurb instead.
svn path=/trunk/; revision=22067
2007-02-27 Michael Natterer <mitch@gimp.org>
Step one towards enabling tool cancellation by other means than
mouse button 3 and towards proper "clicked" semantics.
* app/tools/tools-enums.[ch]: added enum GimpButtonReleaseType
which can be one of { NORMAL, CANCEL, CLICK } (click is curently
unused).
* app/tools/gimptool.[ch] (GimpTool::button_release): added
"release_type" parameter.
(gimp_tool_button_release): if the state contains
GDK_BUTTON3_MASK, call the tool's button_release() with CANCEL,
use NORMAL otherwise.
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpcolortool.c
* app/tools/gimpcroptool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmagnifytool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimpmovetool.c
* app/tools/gimppainttool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]
* app/tools/gimpregionselecttool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c (button_release): added
"release_type" parameters and get rid of own checks for
GDK_BUTTON3_MASK.
svn path=/trunk/; revision=22015
2007-02-26 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_doit): queue
a redraw of the display shell instead of exposing the transform
preview. Removes annoying flicker when the tool is finished.
svn path=/trunk/; revision=22004
2007-02-03 Michael Natterer <mitch@gimp.org>
Remove support for the old undo pop and free cruft:
* app/core/core-types.h: remove typedefs GimpUndoPopFunc and
GimpUndoFreeFunc.
* app/core/gimpundo.[ch]: remove members and properties size,
data, pop_func and free_func.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): remove
parameters size, struct_size, pop_func and free_func.
* app/core/gimpimage-undo-push.c
* app/tools/gimptransformtool.c
* app/paint/gimpink.c
* app/paint/gimppaintcore.c: change calls to above function
accordingly.
svn path=/trunk/; revision=21845
2006-12-29 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformtool.[ch]: store the original aspect
ratio.
Let the Ctrl key toggle the aspect ratio constraint also while
the
mouse is being pressed.
* app/tools/gimpscaletool.c (gimp_scale_tool_motion): use the
original aspect ratio when applying the constraint.
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-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-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 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-26 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore.[ch]: added GError** parameter to
GimpPaintCore::start().
* app/tools/gimppainttool.c (button_press): display the error in
the statusbar.
* app/paint/gimppaintcore-stroke.c: pass a NULL error, effectively
swallowing mssages. Will fix that later.
* app/paint/gimpbrushcore.c
* app/paint/gimpclone.c
* app/paint/gimpsourcecore.c: changed accordingly. Set the error
instead of calling g_message().
* app/paint/gimpheal.c
* app/paint/gimpperspectiveclone.c: implement start() and bail out
early on indexed drawables instead of showing a g_message() in
other functions that are called later.
* app/tools/gimptool.[ch]: added GError** to GimpTool::initialize().
* app/tools/gimptool.c (gimp_tool_initialize): display the error
in the statusbar. Keep the external API GError-free.
* app/tools/gimprectangletool.[ch]: added GError** to
gimp_rectangle_tool_initialize().
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorizetool.c
* app/tools/gimpcroptool.c
* app/tools/gimpcurvestool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimpimagemaptool.c
* app/tools/gimplevelstool.c
* app/tools/gimpperspectiveclonetool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c
* app/tools/gimptransformtool.c: changed accordingly. Set the
errors in initialize() instead of using gimp_message().
* app/tools/gimpblendtool.c: implement initialize() and bail out
early on indexed images instead of showing a gimp_message() in
button_press().
2006-09-05 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.[ch]: added gimp_tool_get_options() so tools
don't need to incude "core/gimptoolinfo.h" just to get to
their options.
* app/tools/gimp*tool.h: added macros GIMP_FOO_TOOL_GET_OPTIONS()
which return specific tool options types and do all casting
themselves.
* app/tools/*.c: use the new macros and don't include
"core/gimptoolinfo.h" in most files.
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_register):
make it use the parent context's FG and BG.
* app/tools/gimpcolortool.c (gimp_color_tool_real_picked): set the
color on the tool's options, not on the user context.
2006-08-31 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite-mmx.c: moved declarations at the
beginning of the functions.
* app/tools/gimptransformtool.c (gimp_transform_tool_doit):
display a message if no paths are available. Could catch this
earlier, but this is the least intrusive change to fix bug #353495.
* app/tools/tools-enums.h
* app/tools/gimptransformtool.[ch]: add support for handles at
midpoints of edges.
* app/tools/gimpscaletool.c: use midpoint handles for scaling
with fixed width or height. Fixes bug #344955.
2006-06-27 Sven Neumann <sven@gimp.org>
Applied patch from Zbigniew Chyla (bug 345982):
* app/tools/gimptransformtool.[ch]: added undo_desc field for
storing undo string and use that, not tool_info->blurb.
* app/tools/gimpfliptool.c
* app/tools/gimpperspectivetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c: set undo_desc.
2006-06-27 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformtool.c
(gimp_transform_tool_notify_type):
do not call bounds() and recalc() with a NULL display. Added
sanity checks for the display parameter to both functions.
Fixes bug #345791.
2006-06-22 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c: (gimp_transform_tool_control):
always upchain.
(gimp_transform_tool_cursor_update): use the small crosshair
instead of GIMP_CURSOR_MOUSE as default cursor to avoid hotspot
jumping.
(gimp_transform_tool_doit): call prepare() after bounds().
2006-06-20 Sven Neumann <sven@gimp.org>
* app/tools/tools-enums.h: added TRANSFORM_HANDLE_NONE (will
get rid of TRANSFORM_CREATING later).
* app/tools/gimptransformtool.[ch]: added member "use_handles" and
default to FALSE for all "use_foo" variables. Only deal with the
handles the specific transform tool asks for. Set cursors
according to the active handle.
* app/tools/gimpfliptool.c
* app/tools/gimpperspectivetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c: changed accordingly.
2006-06-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: renamed
gimp_image_coords_in_active_drawable() to
gimp_image_coords_in_active_pickable() and added boolean
"sample_merged" and "selected_only" parameters. Use floor()
instead of ROUND(), we want to round to the actual pixel, not to
the nearest pixel boundary.
* app/tools/gimpbucketfilltool.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimptransformtool.c: changed accordingly. Removed
quite some duplicated code which checked sample_merged and the
mask value at the cursor location.
* app/tools/gimpbycolorselecttool.c: use the hand tool cursor,
there's also a hand in the toolbox icon. Fixed cursor_update()
function to set the bad modifier when there is no pickable pixel
at the cursor loction.
* app/tools/gimpfuzzyselecttool.c: added cursor_update()
implementation which does the same as by_color_select's one.
* app/tools/gimpselectiontool.c
(gimp_selection_tool_cursor_update): don't override the bad
modifier which was set by a subclass' cursor_update().
2006-06-01 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/modifier-bad.png
* cursors/xbm/modifier-bad-mask.xbm
* cursors/xbm/modifier-bad.xbm: new "bad" cursor
modifier. Replaces the "bad" cursor.
* cursors/gimp-tool-cursors.xcf: added it here too.
* app/widgets/widgets-enums.h: added GIMP_CURSOR_MODIFIER_BAD.
* app/widgets/gimpcursor.c: add the bad modifier. Leave the bad
cursor there for now.
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: use the modifier instead of the
cursor. Fixes hotspot jumping when switching between normal and
bad cursors. The changed cursor_update() functions even make more
sense IMHO. Fixes bug #158407.
2006-05-23 Michael Natterer <mitch@gimp.org>
* app/tools/gimptransformtool.c (gimp_transform_tool_dialog_update):
don't call the virtual function if there is no dialog.
(gimp_transform_tool_recalc): show the dialog here after updating it.
* app/tools/gimpperspectivetool.c
* app/tools/gimprotatetool.c
* app/tools/gimpscaletool.c
* app/tools/gimpsheartool.c (dialog_update): don't show it here.
2006-05-19 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformoptions.[ch]: removed one of the two
constrain properties.
* app/tools/gimprotatetool.c
* app/tools/gimptransformtool.c: changed accordingly.
* app/tools/gimpscaletool.c: sync "constrain" with the size-box's
"keep-aspect" property.
2006-03-31 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/dialogs-types.h
* app/dialogs/dialogs.c
* app/dialogs/info-dialog.[ch]: good bye InfoDialog.
* app/tools/gimpperspectivetool.[ch]
* app/tools/gimprotatetool.[ch]
* app/tools/gimpsheartool.[ch]
* app/tools/gimptransformtool.[ch]: use GimpToolDialog instead of
InfoDialog and add the widgets manually.
* app/tools/gimpscaletool.c: commented out use of InfoDialog. This
tools still needs to be ported to GimpToolDialog.
2006-01-07 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpdialog.c: implement GtkWidget::hide() and set
the the focus widget to NULL, so a focussed entry emits focus_out
and its callbacks are invoked immediately (before the call to
gtk_widget_hide() returns). Fixes crashes and warnings in tool
dialogs when hitting escape while a spinbutton is being edited.
* app/tools/gimptransformtool.c
(gimp_transform_tool_force_expose_preview): return silently
instead of warning when being called while the draw tool is not
active (same scenario as above).
2005-11-19 Michael Natterer <mitch@gimp.org>
* app/tools/gimpaligntool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimpmagnifytool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: started to get rid of all stock GDK
cursors in preparation of fixing bug #158407.
2005-05-07 Sven Neumann <sven@gimp.org>
* app/tools/gimpmagnifyoptions.c (gimp_magnify_options_gui):
removed the GUI for the Threshold option; it is more confusing
than useful.