2007-08-21 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_update_with_coord): Don't adjust the
rectangle shape if it is is merely being moved.
svn path=/trunk/; revision=23343
2007-08-18 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c: Don't make
GIMP_RECTANGLE_CONSTRAIN_NONE into GIMP_RECTANGLE_CONSTRAIN_IMAGE,
and restructure the code a bit in the rectagle adjusting functions
so that they can handle the _NONE constraint. The effect of this
change is that rectangle tools no longer are constrained when
using fixed-rules.
svn path=/trunk/; revision=23319
2007-08-18 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_press): Clear highlight in previously
active shell when changing active shell.
svn path=/trunk/; revision=23318
2007-08-18 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimpcroptool.c (gimp_crop_tool_button_release): Call
gimp_crop_tool_update_default_fixed_ratio_options after
gimp_rectangle_tool_button_release, so that the state of the
rectangle tool is reflected when updating the default aspect.
svn path=/trunk/; revision=23317
2007-08-18 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimpcroptool.c
(gimp_crop_tool_update_default_fixed_ratio_options): Added a
'ignore_pending' boolean parameter so that the pending rectangle
can be ignored in gimp_crop_tool_execute, as it should be.
svn path=/trunk/; revision=23316
2007-08-17 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimpcroptool.c
(gimp_crop_tool_constructor): Connect to the "image-changed"
signal of GimpContext and update default aspect when image
changes (fixes bug #417166), by using
(gimp_crop_tool_update_default_fixed_ratio_options): which is a
new function that does this. This function is called whenever it
is time to update defualts.
* app/tools/gimprectangletool.[ch]: Made
gimp_rectangle_tool_get_constraint part of the rectangle tool API.
svn path=/trunk/; revision=23312
2007-08-17 Michael Natterer <mitch@gimp.org>
* app/tools/gimpperspectiveclonetool.c (motion)
* app/tools/gimpsourcetool.c (motion): don't allow to ctrl-switch
between clone and set-source mode while painting. It's totally
unclear to me why we used to allow this since it doesn't make much
sense and isn't very intuitive either. Fixes bug #467605.
svn path=/trunk/; revision=23302
2007-08-13 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpnumberpairentry.c: use italic font if not in
user-override mode.
* app/tools/gimprectangleoptions.c: removed auto-mode icon.
* themes/Default/images/Makefile.am
* themes/Default/images/stock-auto-mode-16.png
* libgimpwidgets/gimpnumberpairentry.[ch]: removed
GIMP_STOCK_AUTO_MODE.
svn path=/trunk/; revision=23231
2007-08-13 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
Put the auto-mode GtkImage to the right of the Aspect ratio/Size
entry instead of to the left.
svn path=/trunk/; revision=23228
2007-08-12 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
Set a 16x16 size request on the auto-mode images.
svn path=/trunk/; revision=23227
2007-08-12 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangleoptions.[ch]: Setup a
GIMP_STOCK_AUTO_MODE GtkImage to be shown in the options when
Fixed: Aspect ratio/Size entries are in auto-mode.
* themes/Default/images/Makefile.am: Added
stock-auto-mode-16.png (which is a copy of
preferences/folders-interp-16.png for now).
* libgimpwidgets/gimpstock.[ch]: Added GIMP_STOCK_AUTO_MODE.
svn path=/trunk/; revision=23224
2007-08-11 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimpcroptool.c (gimp_crop_tool_execute): Initialize
'tool' before using it.
svn path=/trunk/; revision=23210
2007-08-11 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_update_handle_sizes): Update handle sizes
based on the shell-visible part of the rectangle.
(gimp_rectangle_tool_start, gimp_rectangle_tool_halt):
Connect/disconnect to the "scrolled" signal of the shell and
update handle sizes.
svn path=/trunk/; revision=23204
2007-08-11 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_release): Halt the tool on cancel if a
rectangle has not previously been created.
svn path=/trunk/; revision=23202
2007-08-11 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_update_highlight): Renamed from
gimp_rectangle_tool_set_highlight
(gimp_rectangle_tool_button_release): Add call to
gimp_rectangle_tool_update_highlight to keep highlight in sync
when a crop rectangle is cancelled.
svn path=/trunk/; revision=23201
2007-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimpcroptool.c (gimp_crop_tool_button_release): Set
default 'Fixed: Aspect ratio' values to the size of the pending
crop rectangle. Fixes bug #355545.
* app/tools/gimprectangletool.[ch]
(gimp_rectangle_tool_get_rectangle_size): New helper function.
svn path=/trunk/; revision=23194
2007-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangleoptions.c: Added
"default-aspect-numerator", "default-aspect-denominator",
"default-fixed-size-width" and "default-fixed-size-height" as
non-serialized tool options, and "overridden-fixed-aspect" and
"overridden-fixed-size" as serialized ones.
* app/widgets/gimppropwidgets.c (gimp_prop_number_pair_entry_*):
Added support for the new GimpRectangleOptions.
svn path=/trunk/; revision=23187
2007-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimppropwidgets.[ch]: Merged gimp_prop_size_2d_* and
gimp_prop_aspect_ratio_* to gimp_prop_number_pair_*.
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
Use the merged gimp_prop_number_pair_entry_new.
svn path=/trunk/; revision=23184
2007-08-08 Martin Nordholts <martinn@svn.gnome.org>
Renamed GimpRatioEntry to GimpNumberPairEntry, and generalized the
code a lot, so that it can be used both for 'Fixed: Aspect ratio'
and 'Fixed: Size'. Support is also added for having default values
and a 'user overrided' value mode.
* libgimpwidgets/gimpnumberpairentry.[ch]: Now contains the
rewrite and generalization of GimpRatioEntry.
(gimp_number_pair_entry_get_type)
(gimp_number_pair_entry_new)
(gimp_number_pair_entry_set_default_values)
(gimp_number_pair_entry_set_values)
(gimp_number_pair_entry_get_values): New libgimpwidget API.
* app/widgets/gimppropwidgets.[ch] (gimp_prop_size_2d_new): Added
new helper widget for setting up a GimpNumberPairEntry for the
Fixed: Size entry in the Rectangle Options.
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
Use the new gimp_prop_size_2d_entry for the Fixed: Size entry.
* libgimpwidgets/gimpwidgets.def: Removed gimp_ratio_entry_* and
added gimp_number_pair_entry_*.
* libgimpwidgets/gimpwidgets.h * libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/Makefile.am (libgimpwidgets_2_0_la_sources)
(libgimpwidgetsinclude_HEADERS): Updated accordingly.
svn path=/trunk/; revision=23154
2007-08-08 Martin Nordholts <martinn@svn.gnome.org>
* libgimpwidgets/gimpratioentry.[ch]: Migrate entry completion
code and put responsability on clients to set that up when needed.
* app/tools/gimprectangleoptions.[ch]: Setup entry completion code
manually for the GimpRatioEntry widgets by using
(gimp_rectangle_options_setup_ratio_completion)
(gimp_ratio_entry_history_select, gimp_ratio_entry_history_add):
these new functions.
svn path=/trunk/; revision=23149
2007-08-08 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangleoptions.[ch]: Use separate
desired-fixed-size-width/height properties for Fixed: Size instead
of sharing properties with Fixed: Width/Height.
* app/tools/gimprectangletool.c: Use the two new properties for
Fixed: Size.
svn path=/trunk/; revision=23140
2007-08-05 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_motion): When
a new rectangle is created and Fixed: Size is used, set rectangle
function to RECT_MOVING.
svn path=/trunk/; revision=23117
2007-08-04 Martin Nordholts <martinn@svn.gnome.org>
Update rectangle tool options to bring it closer to the spec. The
major change is the use of a 'Fixed:' check box and a 'Aspect
ratio/Width/Height/Size' combo box. The check box is togglable
with Shift while rubber-banding.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_active_modifier_key): Set other side also
when Shift is released.
(gimp_rectangle_tool_update_options): Don't supress updates of
tool options on fixed width/height/size
(gimp_rectangle_tool_apply_fixed_height)
(gimp_rectangle_tool_update_with_coord)
(gimp_rectangle_tool_handle_general_clamping): Use new tool option
interface and members.
* app/tools/gimprectangleoptions.[ch]
(gimp_rectangle_options_iface_base_init)
(gimp_rectangle_options_install_properties)
(gimp_rectangle_options_(get|set)_property): Remove and add
relevant properties.
(gimp_rectangle_options_private_finalize): Unref the new widgets
used in tool options.
(gimp_rectangle_options_fixed_rule_changed): New, update tool
options depending on current option state.
(gimp_rectangle_options_gui): Modified according to change log
entry summary.
(gimp_rectangle_options_unparent_fixed_rule_widgets): New helper.
(gimp_rectangle_options_fixed_rule_active): New, clients should
use this to find out if a certain fixed-mode is active.
* app/tools/tools-enums.[ch]: Added GimpRectangleToolFixedRule.
svn path=/trunk/; revision=23114
2007-08-04 Martin Nordholts <martinn@svn.gnome.org>
Don't apply fixed aspect on pending rectangles that are not being
rubber-banded, when this is changed in the rectangle tool options.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_options_notify):
Don't synthesize motion for fixed aspect ratio options changes
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui): Removed
callback to
(gimp_rectangle_options_notify_aspect): which is not needed any more,
and hence is removed.
svn path=/trunk/; revision=23113
2007-08-02 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcroptool.c (gimp_crop_tool_cursor_update): no need
to set the tool cursor here, we already do that in init() and
never change it.
* app/widgets/gimpcursor.c (gimp_cursor_new): don't show the move
cursor and the move modifier at the same time. Some small
cleanups.
svn path=/trunk/; revision=23104
2007-07-25 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.c (gimp_tool_set_active_modifier_state):
don't have the tool release ALT when the user releases CONTROL.
Fixes another stuck modifier instance and other modifier
weirdness.
svn path=/trunk/; revision=22992
2007-07-17 Sven Neumann <sven@gimp.org>
* app/core/gimptoolinfo.c (gimp_tool_info_new): use the tool-info
identifier as the name of the tool-options object.
* app/paint/gimppaintoptions.c (gimp_paint_options_new): use the
paint-info identifier as the name of the paint-options object.
* app/paint/gimp-paint.c (gimp_paint_register): added parameter check.
* app/tools/gimp-tools.c (gimp_tools_init): formatting.
svn path=/trunk/; revision=22941
2007-07-15 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c (struct
_GimpRectangleToolPrivate): Added members to keep track of for
what shell scale the handle sizes were calculated. This is
necessary so that in
(gimp_rectangle_tool_control): we only update the handle sizes
when the zoom level has changed. We must test this, because the
tool is also paused/resumed when highlightning is on, and we don't
want to update handle sizes just because highlightning happends to
be on.
(gimp_rectangle_tool_scale_has_changed): Added helper function.
svn path=/trunk/; revision=22933
2007-07-14 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_set_highlight): Check agains tool->display,
this check was lost when this function was moved out of
gimp_rectangle_tool_configure.
svn path=/trunk/; revision=22931
2007-07-14 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_control):
Also update rectangle handle sizes when canvas zoom is
changed. (Forgot that in previous commit.)
svn path=/trunk/; revision=22930
2007-07-14 Martin Nordholts <martinn@svn.gnome.org>
Made the rectangle tool handles not resize during rectangle
manipulation, as outlined in the spec, by separating highlight
updating and handle size updating calls.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_configure):
Renamed to
(gimp_rectangle_tool_update_handle_sizes): and moved
gimp_rectangle_tool_set_highlight out of it. These two are now
called independantly.
svn path=/trunk/; revision=22929
2007-07-14 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_clamp_width)
(gimp_rectangle_tool_clamp_height): Fixed crash when creating a
rectangle with constraints outside of canvas bounds.
svn path=/trunk/; revision=22928
2007-07-13 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_release): Don't execute selection if a
dead area is clicked.
svn path=/trunk/; revision=22927
2007-07-13 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_active_modifier_key): Update handle sizes and
highlight area also when Ctrl is released.
svn path=/trunk/; revision=22926
2007-07-11 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c: Removed bitfieldized values from
the SideToResize enum, they are irrelevant. Also renamed
HANDLE_SIZE to MAX_HANDLE_SIZE.
svn path=/trunk/; revision=22909
2007-07-08 Martin Nordholts <martinn@svn.gnome.org>
Completely rewrote logic in gimp_rectangle_tool_motion, in effect
also fixing bug #353936 and bug #398188. The general strategy now
is to have specialized functions doing one thing, and one thing
only.
The patch also makes adjusting the rectangle through the keyboard
and through the rectangle tool options follow tool options.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_motion):
Completely refactored.
(gimp_rectangle_tool_active_modifier_key):
(gimp_rectangle_tool_update_options): Submit to tool options.
(gimp_rectangle_tool_apply_coord)
(gimp_rectangle_tool_clamp)
(gimp_rectangle_tool_clamp_width)
(gimp_rectangle_tool_clamp_height)
(gimp_rectangle_tool_keep_inside)
(gimp_rectangle_tool_keep_inside_horizontally)
(gimp_rectangle_tool_keep_inside_vertically)
(gimp_rectangle_tool_apply_fixed_width)
(gimp_rectangle_tool_apply_fixed_height)
(gimp_rectangle_tool_apply_aspect)
(gimp_rectangle_tool_update_with_coord)
(gimp_rectangle_tool_get_constraints)
(gimp_rectangle_tool_handle_general_clamping): The new specialized
functions.
svn path=/trunk/; revision=22903
2007-07-05 Sven Neumann <sven@gimp.org>
* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_corner): changed
the highlighting of the side handles to follow changes in the
specification.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_draw): cosmetics.
svn path=/trunk/; revision=22867