BFM_DRAGRECEIVE, ListView, & Cursor
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 06/03/2005 at 16:38, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8.012
Platform: Windows ; Mac ; Mac OSX ;
Language(s) : C++ ;---------
Questions stacking up! ;0)For some unknown reason, it is impossible to set the mouse pointer during drag receive operations in my GeDialog's SimpleListView object. Here's the code; what's wrong with it? Is there a different approach for the SimpleListView (that was, perhaps, never illustrated anywhere) :
LONG Message(...) { ... // Drag and Drop else if (id == BFM_DRAGRECEIVE) { Bool dropArea = CheckDropArea(IS_MATLISTVIEW, msg, TRUE, TRUE); SetDragDestination((dropArea)?MOUSE_POINT_HAND:MOUSE_FORBIDDEN); if (dropArea) { // Material drop if (msg.GetLong(BFM_DRAG_FINISHED)) { LONG type = 0; void *object = NULL; GetDragObject(msg, &type;, &object;); if (object && (type == DRAGTYPE_ATOMARRAY)) { AtomArray* array = static_cast<AtomArray*>(object); Atom *atom; type = array->GetCount(); for (LONG i = 0; i < type; i++) { if ((atom = array->GetIndex(i)) && atom->IsInstanceOf(Mmaterial)) { Material* mat = static_cast<Material*>(atom); /* // - Set Item BaseContainer data; data.SetString('name', "Empty"); matListView.SetItem(0, data); */ GePrint("Dropped: "+mat->GetName()); } } BaseContainer actionmsg(BFM_ACTION), actionresult; actionmsg.SetLong(BFM_ACTION_ID, IS_MATLISTVIEW); GeDialog::Message(actionmsg, actionresult); } } } } ... }
Yes, there is a return GeDialog::Message(...) at the end of the method.
Thanks and confused.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 06/03/2005 at 22:30, xxxxxxxx wrote:
No need to bother as I've decided on a different approach using a GetDDescription in the PluginMaterial to collect/update and pass all of the Materials to the dialog's listview. Much cleaner.
But if there is an answer, it may help others who encounter a similar situation.