[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-kimageshop
Subject:    Re: Proposal: Canvas Interaction Enhancements
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2012-05-24 18:59:23
Message-ID: CAEkBSfVchfbeeo1u45cAuKgpdy_eXXXniMv5X+hqgL2Y=OdTRg () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi!

I was thinking about this problem last yeat as well. And there are a couple
of ideas that might be interesting to you:

1) About all these "modes" of the tools like "Color Picking" and
"Shift+Drag". You need to be quite careful with them, because there are
various sequences of pressing a modifier and mouse button. For all the good
applications it is common that the mode is exited only when *the last*
component of the modifier+key is released.

For example (in e.g. Gimp):
i) Press Ctrl+Left Button and start moving the mouse
ii) Release Ctrl. You are still in the color picking mode. And the mouse
cursor is still persist.
III) Now you and press *any* modifiers as many times as you wish but you
will not leave color picking mode unless you release the mouse.

Such behavior can be described with a state machine easily. Probably, it
can be implemented in a way like that.

2) A good way to describe modes of the tools is using of
KoInteractionTool+KoInteractionStrategy. We have it but it is not commonly
used yet. It is at least used in DefaultTool and KoZoomTool.

3) We still need to handle Ko-wide tools as well.

4) Last year I proposed a design of a system like that, but I never
implemented it. It should have had a central class as well as you proposed
(KoModifiersManager).

Here is a short description of it.
http://community.kde.org/Calligra/Libs/Interactional_Tools

You can use it as a base for your system ;)



-- 
Dmitry Kazakov

[Attachment #5 (text/html)]

Hi!<br><br>I was thinking about this problem last yeat as well. And there are a \
couple of ideas that might be interesting to you:<br><br>1) About all these \
&quot;modes&quot; of the tools like &quot;Color Picking&quot; and \
&quot;Shift+Drag&quot;. You need to be quite careful with them, because there are \
various sequences of pressing a modifier and mouse button. For all the good \
applications it is common that the mode is exited only when *the last* component of \
the modifier+key is released. <br> <br>For example (in e.g. Gimp):<br>i) Press \
Ctrl+Left Button and start moving the mouse<br>ii) Release Ctrl. You are still in the \
color picking mode. And the mouse cursor is still persist.<br>III) Now you and press \
*any* modifiers as many times as you wish but you will not leave color picking mode \
unless you release the mouse. <br> <br>Such behavior can be described with a state \
machine easily. Probably, it can be implemented in a way like that.<br><br>2) A good \
way to describe modes of the tools is using of \
KoInteractionTool+KoInteractionStrategy. We have it but it is not commonly used yet. \
It is at least used in DefaultTool and KoZoomTool.<br> <br>3) We still need to handle \
Ko-wide tools as well.<br><br>4) Last year I proposed a design of a system like that, \
but I never implemented it. It should have had a central class as well as you \
proposed (KoModifiersManager).<br> <br>Here is a short description of it.<br><a \
href="http://community.kde.org/Calligra/Libs/Interactional_Tools">http://community.kde.org/Calligra/Libs/Interactional_Tools</a><br><br>You \
can use it as a base for your system ;)<br> <br><br clear="all"><br>-- <br>Dmitry \
Kazakov<br>



_______________________________________________
kimageshop mailing list
kimageshop@kde.org
https://mail.kde.org/mailman/listinfo/kimageshop


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic