Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    CustomData and GUI Messaging

    SDK Help
    0
    6
    545
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

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

      On 24/08/2004 at 15:30, xxxxxxxx wrote:

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

      ---------
      I need to do something very similar to the BUTTOM custom gui. I need to retrieve from the parent of the parameter some bitmaps that the parent is responsible for making ( like the bitmap returned from Message for BUTTON ). How do I initiate the Message to the parent?

      Best Regards,
      darf

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

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

        On 28/08/2004 at 00:32, xxxxxxxx wrote:

        The bitmap button custom GUI (I assume that's what you mean) does it like this:
        1. When you set the data for the bitmap button with a BitmapButtonStruct, a pointer to the object is included.
        2. Then this object pointer is used to send a standard base list message, MSG_DESCRIPTION_GETBITMAP.
        It wouldn't be possible to do this without step 1 since a custom GUI isn't restricted to the attributes manager; it can just as well be used in a standalone dialog when there's no parent object.
        Here's a short review of the relevant code snippets:

            
            
            class iBitmapButtonCustomGui : public iBaseCustomGui  
            {  
              ...  
              pObj;  
              ...  
            };  
              
            Bool iBitmapButtonCustomGui::SetData(const TriState<GeData> &tristate)  
            {  
              const BitmapButtonStruct *ll =   
                static_cast<const BitmapButtonStruct*>(   
                  tristate.GetValue().GetCustomDataType(CUSTOMDATATYPE_BITMAPBUTTON));  
              if (ll)  
              {  
                pObj=ll->op;  
                ...  
              }  
              ...  
              InitValues();  
              return TRUE;  
            }  
              
            Bool iBitmapButtonCustomGui::InitValues(void)  
            {  
              if (pObj)  
              {  
                ...  
                pObj->Message(MSG_DESCRIPTION_GETBITMAP,&rts);  
                ...  
              }  
              return TRUE;  
            }  
              
            Bool iBitmapButtonCustomGui::Command(LONG id,const BaseContainer &msg)  
            {  
              switch (id)  
              {  
              case 1000:  
                {  
                  BaseContainer m(msg);  
                  m.SetLong(BFM_ACTION_ID,GetId());  
                  SendParentMessage(m);  
                  break;  
                }  
              ...  
              }  
              ...  
              return iCustomGui::Command(id,msg);  
            }  
              
            Bool HostObjectData::GetDParameter(GeListNode *node, const DescID &id, GeData &t_data, LONG &flags)   
            {  
              switch(id[0].id)   
              {   
              ...  
              case BITMAP_BUTTON_ID:   
                {  
                  LONG dirty = 0;  
                  BitmapButtonStruct bbs = BitmapButtonStruct(static_cast<PluginObject*>(node), id, dirty);   
                  t_data = GeData(CUSTOMDATATYPE_BITMAPBUTTON,bbs);   
                  flags |= DESCFLAGS_PARAM_GET;   
                  break;   
                }  
              }  
              return ObjectData::GetDParameter(node, id, t_data, flags);   
            }
        
        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

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

          On 29/08/2004 at 07:16, xxxxxxxx wrote:

          Thank you!

          Regards,
          darf

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

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

            On 29/08/2004 at 15:10, xxxxxxxx wrote:

            In the HostObjectData::GetDParameter you allocate a new custom data. Should we be freeing the one that was previously there or does C4D do that internally?

            Regards,
            darf

            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

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

              On 29/08/2004 at 23:16, xxxxxxxx wrote:

              No, that is automatic. (In fact, since there's no non-automatic allocation, i.e. raw new/delete, in the above function, just temporaries and operator=, it's all just C++ memory management.)

              1 Reply Last reply Reply Quote 0
              • H
                Helper
                last edited by

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

                On 13/09/2004 at 12:02, xxxxxxxx wrote:

                f**king Brilliant.

                Happy.
                darf

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post