Event Messaging and ...



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

    On 03/11/2002 at 11:10, xxxxxxxx wrote:

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

    ---------
    Hello,
    The following are for v8 questions, latest SDK.
    How can I retrieve the ID of the parameter control the user is editing in the attribute manager of my plugin object ( I need to affect separate boundary conditions based upon which parameter is being edited ). In the Message function of the plugin object the 'MSG_DESCRIPTION_VALIDATE' and 'MSG_DESCRIPTION_CHECKUPDATE' messages are recieved. I would think the 'MSG_DESCRIPTION_COMMAND' would be received but it seems to be passed to controls that need to cause an event to be responded to ( such as the BUTTON control ). How do I retrieve the parameter control ID associated with the event for any given control?
    Is there a way in the Xpresso node object to access the object the Xpresso tag is applied to? ( within the scope of available Xpresso nodes ).
    Is there any examples on how to correctly evaluate and retrieve the object, tag, etc... a baselink points to within a Xpresso node? I can create the correct resource but cannot retrieve the actual data the BaseLink is pointing to.
    Regards,
    David Farmer - bhodiNUT



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

    On 05/11/2002 at 10:10, xxxxxxxx wrote:

    *bump*

    ok, i think i might know why darf want's this info.

    please respond to this as it's for something very cool.that would totally benefit all us c4d users.



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

    On 05/11/2002 at 10:59, xxxxxxxx wrote:

    Quote: Originally posted by darf on 03  November 2002
    >
    > * * *
    >
    > How can I retrieve the ID of the parameter control the user is editing in the attribute manager of my plugin object ( I need to affect separate boundary conditions based upon which parameter is being edited ). In the Message function of the plugin object the 'MSG_DESCRIPTION_VALIDATE' and 'MSG_DESCRIPTION_CHECKUPDATE' messages are recieved. I would think the 'MSG_DESCRIPTION_COMMAND' would be received but it seems to be passed to controls that need to cause an event to be responded to ( such as the BUTTON control ). How do I retrieve the parameter control ID associated with the event for any given control?
    Sorry, but there's currently no ID associated with a MSG_DESCRIPTION_VALIDATE or a MSG_DESCRIPTION_CHECKUPDATE message. MSG_DESCRIPTION_COMMAND is intercepted by most GUIs, except for the button.
    You probably won't be able to enforce the boundary conditions as tightly as you'd want. (A bit hard to give any advice without knowing more.)
    > Is there a way in the Xpresso node object to access the object the Xpresso tag is applied to? ( within the scope of available Xpresso nodes ).
    I guess

        
        
        static_cast<BaseTag*>(bn->GetNodeMaster()->GetOwner())->GetObject()
    

    would do this for an Xpresso tag. (Where bn is a GvNode.)
    > Is there any examples on how to correctly evaluate and retrieve the object, tag, etc... a baselink points to within a Xpresso node? I can create the correct resource but cannot retrieve the actual data the BaseLink is pointing to.
    First of all the recommended data type in Xpresso nodes is "GVGENERALOBJECT". I guess you would use GvPort::GetData() to access a BaseLink value, but I'll have to get back to you on the actual syntax.



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

    On 05/11/2002 at 12:54, xxxxxxxx wrote:

    Not being able to know which parameter has actually changed is not acceptable. I honestly believe there has to be some function to overload or some way of retrieving this ID. Almost every plugin we have ever written depends at some level on knowing which ID has been altered in order to update other parameters. This is a very serious workflow issue. I will not be letting go of it soon. So, is there someone you can ask?
    darf - bhodiNUT



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

    On 05/11/2002 at 13:33, xxxxxxxx wrote:

    Quote: Originally posted by darf on 05  November 2002
    >
    > * * *
    >
    > Not being able to know which parameter has actually changed is not acceptable. I honestly believe there has to be some function to overload or some way of retrieving this ID.
    For some parameters NodeData::SetDParameter() is called. (For your own parameters, but not for e.g. the position.) Perhaps that will help you. The ID is in id[0].



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

    On 11/11/2002 at 19:13, xxxxxxxx wrote:

    Quote: Originally posted by Mikael Sterner on 05  November 2002
    >
    > * * *
    >
    >> Quote: Originally posted by darf on 05  November 2002
    >>
    >> * * *
    >>
    >> Not being able to know which parameter has actually changed is not acceptable. I honestly believe there has to be some function to overload or some way of retrieving this ID.
    >
    > For some parameters NodeData::SetDParameter() is called. (For your own parameters, but not for e.g. the position.) Perhaps that will help you. The ID is in id[0].
    >
    > * * *
    That worked ( actually used SetParameter instead of SetDParameter, what is thhe difference? ).
    Also, did you ever get a chance to figure out how to set data using GvPort->SetData( ... ) ??? ( that is really important to us.
    Regards,    darf - bhodiNUT



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

    On 12/11/2002 at 00:12, xxxxxxxx wrote:

    Quote: Originally posted by darf on 11  November 2002
    >
    > * * *
    >
    > That worked ( actually used SetParameter instead of SetDParameter, what is thhe difference? ).
    It should be that one of them is correct (the one with "D") and the other one not. There's no virtual "SetParameter()" as far as I can see. But whatever works for you... :-)
    > Also, did you ever get a chance to figure out how to set data using GvPort->SetData( ... ) ??? ( that is really important to us.
    No, I'm still working on that.



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

    On 11/12/2002 at 19:11, xxxxxxxx wrote:

    Hello,
    I read this series of posts, but I am still having a problem. I am not as familiar with the API as darf is.
    I am trying out using a description. All I implemented so far is a filename, and it shows up fine in the attributes manager. In the examples, the plugin's data is updated in InitRender(). Like darf, I want to detect changes earlier and act upon them, including changing the parameters that appear in the attributes manager.
    I read the HTML documentation, but I still don't have a good understanding of getdparameter(), setdparameter(), and getddescription(). It sounds like I should be able to detect changes in these functions, but I don't understand the series of calls when I put breakpoints in them and set a file in the attributes manager. Could you post a code snippet? Why do you set the flags in these functions?
    Also, the documentation says to call the parent function, but the examples don't do it. When I try to add "return SUPER::GetDParameter(...);" I get an error on SUPER - it's unrecognized. What's wrong?
    Also, as far as I can tell, all the examples use description resources even if they use some dynamic aspects. Do you have an example that doesn't use description resources at all?
    Thanks,
    Jane


Log in to reply