proposal for better status bar messages (long)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here is a proposal for improving the messages that are shown in the
status bar.  Such messages would be very useful for describing some
hidden features of the paint tools (bug #124040) but also for the
other tools.

Basically, I followed this approach: anything that causes a tool to
change its behavior (clicking, dragging or using some modifiers such
as Ctrl and Shift) should be displayed or suggested in the status bar.
Simon has already done that for the path/vector tool and I would like
to apply that to all tools.

Some of these different modes are already triggering changes in the
cursor.  However, this is not sufficient because some people may not
see these different cursors and because the status bar messages are
better for suggesting what modifiers could also be used.  I consider
the status bar messages to be a useful complement to these cursors.

Note that these messages have to be short enough to fit in the status
bar.  They may not always fit if the image window is very narrow, but
then the user who wants to read the messages can resize the window.
The goal is to make the messages reasonably short so that they are
entirely visible as often as possible.  The suggestion to use some
modifiers and the optional description of what these modifiers will do
is put at the end of the message so that the essential parts are more
likely to be visible.

Also, some tools allow their mode to be changed permanently via the
tool options and toggled temporarily via a modifier.  For example,
toggling between horizontal and vertical modes for the flip tool.  A
change in the tool option reverses the meaning of the modifier.  The
messages below suggesting "(try Shift)" or "(try Ctrl)" should
probably be built dynamically depending on whether modifiers are
pressed rather than depending on the mode of the tool (tool->op).

And finally, most tools only consider the state of the modifiers
before the first click for deciding to change their mode.  This is the
case for most selection tools (Shift/Ctrl for add/subtract/intersect),
transform tools, zoom tool, etc.  But there are some exceptions, such
as siox and iscissors that only consider the modifiers after the area
is defined.  This has been discussed here a few days ago for the new
selection tools.  Below, I assume that the old behavior (modifiers
considered only when starting) is the correct one because this is the
one that brings the best consistency accross all tools.  If you want
to discuss this, please start a separate thread (new subject).

PATH TOOL (app/tools/gimpvectortool.c)
--------------------------------------
Most messages would remain unchanged, except that "SHIFT" would be
replaced by "Shift".  For reference, here are the messages currently
used, with the updated capitalization:
    "Click to pick path to edit."
    "Click to create a new path."
    "Click to create a new component of the path."
    "Click to create a new anchor. (try Shift)"
    "Click-Drag to move the anchor around."
    "Click-Drag to move the anchors around."
    "Click-Drag to move the handle around. (try Shift)"
    "Click-Drag to move the anchors around."
    "Click-Drag to change the shape of the curve. (Shift: symmetrical)"
    "Click-Drag to move the component around. (try Shift)"
    "Click-Drag to move the path around."
    "Click to insert an anchor on the path. (try Shift)"
    "Click to delete this anchor."
    "Click to connect this anchor with the selected endpoint."
    "Click to open up the path."
    "Click to make this node angular."

PAINT TOOLS (app/tools/gimppainttool.c)
---------------------------------------
- When nothing has been drawn yet:
    "Click to paint, or press Ctrl to pick a color."
- After the first brush stroke:
    "Press Shift to draw a straight line. (try Ctrl to pick a color)"
- While drawing a line (Shift pressed):
    "<distance> Click to draw the line, try Ctrl for constrained angles."
- While drawing a constrained line (Shift+Ctrl pressed):
    "<distance> Click to draw the line."
- While picking a color (Ctrl pressed):
    "Click in any image to pick the foreground color."
In these messages, <distance> is the distance shown as number followed
by the current unit.  For example, "123.4 pixels" or "0.1234 m".

Tools such as the eraser, convolve and smudge tools can also use these
common messages, with some exceptions explained in their own sections
below.  It would be better to replace the verb "draw" by the appropriate
action for the tool, if this is possible (I didn't check).  For example:
"Press Shift to erase a straight line."

COLOR PICKER (app/tools/colorpickertool.c)
------------------------------------------
- While picking the foreground color:
    "Click in any image to pick the foreground color. (try Ctrl, Shift)"
- While picking the background color:
    "Click in any image to pick the background color. (try Shift)"
As mentioned above, the "try" messages would be different if the mode
is changed permanently in the tool options (opposite meaning for Ctrl).

RECTANGLE SELECTION (app/tools/gimpselectiontool.c, gimprectangletool.c)
------------------------------------------------------------------------
Some of the current status bar messages are defined in
libgimpbase/gimpbaseenums.c.  These messages are OK to describe the
undo steps or for PDB help texts, but better messages should be
used for the status bar messages.

- While nothing is selected:
    "Click-Drag to replace the current selection. (try Shift, Ctrl)"
- While nothing is selected and Shift is pressed:
    "Click-Drag to add to the current selection. (try Ctrl)"
- While nothing is selected and Ctrl is pressed:
    "Click-Drag to subtract from the current selection. (try Shift)"
- While nothing is selected and Shift+Ctrl are pressed:
    "Click-Drag to intersect with the current selection."
- While dragging the rectangle to define the selection:
    "Rectangle: dX x dY"
    (I really miss the easy toggle for perfect square/circle and
     would enjoy being able to add " (try Shift for square)")
- Once the rectangle has been defined, mouse outside the shape:
    "Click-Drag to define a new selection. (try Shift, Ctrl)"
    (plus the same messages as above for Shift, Ctrl and Shift+Ctrl)
- Once the rectangle has been defined, mouse inside the shape:
    "Click-Drag to move the selection. (try Shift, Ctrl)"
    (plus the same messages as above for Shift, Ctrl and Shift+Ctrl)
- Once the rectangle has been defined, mouse over the edges:
    "Click-Drag to modify the selection. (try Shift, Ctrl)"
    (plus the same messages as above for Shift, Ctrl and Shift+Ctrl)
It would be worth adding "Press Enter to confirm" or something like
that to these messages, but they are already a bit long.  Suggestions
for better wording are welcome.

Also, I guess that it will take a while for people to discover how to
move the selected contents (cut/paste or copy/paste) if they are used
to the old tools, but I do not think that it is worth a hint in the
status bar.  Anyway, once they figure it out and get a floating
selection, the following messages can be displayed:
- While the mouse is inside a floating selection:
    "Click-Drag to move the selected pixels."
- While the mouse is outside a floating selection:
    "Click to anchor the floating selection."

FUZZY SELECT (app/tools/gimpfuzzyselecttool.c)
----------------------------------------------
- While nothing is selected:
    "Click or Click-Drag to replace the current selection (try Shift, Ctrl)."
- While nothing is selected and Shift is pressed:
    "Click or Click-Drag to add to the current selection (try Ctrl)."
- While nothing is selected and Ctrl is pressed:
    "Click or Click-Drag to subtract from the current selection (try Shift)."
- While nothing is selected and Shift+Ctrl are pressed:
    "Click or Click-Drag to intersect with the current selection."
- While dragging to change the threshold:
    "Move the mouse to change threshold."
    (Maybe we could say "temporarily change the threshold"?)

INTELLIGENT SCISSORS (app/tools/gimpiscissorstool.c)
----------------------------------------------------
Note: this selection tool is different from the other ones because it
ignores the initial state of the Shift+Ctrl modifiers for replace/
add/subtract/intersect and only considers them when the shape has been
closed and converted to a real selection (bug #345541).  It also has a
minor problem showing the correct cursor state for the terminal points
(bug #132352).  These bugs would prevent useful status bar messages
from being shown, so here I assume that these bugs are fixed and
iscissors behaves as the other selection tools.

- While no point has been defined:
    "Click to replace the current selection (try Shift, Ctrl)."
- While no point has been defined and Shift is pressed:
    "Click to add to the current selection (try Ctrl)."
- While no point has been defined and Ctrl is pressed:
    "Click to subtract from the current selection (try Shift)."
- While no point has been defined and Shift+Ctrl are pressed:
    "Click to intersect with the current selection."
- Once at least one point has been defined, mouse over a point:
    "Click-Drag to move the point around."
- Once at least one point has been defined, mouse not over a point:
    "Click to create a new point."
- Once at least two points have been defined, mouse over the inital point:
    "Click to close the shape."
- Once the shape has been closed, mouse over a point:
    "Click-Drag to move the point around."
- Once the shape has been closed, mouse inside the shape:
    "Click or press Enter to convert this shape into a selection."
- Once the shape has been closed, mouse inside the shape:
    "Press Enter to convert this shape into a selection."

ZOOM TOOL (app/tools/gimpmagnifytool.c)
---------------------------------------
- While no button or modifier has been pressed:
    "Click or Click-Drag to zoom in. (try Ctrl)"
- While Ctrl is pressed:
    "Click or Click-Drag to zoom out."
- While dragging:
    "Move the mouse to define the new visible area."
    (I am not sure about what to say if Ctrl was pressed. Suggestions?)

ROTATE TOOL (app/tools/gimprotatetool.c)
----------------------------------------
- While no button or modifier has been pressed:
    "Click-Drag to rotate. (try Ctrl for 15d angles)"
    (I think that it would be better to say _what_ will be rotated so
    that the user is not surprised: "Click-Drag to rotate the mask".
    However, this would require different messages for layers, masks,
    selections, channels, paths, etc.)
- If Ctrl has been pressed:
    "Click-Drag to rotate with 15d angles."
- While the mouse is over the rotation center:
    "Click-Drag to move the rotation center."

SCALE TOOL (app/tools/gimpscaletool.c)
--------------------------------------
- While no button or modifier has been pressed:
    "Click-Drag to scale. (try Ctrl to keep aspect ratio)"
    (Again, it would be better to say what will be transformed)
- If Ctrl has been pressed:
    "Click-Drag to rotate with constant aspect ratio."

SHEAR TOOL (app/tools/gimpsheartool.c)
--------------------------------------
- Default:
    "Click-Drag to shear."
    (Again, it would be better to say what will be transformed)

PERSPECTIVE TOOL (app/tools/gimpperspectivetool.c)
--------------------------------------------------
- Default (there should be a modifier for forward/backward modes):
    "Click-Drag to define perspective."
- While the mouse is over one of the handles:
    "Click-Drag to move this handle around."
    (Or maybe better: "Click-Drag to move the top left handle around."
    and similar messages for the other 3 handles.)
- While the mouse is over the center point:
    "Click-Drag to move the whole perspective area."

FLIP TOOL (app/tools/gimpfliptool.c)
------------------------------------
- Default:
    "Click to flip horizontally. (try Ctrl for vertically)"
- While Ctrl is pressed:
    "Click to flip vertically."
As mentioned above, the messages would be different if the mode is
changed permanently in the tool options (opposite meaning for Ctrl).

TEXT TOOL (app/tools/gimptexttool.c)
------------------------------------
Nothing special.

BUCKET FILL TOOL (app/tools/gimpbucketfilltool.c)
-------------------------------------------------
- Default:
    "Click to fill area with foreground color. (try Shift, Ctrl)"
- While Shift is pressed:
    "Click to fill selection with foreground color. (try Ctrl)"
- While Ctrl is pressed:
    "Click to fill area with background color. (try Shift)"
- While Shift and Ctrl are pressed:
    "Click to fill selection with background color."
- If a pattern fill is selected:
    "Click to fill area with pattern. (try Shift)"
- If a pattern fill is selected and Shift pressed:
    "Click to fill selection with pattern. (try Shift)"
See also the comment above about modes changed in the tool options
(fg/bg/pattern fills).  The "(try Shift/Ctrl)" parts should be added
only if the corresponding modifiers are not pressed.

BLEND TOOL (app/tools/gimpblendtool.c)
--------------------------------------
Nothing special.

ERASER TOOL (app/tools/gimperasertool.c)
----------------------------------------
Same as paint tools.  Although it also supports Alt as a modifier, I
don't think that it should be suggested in the status bar (anti-erase
is evil).

CLONE TOOL (app/tools/gimpclonetool.c)
--------------------------------------
Same as paint tools, except when the source has not been defined yet:
    "Ctrl-Click to select a clone source."

BLUR/SHARPEN TOOL (app/tools/gimpconvolvetool.c)
------------------------------------------------
Same as paint tools, except before the first stroke:
    "Click to blur. (try Ctrl to sharpen)"
- If Ctrl is pressed:
    "Click to sharpen."
Note also that pressing Ctrl before or after Shift produces different
results: Ctrl before Shift sharpens in a straight line, while Shift
before Ctrl blurs in a line constrained to 15 degrees angles (see bug
#120973).

SMUDGE TOOL (app/tools/gimpsmudgetool.c)
----------------------------------------
Same as paint tools.

DODGE/BURN TOOL (app/tools/gimpdodgeburntool.c)
-----------------------------------------------
Same as paint tools, except before the first stroke:
    "Click to dodge (underexpose). (try Ctrl to burn)"
- If Ctrl is pressed:
    "Click to burn (overexpose)."
I'm not sure about which one is over/under-expose.  I found some
definitions that seem to be exactly the opposite of what GIMP does.
Can anyone provide a reliable definition of dodge and burn?
Like the convolve tool, this one is affected by the conflicting
modifiers: Ctrl before or after Shift (bug #120973).

FOREGROUND EXTRACTION TOOL (app/tools/gimpforegroundselecttool.c)
-----------------------------------------------------------------
The current messages are fine, except that I they should suggest to
use Shift or Ctrl to add/subtract/intersect selections.  Something
like "(try Shift+Enter, Ctrl+Enter)" could be useful and "accept the
selection" would be replaced by the appropriate action.  However, for
greater consistency with other tools I think that it would be better
to consider the state of the modifiers _before_ the first click
instead of when pressing Enter.

For reference, here are the current messages:
- Before the mask is defined:
   "Draw a rough circle around the object to extract"
- Once a mask has been defined, before the first foregound stroke:
   "Mark foreground by painting on the object to extract"
- After the first stroke:
   "Add more strokes or press Enter to accept the selection"

Phew!  That was a long message.  Please quote only the relevant parts
if you reply.  And no need to CC me, since I am on the list.

-Raphael
_______________________________________________
Gimp-developer mailing list
Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer

[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux