BitmapButtons

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 16/02/2003 at 09:17, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   8.012 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
I add BitmapButtons to my ObjectPlugin (as in morphmixer example). I am using a bitmapbutton in another objectplugin already (like the example Mikael once posted here in the forum), this works fine, no problems.
But when I add bitmapbuttons I never get a message of type MSG_DESCRIPTION_GETBITMAP, so there is no picture in the button.
Here is some code of my plugin:

    
    
    
    
    Bool TreelibData::GetDParameter(GeListNode* node, const DescID& id, GeData& t_data, LONG& flags)  
    { 
    
    
    
    
     BaseContainer *vdata = ((BaseObject* )node)->GetDataInstance();
    
    
    
    
      for(LONG i=0;i<vdata->GetLong(TREEGEN_IDC)+1;i+=2) 
    
    
    
    
      {  
       if(id[0].id==i)   
       {  
          
        PluginMaterial *mat = (PluginMaterial* )node;  
        LONG dirty = 0;     
        BitmapButtonStruct bbs(static_cast<PluginObject*>(node), DescID(i), dirty);   
        t_data = GeData(CUSTOMDATATYPE_BITMAPBUTTON,bbs);  //bbs overwritten...  
      
        flags |= DESCFLAGS_PARAM_GET;      
          
        }   
      }  
        
     return ObjectData::GetDParameter(node, id, t_data, flags);  
    }
    
    
    
    
    Bool TreelibData::GetDDescription(GeListNode *node, Description *description,LONG &flags)  
    {   
     if (!description || !node) return FALSE;   
     if (!description->LoadDescription(node->GetType())) return FALSE;
    
    
    
    
       [...]
    
    
    
    
        ++i;
    
    
    
    
        BaseContainer bc2 = GetCustomDataTypeDefault(DTYPE_BUTTON);
    
    
    
    
        bc2.SetLong(DESC_CUSTOMGUI,CUSTOMGUI_BITMAPBUTTON);  
        bc2.SetBool(BITMAPBUTTON_BUTTON,TRUE);  
        bc2.SetLong(BITMAPBUTTON_BORDER,1);  
        if (!description->SetParameter(DescLevel(i),bc2,DescLevel(TREEGEN_LIBRARY))) return FALSE;  
          
         }
    
    
    
    
      }  
      data->SetLong(TREEGEN_IDC,i);  
        
     }
    
    
    
    
     flags |= DESCFLAGS_PARAM_SET;
    
    
    
    
     return ObjectData::GetDDescription(node, description, flags);  
    }
    
    
    
    
    Bool TreelibData::SetDParameter(GeListNode* node, const DescID& id, const GeData& t_data, LONG& flags)  
    {   
     BaseContainer *data = ((BaseObject* )node)->GetDataInstance();  
     for(LONG i=0;i<data->GetLong(TREEGEN_IDC)+1;i+=2)  
     {  
      if(id[0].id==i)   
      {   
       flags |= DESCFLAGS_PARAM_SET;     
      }  
     }     
       
     return ObjectData::SetDParameter(node, id, t_data, flags);  
    }
    
    
    
    
    [...]
    
    
    
    
    if (type == MSG_DESCRIPTION_GETBITMAP)   
     {    
         GePrint("message");
    
    
    
    
     } 
    
    
    

There are two bitmapbuttons I am testing it with. Variable i represents the bitmapbuttons ID. So the buttons have the id 2 and 4. But as I said I never get a message. What´s wrong?
Thanks
Samir

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 16/02/2003 at 09:21, xxxxxxxx wrote:

And yes, the ids are correct, are called correctly etc. Already checked. There seems to be an error (surely my fault) that I cannot find... :\

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 16/02/2003 at 09:45, xxxxxxxx wrote:

ok, forget about it. Got it. It was the ids. *shame* :)