On 17/09/2015 at 15:28, xxxxxxxx wrote:
Is it possible to access a button on a dialog from within a python script?
I have a script controlling the cache object from the X-particles plugin. At one point in the script, I need to click a button on the attributes panel, which I do with
c4d.CallButton(cache, c4d.XOCA_CACHE_FILL)
This calls up a dialog with several buttons. I can then click any of the buttons with a mouse click manually and the script will resume, but I am wondering if I can access and "click" one of the second set of buttons via python (the Overwrite button).
I found the string names for the buttons here:
// C4D-DialogResource
DIALOGSTRINGS IDD_CACHEBUILD
{
IDS_BUTTON "Overwrite";
IDS_BUTTON1 "New Cache";
IDS_BUTTON2 "Cancel";
IDS_DIALOG "Build Cache";
IDS_STATIC "A cache already exists on one or more of the objects.";
IDS_STATIC1 "Group";
IDS_STATIC2 "Click 'Overwrite' to overwrite the existing cache, 'New Cache' to create a new cache,";
IDS_STATIC3 "";
IDS_STATIC4 "or 'Cancel' to cancel the operation.";
IDS_STATIC5 "Group";
}
And found the res file here:
// C4D-DialogResource
DIALOG IDD_CACHEBUILD
{
NAME IDS_DIALOG; CENTER_V; CENTER_H;
GROUP IDC_STATIC
{
NAME IDS_STATIC1; ALIGN_TOP; SCALE_H;
BORDERSTYLE BORDER_NONE; BORDERSIZE 4, 4, 4, 0;
COLUMNS 1;
STATICTEXT IDC_STATIC { NAME IDS_STATIC; CENTER_V; ALIGN_LEFT; }
STATICTEXT IDC_STATIC { NAME IDS_STATIC3; CENTER_V; ALIGN_LEFT; }
STATICTEXT IDC_STATIC { NAME IDS_STATIC2; CENTER_V; ALIGN_LEFT; }
STATICTEXT IDC_STATIC { NAME IDS_STATIC4; CENTER_V; ALIGN_LEFT; }
GROUP IDC_STATIC
{
NAME IDS_STATIC5; ALIGN_TOP; CENTER_H;
BORDERSTYLE BORDER_NONE; BORDERSIZE 0, 16, 0, 0;
COLUMNS 3;
BUTTON IDC_OVERWRITECACHE { NAME IDS_BUTTON; ALIGN_TOP; ALIGN_LEFT; }
BUTTON IDC_NEWCACHE { NAME IDS_BUTTON1; ALIGN_TOP; ALIGN_LEFT; }
BUTTON IDC_CANCELCACHE { NAME IDS_BUTTON2; ALIGN_TOP; ALIGN_LEFT; }
}
}
}
But I am not sure how to test for and access the dialog IDD_CACHEBUILD (or if it is even possible due to threading or some other issue) and how to use this information.
Thanks for any help and comments.