Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
''' Hello PluginCafe!
I need to apply SetDirty() function only after finishing the manipulation process of the desired parameter.
Something like this is implemented in the material preview. The update takes place only after ~0.5 seconds after finishing the manipulation.
So, I tried to check updates via MSG_DESCRIPTION_CHECKUPDATE and calculate the time by utilizing timeit module
'''
start = timeit.default_timer() #Start Timer if type == c4d.MSG_DESCRIPTION_CHECKUPDATE: if data["descid"][0].id == TEST_SLIDER: #Check if TEST_SLIDERis updated end = timeit.default_timer() #End Timer if end - start > 1: #Do something if time took more than 1 sec self.bmp.SetDirty() node.SetDirty(c4d.DIRTYFLAGS_DATA)
But unfortunately, I can't find the solution in the documentation.
What am I doing wrong and how to do this properly?
Hello,
you could react to the message MSG_DESCRIPTION_USERINTERACTION_END which is sent after the user stopped interacting with the parameter in the Attribute Manager.
MSG_DESCRIPTION_USERINTERACTION_END
You find a list of related messages in the NodeData::Message() Manual.
best wishes, Sebastian
Is this feature available for Python?
Nice it works with python but how to check only one parameter instead of everything?
something like this
if type == c4d.MSG_DESCRIPTION_USERINTERACTION_END: if data["descid"][0].id == TEST_SLIDER: print "Finished"
the message MSG_DESCRIPTION_USERINTERACTION_END has no data. You could store the old value of the parameter in question and check if that value has changed.