2008-05-11 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c: Fix emission of
rectangle-change-complete signals.
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c:
Use the rectangle-change-complete signal to update the default
aspect ratio. Fixes bug #530519.
* app/tools/gimpcroptool.c
(gimp_crop_tool_button_release)
(gimp_crop_tool_options_notify)
* app/tools/gimprectangleselecttool.c
(gimp_rectangle_select_tool_button_release): No need to explicitly
update option defaults since it is handled through the
rectangle-change-complete signal now.
svn path=/trunk/; revision=25639
2008-05-10 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_press): Active the tool control
earlier.
(gimp_rectangle_tool_synthesize_motion): Bail out if the tool
control is active, we don't want to synthesize a motion in this
case as it emits unwanted rectangle-changed signals.
svn path=/trunk/; revision=25630
2008-05-10 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_release): Don't forget updating the
integer representation when reverting the rectangle after
cancelling a rubber-banding.
svn path=/trunk/; revision=25610
2008-05-10 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_release): Update the tool options
after a release; the rectangle might change if a rubber-banding is
cancelled.
svn path=/trunk/; revision=25608
2008-05-02 Martin Nordholts <martinn@svn.gnome.org>
* gimptexttool.c
* gimptexttool.h:
* gimprectangletool.c
* gimprectangletool.h
* gimprectangleselecttool.c: Renamed the "rectangle-changed"
signal to "rectangle-change-complete" which is much better name
since the signal is not emited when the rectangle is changed, but
when the change is complete.
svn path=/trunk/; revision=25557
2008-04-26 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_options_notify): No need to bail out if there
is no display.
svn path=/trunk/; revision=25532
2008-04-26 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_options_notify): Some more simplifications
and cleanups.
svn path=/trunk/; revision=25531
2008-04-24 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_options_notify): Do appropriate equal and
not-equal comparions for floting point numbers. Fixes bug #527863.
svn path=/trunk/; revision=25516
2008-04-07 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangletool.[ch]:
* app/tools/gimptexttool.c removed out 'force-narrow' mode as it
is hard to use and just looks broken.
svn path=/trunk/; revision=25399
* app/tools/gimprectangletool.[ch]: add "force_narrow"
parameter.
* app/tools/gimptexttool.c: Force rectangle to always
be narrow, and squash a few bugs.
svn path=/trunk/; revision=25397
* app/text/gimptextlayout.c
* app/tools/gimptexttool.[ch]
* app/tools/gimprectangletool.[ch]
* app/tools/gimptextoptions.c: allow resizing of text
box. This is work in progress, and needs some tweaks
and fixes. See bug #122707.
svn path=/trunk/; revision=25344
2008-03-09 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_setup_snap_offsets): Make the GimpCoords used
for snap calculations depend on the precision mode of the
rectangle. This gives a more pleasant experience when resizing and
moving the rectangle with image zoom factor larger than 100%.
svn path=/trunk/; revision=25068
2008-03-08 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c: Added TODO on how to improve the
code by changing the way the rectangle is represented internally.
svn path=/trunk/; revision=25062
2008-01-21 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_set_other_side_coord): Don't foget to update
the integer representation of the rectangle.
svn path=/trunk/; revision=24665
2008-01-01 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_start): Use ×
instead of x when initializing the rectangle size in the status
bar.
svn path=/trunk/; revision=24498
2007-12-28 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_update_highlight): When setting the
highlight, use the external rectangle representation, not the
internal one.
svn path=/trunk/; revision=24453
2007-12-14 Martin Nordholts <martinn@svn.gnome.org>
Reverted the changes that made GimpRectangleTool keep track of its
active display in GimpRectangleToolPrivate, the approach is
broken.
svn path=/trunk/; revision=24364
2007-12-13 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.[ch]: Changed name of
`gimp_rectangle_tool_is_active_at' to
`gimp_rectangle_tool_is_active_on_display'.
* app/tools/gimpcroptool.c
* app/tools/gimprectangleselecttool.c: Use the new name.
svn path=/trunk/; revision=24360
2007-12-13 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.[ch]: Don't use the `display' member
of GimpTool for keeping track of what display the rectangle is
active on. Instead store the active display in
GimpRectangleToolPrivate. This change is based on a patch by Bill
Skaggs.
(gimp_rectangle_tool_is_active)
(gimp_rectangle_tool_is_active_at)
(gimp_rectangle_tool_get_active_display): New public functions for
GimpRectangleTool active-display interaction.
* app/tools/gimpellipseselecttool.c
(gimp_ellipse_select_tool_select): Use the active display of
GimpRectangleTool instead of tool->display.
* app/tools/gimprectangleselecttool.c
(gimp_rect_select_tool_rectangle_changed): Use the active display
of GimpRectangleTool instead of tool->display.
* app/tools/gimpcroptool.c
(gimp_crop_tool_button_press): Use the active display of
GimpRectangleTool instead of tool->display.
svn path=/trunk/; revision=24358
2007-12-13 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_release): Make canceling work a bit
better.
svn path=/trunk/; revision=24355
2007-12-12 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c: Extended public interface a bit.
(gimp_rectangle_tool_point_in_rectangle): New convenience function
to test if a point is within the rectangle (if active).
(gimp_rectangle_tool_rectangle_is_new): New function so that
clients can determine if the rectangle currently being
rubber-banded was created from scatch or not.
svn path=/trunk/; revision=24343
2007-12-06 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_set_property): Also update the integer
representation of the rect when the GObject properties has been
set.
svn path=/trunk/; revision=24277
2007-11-24 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.[ch]: Renamed RECT_* identifiers of
the GimpRectangleFunction enum to GIMP_RECTANGLE_TOOL_*.
* app/tools/gimprectangleselecttool.c: Use the new names.
svn path=/trunk/; revision=24226
2007-11-24 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.[ch]: Ported the internal
representation of the rectangle to gdouble:s instead of
gint:s. This solves problems like not being able to swap portrait
for landscape on very small rectangle and bug #442027, as well as
provides a nice base to solve other similar problems when they are
discovered. It is possible to choose what precision the
GimpRectangleTool:s will appear to have externally through a new
GimpRectanglePrecision enum and property, but the gdouble
precision mode still requires some work in order to be useful. In
the processes quite some refactoring has taken place, mostly
restructuring code and splitting larger functions into smaller
more managable ones.
(gimp_rectangle_tool_rect_rubber_banding_func)
(gimp_rectangle_tool_setup_snap_offsets)
(gimp_rectangle_tool_apply_fixed_rule)
(gimp_rectangle_tool_update_int_rect)
(gimp_rectangle_tool_get_public_rect): New helper functions.
* app/tools/tools-enums.h: Added GimpRectanglePrecision.
svn path=/trunk/; revision=24224
2007-11-13 Martin Nordholts <martinn@svn.gnome.org>
Avoid GimpRectangleTool internals to make use of its public own
interface by making gimp_rectangle_tool_get_other_side() work on
pointers to members instead of GObject property names.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_set_other_side_coord)
(gimp_rectangle_tool_get_other_side_coord): Use
gimp_rectangle_tool_get_other_side() in the new way.
svn path=/trunk/; revision=24152
2007-11-13 Martin Nordholts <martinn@svn.gnome.org>
Fixed warnings about negative rectangle widths/heights when
toggling 'Fixed center' while rubber banding a rectangle.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_set_other_side_coord): Finnishing off with a
call to gimp_rectangle_tool_check_function() as changing the
coordinates of the opposite side might swap the orientation of the
rectangle.
svn path=/trunk/; revision=24151
2007-11-11 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.[ch]: Removed
gimp_rectangle_tool_get_press_coords() as it doesn't make sense
for a rectangle tool interface to provide this functionality.
Clients should take care of that themselves. Also adjusted
internal code accordingly.
* app/tools/gimprectangleselecttool.c: Remember the pressed
coordinates on _button_press instead of asking GimpRectangleTool
about it.
svn path=/trunk/; revision=24119
2007-11-11 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c: Lessen code bloat by removing
code that manages center-[xy] properies of GimpRectangleOptions.
Instead use x1, y1 and x2, y2 when working with the rectangle
center.
* app/tools/gimprectangleoptions.[ch]: Removed "center-x" and
"center-y" properties.
svn path=/trunk/; revision=24115
2007-11-06 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_update_handle_sizes): Don't use any dead
areas in narrow-mode, and adjust constants a bit.
* app/tools/gimpdrawtool.c (gimp_draw_tool_draw_corner): Adjusted
to always draw side handles in narrow mode without dead areas.
svn path=/trunk/; revision=24077
2007-11-05 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_motion): Bail
out early if the rectangle function is RECT_DEAD. This prevents
flickering.
svn path=/trunk/; revision=24071
2007-11-05 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c: also don't show the shell
highlight when a rectangle is being moved. Achieved through
slightly modifying code logic and renaming variables and functions
a bit.
svn path=/trunk/; revision=24070
2007-11-04 Martin Nordholts <martinn@svn.gnome.org>
Do not do shell darkening while GimpRectangleTool rectangles are
being rubber-banded.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_button_press)
(gimp_rectangle_tool_button_release): Maintain a variable keeping
track of if the rectangle is being rubber banded or not.
(gimp_rectangle_tool_update_highlight): Do not set a shell
highligt if the rectangle is being rubber-banded.
(gimp_rectangle_tool_rubber_banding_func): New helper function.
svn path=/trunk/; revision=24059
2007-11-04 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c: Consistently use the name
`rect_tool' instead of `rectangle' or `rectangle_tool' for
pointers to GimpRectangleTool.
svn path=/trunk/; revision=24054
2007-11-04 Martin Nordholts <martinn@svn.gnome.org>
Put GimpRectangleTool handles on the outside of the rectangle when
it has a small width or height. Some polishing left to do but the
base functionality works nicely.
* app/tools/gimpdrawtool.[ch] (gimp_draw_tool_draw_corner): Add a
put_outside boolean parameter that if true draws the handles on
the outside of the rectangle.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_update_handle_sizes)
(gimp_rectangle_tool_coord_on_handle)
(gimp_rectangle_tool_draw): Take into account if the rectangle is
in narrow-mode or not.
svn path=/trunk/; revision=24053
2007-10-31 Michael Natterer <mitch@gimp.org>
* app/tools/gimprectangletool.c: some general indentation, spacing
and coding style convention paranoia cleanups.
(gimp_rectangle_tool_get_constraints): set all return values also
when bailing out early to avoid valgrind warnings about
uninitialized memory.
svn path=/trunk/; revision=24009
2007-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c (struct GimpRectangleToolPrivate):
Renamed handle_[wh] to corner_handle_[wh] since that are the
appropriate names.
svn path=/trunk/; revision=23960
2007-10-26 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangletool.c (gimp_rectangle_tool_oper_update):
Use new helper functions to decide if the cursor is on a
handle (or outside of the rectangle + handle bounds) to ease the
introduction of having handles on the outside of the pending
rectangle.
(gimp_rectangle_tool_coord_outside)
(gimp_rectangle_tool_coord_on_handle): New helper functions.
svn path=/trunk/; revision=23959
2007-10-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimppropwidgets.c (gimp_prop_size_entry_new):
honor the "show-pixels" and "show-percent" properties of the unit
param spec.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_start): set
the image's width/height on the size entries so the percent unit
works correctly.
svn path=/trunk/; revision=23852