Drag/Drop from ribbon bar button |
Post Reply |
Author | |
garyhenson
Groupie Joined: 26 September 2008 Location: Frisco, Texas Status: Offline Points: 23 |
Post Options
Thanks(0)
Posted: 11 May 2010 at 3:25pm |
That says it all. I need to drag/drop a button in a group on a ribbon bar to another control. In this case it's a third party graphing control. The part I need is how to start the drag process when User left clicks on a button in a ribbon bar and starts to drag.
I see that ribbon bars have drag start and drag drop but I don't see a mouse down to start the process.
Simple code example? (I didn't find one in my samples)
Using ActiveX v13 in a VB6 app.
As always thanks for the great support and help!
Gary Henson
|
|
Software Developer
Product: Xtreme SuitePro (ActiveX) version 13.0 Platform: Windows XP (32bit) - SP 3 Language: Visual Basic 6.0 |
|
Carlos Rocha
Groupie Joined: 11 February 2008 Location: Portugal Status: Offline Points: 92 |
Post Options
Thanks(0)
|
You can put your buttons in a gallery and check for XTP_GN_STARTDRAG in ControlNotify event. This is how I do it, as I could't find another way.
|
|
SuitePro 20.3.0
OS: Windows 10 Language: Visual Objects 2.8 |
|
garyhenson
Groupie Joined: 26 September 2008 Location: Frisco, Texas Status: Offline Points: 23 |
Post Options
Thanks(0)
|
Hmm. I'll see if I can do that, but I'm not banking on it as it would radically change the GUI look and feel.
Do you have any base code to process the dragstart/dragdrop of the button?
I'm hoping I'll get a 'just do this, dummy' response from oleg.
Right now I'm experimenting with checking for the control key or menu(alt) key to be down when the button is pressed (in the Execute event code ) to indicate that the User wants to drag drop not select. Seems kludy but may be ok for me.
Thanks for your quick response, Carlos!
|
|
Software Developer
Product: Xtreme SuitePro (ActiveX) version 13.0 Platform: Windows XP (32bit) - SP 3 Language: Visual Basic 6.0 |
|
Carlos Rocha
Groupie Joined: 11 February 2008 Location: Portugal Status: Offline Points: 92 |
Post Options
Thanks(0)
|
The GUI look is a litle different, but not that much. You still get hoover effects in the buttons.
My programming language is very different from VB, but in my ControlNotify Event I have this: if Code == XTP_GN_STARTDRAG .and. Control:Id == ID_GALLERY_OBJECTS oDesignerMenu:OLEDrag() endif Then you can process the behavior in OLEStartDrag event |
|
SuitePro 20.3.0
OS: Windows 10 Language: Visual Objects 2.8 |
|
garyhenson
Groupie Joined: 26 September 2008 Location: Frisco, Texas Status: Offline Points: 23 |
Post Options
Thanks(0)
|
My experiment failed of course since cb.Execute is not entered until you have the MouseUp event which will not happen if you try to drag off the button.
Sigh. This should not be hard.
I'll look into the Gallery idea but I'm really disappointed that the buttons do not support simple drag/drop events or give me MouseMove to play with.
Hopefully I'll hear from Oleg or someone at CJ soon about this.
Thanks again.
|
|
Software Developer
Product: Xtreme SuitePro (ActiveX) version 13.0 Platform: Windows XP (32bit) - SP 3 Language: Visual Basic 6.0 |
|
garyhenson
Groupie Joined: 26 September 2008 Location: Frisco, Texas Status: Offline Points: 23 |
Post Options
Thanks(0)
|
I may want/have to add a commandbar that has buttons or labels on it that I can drag from as well.
So I'm looking for a CJ commandbar or ribbonbar taht I can put icons/buttons on (20 or so) and the User can drag one down onto a graphing canvas object I have.
I already use the ribbonbar with groups that have buttons so I'd like to drag from the buttons as I've said before.
I'm not sure now I can even use a commandbar button to drag!!! Sheesh!
|
|
Software Developer
Product: Xtreme SuitePro (ActiveX) version 13.0 Platform: Windows XP (32bit) - SP 3 Language: Visual Basic 6.0 |
|
garyhenson
Groupie Joined: 26 September 2008 Location: Frisco, Texas Status: Offline Points: 23 |
Post Options
Thanks(0)
|
Carlos/Oleg,
I could use some code, even fake code, to implement dragging of a button in a gallery on a ribbon bar to a target control that accepts dragdrop. Whew!
I've added catching XT_GN_STARTDRAG in cbMain.ControlNotify as Carlos suggested. In cbMain.ControlNotify() is see XT_GN_STARTDRAG firing and make a call to 'cbMain.OLEDrag()'.
In cbMain_OLEStartDrag() I do this :
Data.Clear
Data.SetData "xxx", vbCFText AllowedEffects = vbDropEffectCopy I see the 'copy' effect now when I drag the button around. BUT I do not get a DragOver event or DragDrop event on my target. As I drag I see the 'copy' icon if I drag over a treeview but I do see the 'cannot drop' icon over my real target control. My real target control WILL accept drag/drop from vb buttons that are dragging.
To be clear I'm dragging a button in a gallery in a group on a ribbon bar. The form that hosts the commandbar/ribbonbar has several other forms that share the client area. One form has a treeview. The other form has a graphing control (AddFlow).
Though dragging over the treeview shows the drag 'copy' icon it doesnt get the dragdrop event if i release the mouse button even though I have DragMode = Automatic. Dragging over the graphing control gives me the 'cannot drop' icon even though the control has DragMode= Automatic.
It seems that even though I get the dragging icon of the CJ button I do not get the dragover or dragdrop events in target controls.
Any code/help would be appreciated!
Gary
|
|
Software Developer
Product: Xtreme SuitePro (ActiveX) version 13.0 Platform: Windows XP (32bit) - SP 3 Language: Visual Basic 6.0 |
|
garyhenson
Groupie Joined: 26 September 2008 Location: Frisco, Texas Status: Offline Points: 23 |
Post Options
Thanks(0)
|
OK, My bad on part of this.
If I set 'OLEDropMode' to Manual on the TreeView and the ReportControl, then I get the OLEDragOver event from dragging the CJ button in a gallery.
So it's looking like my graphing control (AddFlow) in a separate form is the problem. A treeview and a reportcontrol in panes on the same form as the commandbar/ribbonbar seems to respond to drag events.
The graph control is on a form. The handle to that form is loaded to a pane in the AttachPane() event.
So now I'm wondering if the problem is that drag/drop does not get processed on the graph form because it does not or can not recieve events from another form??
Sigh.
Any thought?
|
|
Software Developer
Product: Xtreme SuitePro (ActiveX) version 13.0 Platform: Windows XP (32bit) - SP 3 Language: Visual Basic 6.0 |
|
garyhenson
Groupie Joined: 26 September 2008 Location: Frisco, Texas Status: Offline Points: 23 |
Post Options
Thanks(0)
|
More info, still need second opinons for possible solutions.
Seems like CommandBars support OLEDragDrop but not DragDrop. The target control (AddFlow) supports DragDrop but not OLEDragDrop.
Sigh.
I'm still verifying all this but this could be a killer for me. I need to be able to tell the target control which button was dragged over the canvas.
Thanks for any help/suggestions.
Gary
|
|
Software Developer
Product: Xtreme SuitePro (ActiveX) version 13.0 Platform: Windows XP (32bit) - SP 3 Language: Visual Basic 6.0 |
|
Carlos Rocha
Groupie Joined: 11 February 2008 Location: Portugal Status: Offline Points: 92 |
Post Options
Thanks(0)
|
I can't help here. I had a similar problem that I coudn't solve, but I found a few answers from google regarding OLEDragDrop vs DragDrop at the time.
Anyway, support for both DragDrop and OLEDragDrop from CJ controls would save us, poor users, a lot of time and troubles |
|
SuitePro 20.3.0
OS: Windows 10 Language: Visual Objects 2.8 |
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |