How to use the new UserData Button?
-
On 13/10/2014 at 05:39, xxxxxxxx wrote:
Hi,
from the plugin side it could be set and used like this:
def AddUserdata(self,op) : rootGroup = c4d.GetCustomDatatypeDefault(c4d.DTYPE_GROUP) rootGroup[c4d.DESC_NAME] = "Button_Group" rootGroup[c4d.DESC_SCALEH] = False rootGroup[22] = 2 #two colums rootGroup[c4d.DESC_PARENTGROUP] = c4d.DescID(0) op.AddUserData(rootGroup) button= c4d.GetCustomDatatypeDefault(c4d.DTYPE_BUTTON) button[c4d.DESC_NAME] = "BUTTON" button[c4d.DESC_CUSTOMGUI] = c4d.CUSTOMGUI_BUTTON button[c4d.DESC_PARENTGROUP] = op.GetUserDataContainer()[0][0] UsdataDescId=op.AddUserData(button) def Message(self, node, type, data) : if type== c4d.MSG_MENUPREPARE: AddUserdata(self,node) if (type == c4d.MSG_DESCRIPTION_COMMAND) : id = data['id'][0].id if(id == 700) : print id print data print "button pressed"
Cheers,
Martin -
On 13/10/2014 at 05:52, xxxxxxxx wrote:
Hi,
Thanks for the reply.
Is there a way to get to the button in a python tag, like with other user data?I tried:
print op.GetObject()[c4d.ID_USERDATA,1]
in a python tag, but that returns None
-
On 14/10/2014 at 01:14, xxxxxxxx wrote:
unfortunatly I don´t have a solution for this.
It seem´s logical to me that op.GetObject()[c4d.ID_USERDATA,1] does´nt work.
A button message is´nt the same, as a stored ud value.It´s indeed interesting how to handle this.
Anyone?
-
On 14/10/2014 at 01:32, xxxxxxxx wrote:
+1 on the interested to use this in a scripting context.
-
On 14/10/2014 at 06:05, xxxxxxxx wrote:
I think I may have figured out where the buttons are meant to be used. The new 'Interaction tag" in R16 has a message function you can activate and I managed to get it to give me consistent numbers when using UserData button presses.
def message(id, data) : if id == 18: # Don't know why 18 yet :( for i in data['msg']: #seems to be the consistently changing thing print i[c4d.DESC_NAME] #the number stays [c](https://www.google.com/search?client=safari&rls=en&q=consistent&ie=UTF-8&oe=UTF-8)onsistent aligning with different button presses
Let me know if anyone has more light to shed.
Thanks,
Adam
-
On 15/10/2014 at 14:36, xxxxxxxx wrote:
It seems we are able to use message function in python tag now.
PythonTag with UserDataButton and following lines...import c4d #Welcome to the world of Python def message(id, data) : if id == 17: print "UserData-ID: ", data["descid"][1].id def main() : pass #put in your code here
-
On 15/10/2014 at 23:56, xxxxxxxx wrote:
Hi,
thank you both Adam and rown.
For the idea and the proper solution at the end.This works!
Best wishes
Martin -
On 16/10/2014 at 00:34, xxxxxxxx wrote:
Many thanks!
-
On 16/10/2014 at 01:47, xxxxxxxx wrote:
#define MSG_DESCRIPTION_CHECKUPDATE 17 ///< Allows elements to determine the type of refresh after a parameter has been changed in the Active manager. #define MSG_DESCRIPTION_COMMAND 18 ///< Sent by for example @em BUTTON description element. @correspondingData{DescriptionCommand}
id == 17 - rown, you simply check out dirty of gui?! But if udata is at pyTag... if udata at host op( _op.GetObject()_ ), thats question. I tried through c4dAtom.Message...freeze c4d or got shutdown
-
On 17/08/2015 at 08:48, xxxxxxxx wrote:
Just for completeness, in this thread there's now a more complete example, how to use User Data buttons in the Interaction Tag.