Michael Natterer
ecaf485f85
app: draw the paint tool fallback crosshair only as last resort
...
if there was no outline drawn, no line preview, no circle, and no
cursor is shown. All these cases, if drawn, never need a crosshair.
2014-11-19 19:55:22 +01:00
Alexia Death
59364ea76d
app: separate fallback cursor from primary indicator cursor
...
Separate fallback use of a cursor from using a plain size
indicator cursor. Ink tool uses a plain circle as primary
drawing indicator instead of outline, totally different
use than a fallback, when brush is too small to be drawn.
Conflicts:
app/tools/gimppainttool.c
2014-11-19 00:41:43 +02:00
Michael Natterer
c17e8b0412
app: add crosshair drawing to GimpCanvasAnchor and use it in GimpPaintTool
...
instead of drawing the crosshair cursor manually.
2014-11-18 23:06:43 +01:00
Alexia Death
5442421a34
app: crosshairs type fallback brush cursor
...
Replaces circular fallback cursor with a less distracting
crosshairs type cursor.
2014-11-18 21:18:29 +02:00
Michael Natterer
1397b9aae7
app: use gimp_draw_tool_add_arc() for the GimpPaintTool brush circle
...
because add_handle() doesn't scale with the image.
2014-04-20 22:03:17 +02:00
Michael Natterer
0bdb74710a
app: rename the value-1...value-4 actions to opacity, size, aspect, angle
2014-04-19 20:09:39 +02:00
Michael Natterer
6d5b6a648d
app: turn the paint tool fallback cursor cross into a circle
2014-04-12 22:17:55 +02:00
Michael Natterer
2a9b6bf569
app: make blend's and straight line's start-line-end drawing look nicer
...
Use circle handles instead of crosses, and put the items into a stroke
group so they don't look ugly when drawing over each other.
2014-04-12 22:10:26 +02:00
Michael Natterer
693d0d082b
app: don't draw a redundant fallback crosshair when a line preview is shown
...
and introduce some local variables is gimp_paint_tool_draw() to reduce
clutter.
2014-04-12 15:26:11 +02:00
Michael Natterer
d897188e32
app: also move the "draw brush outline" logic from brush to paint tool
...
So all paint tools honor the setting.
Add GimpPaintTool::get_outline() which either returns an outline, or
calls gimp_paint_tool_set_draw_cursor() and implement it in
GimpBrushTool and GimpInkTool. Handle all brush/circle/fallback
drawing in gimp_paint_tool_draw().
2014-04-12 15:03:15 +02:00
Michael Natterer
1ade034c49
app: move "show paint tool cursor" logic from GimpBrushTool to GimpPaintTool
...
Now all paint tools (also ink and mypaint brush) honor the setting and
can work without mouse cursor.
2014-04-12 12:54:08 +02:00
Michael Natterer
703c2c78c4
app: add gimp_paint_tool_set_draw_circle()
...
which enables drawing a circle with a given radius at the cursor
location.
2014-04-09 15:27:31 +02:00
Michael Natterer
88e4d7e468
app: commit ongoing tool operations on tool change instead of cancelling
...
On tool change, we used to simply halt tools before switching to the
new one, which meant losing ongoing live-previewed tool changes, like
transforms, warps and color corrections. This change makes them being
applied to the image instead before switching to the new tool:
Add enum value GIMP_TOOL_ACTION_COMMIT that is passed to
GimpTool::control() before tool switching. Handle the new enum value
in all tools, and actually commit the previewed stuff. This changes
the behavior of GimpCageTool, GimpImageMapTool, GimpTransformTool and
GimpWarpTool.
2014-04-04 22:34:26 +02:00
Michael Natterer
d1795ac204
Bug 700193 - undoing paint tools doesn't update last_coords properly
...
paint_core->start_coords is in fact the last stroke's endpoint and
only used for storing it in GimpPaintCoreUndo, so the last endpoint
can be resotred for straight-line painting after an undo. Make the
code actually doing that.
2013-07-15 00:41:43 +02:00
darkraid1
ac5428787e
Bug 598523 - Protect hidden layers from editing
...
Don't allow tool operations on invisible items, just like we do for
group layers or locked items.
Cleaned up and enhanced the patch a bit --Mitch
2013-05-13 23:29:43 +02:00
Michael Natterer
908f727f0a
Chain up unconditionally in GObject::constructed()
...
It's supported since GLib 2.28.
2012-11-12 21:51:22 +01:00
Michael Natterer
38b8f0596d
app: use the new modifier API instead of constants in all tools
...
There are still many uses of literal SHIFT and MOD1 left, but all uses
of CONTROL are gone. Should work exactly as before on Win/X11, and
still has some glitches on OSX.
2011-10-06 21:59:07 +02:00
Alexia Death
d32fa80d1d
app: Move smooth to painttool and clean up the rest
2011-09-14 20:44:45 +03:00
Michael Natterer
aa7c31b802
app: s/gdouble inertia_factor/gboolean event_fill/ in eval_event()
...
Also remove "gdouble max_coord_smooth" from GimpTool and simply use
the existing motion mode for deciding whether or not to fill in
events.
2011-04-17 19:59:31 +02:00
Michael Natterer
0c7cd5b8a1
app: GimpPaintTool: don't call paint_core_paint(FINISH) in control(HALT)
...
because that simply can't happen (we call paint(FINISH) in
button_release() already and press and release are always paired. Only
call paint_core_cleanup() in control(HALT).
2011-04-01 22:56:32 +02:00
Michael Natterer
503a9cebce
app: implement GObject::constructed() instead of ::constructor()
2011-01-13 10:06:07 +01:00
Michael Natterer
cf0402f069
app: consistent handle sizes for tool drawing
...
Replace a myriad of defines in different tools by three consistent
sizes defined in gimpdrawtool.h.
2010-11-08 22:37:00 +01:00
Michael Natterer
22db39afd2
app: fix incomplete earlier s/GtkAnchorType/GimpHandleAnchor/ change
2010-10-18 20:13:09 +02:00
Michael Natterer
38153d7476
app: gimp_paint_tool_oper_update(): stop/start the draw tool only when needed
2010-10-11 22:26:52 +02:00
Michael Natterer
545e65dda6
app: add gimp_display_shell_selection_pause() and _resume()
...
and use them instead of gimp_display_shell_selection_control() with
the resp. enum values. Remove the GIMP_SELECTION_PAUSE and _RESUME
enums values and thus the presence of this concept in the core.
2010-10-09 14:26:33 +02:00
Michael Natterer
e11ca44ba0
app: use gimp_display_shell_selection_control() in the paint tool
...
not gimp_image_selection_control(). The image dealing with that
is an artifact that is going to die.
2010-10-09 14:07:04 +02:00
Michael Natterer
b3af235e79
app: rename all gimp_draw_tool_draw_foo() functions
...
to gimp_draw_tool_add_foo() because that's what they do now.
2010-09-25 19:02:22 +02:00
Michael Natterer
313f8bee1e
app: remove "gboolean use_cairo" from the draw tool again
...
It's always TRUE now.
2010-09-24 21:14:49 +02:00
Michael Natterer
3b4d26e8d2
app: enable cairo drawing for all paint tools
2010-09-23 23:39:36 +02:00
Michael Natterer
fb68e40214
app: draw the line before the handles so it will look ok with cairo
2010-09-23 19:24:32 +02:00
Michael Natterer
4d0c750327
app: get rid of "gboolean use_offsets" in the draw tool
...
and always pass image coordinates. Transform the coords manually in
the very few places which passed TRUE.
2010-09-23 19:23:27 +02:00
Michael Natterer
0908e53148
app: use the new unit conversion functions
...
and get rid of the brainfuck idea that app/ has to use _gimp_unit_foo()
functions, passing a gimp pointer. Instead, simply use the libgimpbase
API all over the place. Should we ever allow more than one gimp instance,
they will simply have to share one unit database.
2010-02-21 16:46:39 +01:00
Michael Natterer
ae70da3e72
Remove unused #define STATUSBAR_SIZE 200
2009-11-03 15:43:32 +01:00
Michael Natterer
08f35de4ac
Use gimp_display_get_image() instead of display->image
2009-10-07 19:00:42 +02:00
Michael Natterer
8ba18309eb
Use display->gimp intead of display->image->gimp
2009-10-04 20:05:28 +02:00
Michael Natterer
ac98c2c234
Use gimp_display_get_shell() instead of directly accessing it
2009-10-04 19:56:39 +02:00
Michael Natterer
9e18f771c4
Replace "Group Layer" by "Layer Group" in all user visible strings
2009-09-03 14:57:18 +02:00
Michael Natterer
02903d6970
Use gimp_item_is_content_locked() instead of gimp_item_get_lock_content()
...
Use the new API whenever we want to determine the item's effective
lock state (whether we can write to the item's content or not). Use
gimp_item_get_lock_content() only in code that actually deals with
*this* item's locked state, which is only the PDB wrappers and GUI to
modify the flag on the item itself.
2009-08-29 15:27:04 +02:00
Michael Natterer
e979c08133
Start separating the logic for "locked" and "is group" again
...
The idea that group layers count as locked was a bad one, start adding
separate checks for group layers, and refuse to modify them with
distinct error messages.
2009-08-28 20:07:14 +02:00
Michael Natterer
9040afc0fc
Set BAD cursors if the active drawable is locked
2009-08-21 19:34:59 +02:00
Michael Natterer
7b5e176eee
Really don't paint on locked drawables
...
Remove GimpTool::initialize() implementation again and check for the
drawable being locked in GimpTool::button_press() so we can't paint if
the tool has been used before on the same drawable when it was
unlocked.
2009-08-21 11:55:18 +02:00
Michael Natterer
ec6600a0b3
Refuse to edit locked drawables
...
Check whether the drawable to edit is locked in GimpTool::initialize()
and bail out with an appropriate error if it is. This currently
prevents cloning from locked drawables, will fix that later.
2009-08-20 17:05:23 +02:00
Michael Natterer
1a16b48c93
Add infrastructure for sending double and triple clicks to tools
...
* app/tools/tools-enums.[ch]: add enum GimpButtonPressType which can
be { NORMAL, DOUBLE, TRIPLE }
* app/tools/gimptool.[ch]: add press_type paramater to GimpTool::button_press()
* app/tools/gimp*tool.c
* app/tools/tool_manager.[ch]: changed accordingly.
* app/tools/gimptoolcontrol.[ch]: add members and API so tools can choose
to receive double and triple clicks.
* app/display/gimpdisplayshell-callbacks.c (gimp_display_shell_tool_events):
dispatch double and triple clicks to tools if they want them, and if they
became active by the preceding normal button press.
2009-06-20 17:37:31 +02:00
Michael Natterer
53c661312b
Add GimpCoords* parameter to gimp_paint_core_interpolate()
...
Pass the current coords to the function instead of setting them
on the paint core before calling it. Doesn't exactly make the code
in the paint tool simpler, but that needs further refactoring anyway.
2009-05-25 20:49:34 +02:00
Michael Natterer
42b28066b8
Move the straight line constrain code to GimpPaintCore.
...
* app/paint/gimppaintcore.[ch]: add gimp_paint_core_round_line()
* app/tools/gimppainttool.c: remove gimp_paint_tool_round_line() and call
above new function instead.
2009-04-22 21:22:08 +02:00
Michael Natterer
090e06ecdd
Move the stuff in tools-utils to the core so it can be used from
...
app/paint/ in the next step.
* app/tools/Makefile.am
* app/tools/tools-utils.[ch]: removed.
* app/core/gimp-utils.[ch]: add gimp_constrain_line() instead.
* app/tools/gimpblendtool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimppainttool.c: changed accordingly.
2009-04-22 21:08:42 +02:00
Michael Natterer
d9b5207aa2
Change licence to GPLv3 (and to LGPLv3 for libgimp).
...
2009-01-17 Michael Natterer <mitch@gimp.org>
* all files with a GPL header and all COPYING files:
Change licence to GPLv3 (and to LGPLv3 for libgimp).
Cleaned up some copyright headers and regenerated the parsers in
the ImageMap plugin.
svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Sven Neumann
4762b73403
bumped minimum required version of GLib to 2.18.0.
...
2008-11-04 Sven Neumann <sven@sven>
* configure.in: bumped minimum required version of GLib to
2.18.0.
* INSTALL: document the updated dependency.
* app/core/gimp.[ch]: introduced gimp_message_literal(), a
variant
of gimp_message() that takes a literal string.
* app/errors.[ch]: removed format arguments from
gimp_fatal_error()
and gimp_terminate() and let them take a literal string instead.
* app/tools/gimptool.[ch]: introduced
gimp_tool_message_literal(),
a variant of gimp_tool_message() that takes a literal string.
* app/actions/documents-commands.c
* app/actions/drawable-commands.c
* app/actions/edit-commands.c
* app/actions/error-console-commands.c
* app/actions/file-commands.c
* app/actions/gradients-commands.c
* app/actions/image-commands.c
* app/actions/layers-commands.c
* app/actions/palettes-commands.c
* app/actions/plug-in-commands.c
* app/actions/select-commands.c
* app/actions/vectors-commands.c
* app/config/gimprc.c
* app/core/gimp-modules.c
* app/core/gimp-parasites.c
* app/core/gimp-templates.c
* app/core/gimp-units.c
* app/core/gimpchannel.c
* app/core/gimpcontainer-filter.c
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-merge.c
* app/core/gimpimage.c
* app/core/gimpimagefile.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayer.c
* app/core/gimpselection.c
* app/dialogs/convert-dialog.c
* app/dialogs/dialogs.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/preferences-dialog.c
* app/dialogs/quit-dialog.c
* app/dialogs/stroke-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/file/file-open.c
* app/file/file-procedure.c
* app/file/file-save.c
* app/file/file-utils.c
* app/gegl/gimpcurvesconfig.c
* app/gegl/gimplevelsconfig.c
* app/gui/gui-message.c
* app/gui/gui.c
* app/gui/session.c
* app/paint/gimpbrushcore.c
* app/paint/gimpclone.c
* app/paint/gimpheal.c
* app/paint/gimpperspectiveclone.c
* app/paint/gimpsourcecore.c
* app/pdb/gimppdb-utils.c
* app/pdb/gimpprocedure.c
* app/plug-in/gimpplugin-message.c
* app/plug-in/gimpplugin.c
* app/plug-in/gimppluginmanager-restore.c
* app/plug-in/gimppluginprocedure.c
* app/text/gimptextlayer.c
* app/tools/gimp-tools.c
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorpickertool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpdesaturatetool.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimpforegroundselecttool.c
* app/tools/gimpfreeselecttool.c
* app/tools/gimpgegltool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimpimagemaptool-settings.c
* app/tools/gimpiscissorstool.c
* app/tools/gimplevelstool.c
* app/tools/gimpmeasuretool.c
* app/tools/gimppainttool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpselectiontool.c
* app/tools/gimpsourcetool.c
* app/tools/gimpthresholdtool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c
* app/widgets/gimpactionview.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimpcontrollers.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdevices.c
* app/widgets/gimpdnd-xds.c
* app/widgets/gimperrordialog.c
* app/widgets/gimphelp.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppdbdialog.c
* app/widgets/gimpsettingsbox.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpwidgets-utils.c
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/floating_sel.pdb
* tools/pdbgen/pdb/image.pdb: use the _literal variants for
g_set_error(), gimp_message() and gimp_tool_message().
* app/pdb/convert-cmds.c
* app/pdb/edit-cmds.c
* app/pdb/floating-sel-cmds.c
* app/pdb/image-cmds.c: regenerated.
svn path=/trunk/; revision=27548
2008-11-04 12:33:09 +00:00
Michael Natterer
5b68a1d0eb
renamed gimp_item_offsets() to gimp_item_get_offset() and
...
2008-11-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.[ch]: renamed
gimp_item_offsets() to gimp_item_get_offset() and
gimp_item_set_offsets() to gimp_item_set_offset().
* app/actions/drawable-commands.c
* app/actions/layers-commands.c
* app/core/<many>.c
* app/display/gimpdisplayshell-dnd.c
* app/display/gimpdisplayshell-preview.c
* app/display/gimpdisplayshell-transform.c
* app/display/gimpdisplayshell.c
* app/paint/gimppaintcore-stroke.c
* app/paint/gimppaintcore.c
* app/paint/gimpsourcecore.c
* app/text/gimptextlayer-xcf.c
* app/tools/<many>.c
* app/widgets/gimptoolbox-dnd.c
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/drawable_transform.pdb
* tools/pdbgen/pdb/selection.pdb
* tools/pdbgen/pdb/transform_tools.pdb
* tools/pdbgen/pdb/vectors.pdb: changed accordingly.
* app/pdb/drawable-cmds.c
* app/pdb/drawable-transform-cmds.c
* app/pdb/selection-cmds.c
* app/pdb/vectors-cmds.c
* app/pdb/transform-tools-cmds.c: regenerated.
svn path=/trunk/; revision=27529
2008-11-02 23:03:29 +00:00
Michael Natterer
f7287be7b5
app/tools/gimptool.[ch] made all GimpCoords* in the tool API const.
...
2008-11-01 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.[ch]
* app/tools/tool_manager.[ch]: made all GimpCoords* in the tool
API const.
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpbrushtool.c
* app/tools/gimpbucketfilltool.c
* app/tools/gimpcolorpickertool.c
* app/tools/gimpcolortool.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpcroptool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpdodgeburntool.c
* app/tools/gimpeditselectiontool.[ch]
* app/tools/gimperasertool.c
* app/tools/gimpfliptool.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/gimpperspectiveclonetool.c
* app/tools/gimprectangleselecttool.c
* app/tools/gimprectangletool.[ch]
* app/tools/gimpregionselecttool.c
* app/tools/gimpselectiontool.[ch]
* app/tools/gimpsourcetool.c
* app/tools/gimptexttool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: changed accordingly and added const
to all GimpCoords* in utility functions too.
* app/tools/gimptexttool.c: don't modify the passed coords. In
fact, simply removed the code that did because it had no effect.
svn path=/trunk/; revision=27517
2008-11-01 15:17:36 +00:00