Sorry I've been away for so long. I promised I'd talk about DragDrop, and I hadn't forgotten. I had DragDrop on my list of things to do for Pollock, and much to my surprise, it became obvious that I was going to actually get too it pretty soon, so I delayed actually writing this till I got to it.
So, this is going to be a bit of many things. It will be about the research I have done, what VisualWorks can and can't do in terms of DragDrop, and the design of DragDrop for Pollock itself. Hopefully I won't bounce around too much and you'll be able to follow along
First off, let's cover what DragDrop entails. Given you have selected something, either a bit of text in an entry field of some sort, or one or more items in some list object (be it a List Box or a TreeView or whatever) and then click and start dragging, there are two possible operations you are going to do with the selected objects, and two possible interactions with the target object.
Operations
*Copy Selected Objects To Target
*Move Selected Objects To Target
Interactions
*Drop Objects Into Target Pane
*Drop Objects Onto Something In The Target Pane
This means the following four examples can apply:
Copy/Into = Dragging A File From One Directory To Another (With Ctrl Down)
Move/Into = Dragging A File From One Directory To Another (Without Ctrl Down)
Copy/Onto = Dragging A File And Dropping It On An Executable
Move/Onto = Dragging A File And Dropping It On The Recycle Bin
Simple no? Just four things anyone has to worry about, right? ... Were it only that simple below the surface!
Now that we've laid out the general fundamentals of DragDrop from orbit, let's talk about VisualWorks and DragDrop