[Pipet Devel] mouse buttons (was: excerpt from CHANGES)
J.W. Bizzaro
bizzaro at geoserve.net
Wed Feb 9 23:46:13 EST 2000
(I'm going to split this discussion up into several messages.)
Brad Chapman wrote:
> I have a question on this for you. I would like to add it so that
> you can also drag and drop loci from the workspace into a container
> (as opposed to out of a container onto the workspace). This would also
> allow us to drag loci between different workspaces (notice now how you
> can drag a loci out of a container into any workspace inside the main
> workspace. Pretty neat, and I didn't even have to try to do this). My
> question is, what kind of button press or button press/key stroke
> combo should I use to do this? I was thinking Shift:button1 click
> or Control:button1 click or something like that--do you have a
> preference/opinion on this?
Okay, I recognized a while back that we would have a problem with DnD. We
simply have a conflict between the way X DnD works and how my own workspace
DnD works. From my understanding, dragged objects in X 'leave' their parent
window so that they can be dropped anywhere in the X environment. However, I
already set the workspace up to allow the (nifty) dragging of loci (icons,
etc.) with connectors attached. This, my own form of DnD, is limited to the
workspace (Gnome canvas) itself AND WILL NOT EVEN WORK BETWEEN WINDOWLETS
(because each X widget is usually its own little X window, including the
canvas).
So, you can see why Brad has a problem doing DnD _from_ the workspace, _to_ a
container windowlet. When you drag a locus toward a container, you're using
my workspace DnD and not X DnD, and the locus simply won't go across the
boundary of the windowlet (enter another X window).
The obvious solution is to switch off the workspace DnD and use X DnD. This
is why Brad suggested using a combination of a key press with a mouse button
press. But I want to make DnD consistent for movement both to and from
windowlets.
I therefore propose that my own workspace DnD be controlled via mouse button 2
(middle) press, and have button 1 (left) press control X DnD. I think this is
more standard to how X applications work.
So, this is what each button should do:
BUTTON 1 (left)
===============
Event Over Results in
----- ---- ----------
Click Locus Select locus
Click Workspace Deselect all loci
(select workspace)
Press+DnD Locus X Windows DnD of locus
Press+DnD Workspace Rectilinear select
Double click Locus Open/close windowlet
Double click Workspace (nothing)
BUTTON 2 (middle)
===============
Event Over Results in
----- ---- ----------
Click Locus (nothing)
Click Workspace (nothing)
Press+DnD Locus DnD of locus, limited
to workspace
Press+DnD Workspace 'DnD' (scroll) of workspace
(see Adobe Acrobat Reader)
Double click Locus (nothing)
Double click Workspace (nothing)
BUTTON 3 (right)
===============
Event Over Results in
----- ---- ----------
Click Locus Pop-up menu
Click Workspace Pop-up menu
Press+DnD Locus (nothing)
Press+DnD Workspace (nothing)
Double click Locus (nothing)
Double click Workspace (nothing)
Now when we do a button 1 (left) X DnD of a locus within or onto the
workspace, we will need to know where (xy) it is dropped, and then the locus
(icon, etc.) and connectors will be moved there.
Also, Brad, I was planning on having custom cursors with this Gtk interface.
Look in an older loci-core module for cursor.xpm. I like the way Adobe
Acroread has the hand cursor (especially how you can 'grab' the background to
scroll it), and I want to do something like that for Loci. Newer versions of
gnome-libs will have functions for selecting custom cursors, so we can
implement this then.
Questions?
Cheers.
Jeff
--
+----------------------------------+
| J.W. Bizzaro |
| |
| http://bioinformatics.org/~jeff/ |
| |
| BIOINFORMATICS.ORG |
| The Open Lab |
| |
| http://bioinformatics.org/ |
+----------------------------------+
More information about the Pipet-Devel
mailing list