THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 29/04/2004 at 21:33, xxxxxxxx wrote:
Cinema 4D Version: 8.503
Platform: Windows ; Mac OSX ;
Language(s) : C++ ;
I would like to be able to add CustomGUI subdialogs to my async dialog. How would I go about amking this happen?
darf - coreaudiovisual, cidertank
On 01/05/2004 at 17:26, xxxxxxxx wrote:
Could you clarify what you mean? I'm sort of confused by these pairs: "CustomGUI" vs. "SubDialog", "Async dialog" vs. "Description".
On 01/05/2004 at 20:15, xxxxxxxx wrote:
It seems that each parameter has at minimum a GUI and then they can have custom GUIs on top of that. For instance, let's say I wanted to display a spline GUI in an async dialog for editing. How would I go about adding the GUI from the parameter description where the events would be handled by the parameter GUI? Does that make better sense?
On 03/05/2004 at 19:42, xxxxxxxx wrote:
So you mean that the user would double click your small spline GUI in the Attributes Manager, then a new dialog (async) would open where the user could edit the spline?
The main problem with this is that from a CustomGUI you don't know where it's used. I.e. you wouldn't know if your GUI is used in the Attributes Manager, and for which element in that case, or in another dialog alltogether.
I guess it could be possible with some hacks, but you'd have to be working against the system to make it work. It might be easier if you stick to non-async dialogs, i.e. just opening a bigger window to edit the spline.
Am I right in assuming that you already know how to create a custom GUI (CustomGUIData etc.) for Attributes Manager elements? Or would that be the first step?
Btw, Description::CreateDialog() has nothing to do with this. (It's a private function.)
On 04/05/2004 at 05:17, xxxxxxxx wrote:
I am not sure you know what I am trying to achieve. I basically want to create my own AM that only shows the parameters I want to display. I assume the CreateDialog is what I would use to add a parameter GUI to my async dialog.?
Thanks for being patient.
On 04/05/2004 at 05:28, xxxxxxxx wrote:
Ok, that's a different story. If I understand what you want, then ActiveObject.cpp in the SDK project should contain an example. It's just a matter of adding a CUSTOMGUI_DESCRIPTION/DescriptionCustomGui to the dialog.
On 04/05/2004 at 10:28, xxxxxxxx wrote:
Well, I think we are closer. My issue with the ActiveObject example is that it shows all parameters ( defined by the parameter visibility in the description ) for the object. If there are multiple objects it only shows the parameters the obvejcts have in common. In my situation I am trying to create a tree view where I can dynamically change what parameters are shown and editable ( think a global scene AM that only shows the parameters I want ). Right now I have to create a NULL with all of the user data parameters and then tie them in using an Xpresso Tag to there counterparts in the scene ( yes, I could use drivers ). When we are crunched for time and I am designing ( rigging ) scenes for multiple artists this doesn't play well as it is impossible ( as far as I know ) to show and hide the parameters I want the other designers to see without removing them. Think the global parameter control panel with extras that I want to create ( like secondary float parsed functions for scaling, etc... ). Making more sense? Thanks for the patients.
On 06/05/2004 at 11:16, xxxxxxxx wrote:
Did it not make sense?
On 06/05/2004 at 17:33, xxxxxxxx wrote:
To me it sounds like the easiest way to do this would be to create a custom NodeData class as a wrapper for whatever description elements you need and then insert this into your DescriptionGUI. Then you would have full control. Basically you would pass along any calls to Set/GetDParameter() to Set/GetParameter() etc.
I guess it would be easier to keep the configuration of what parameters to show separate from the DescriptionGUI, since you don't really have much control of that window. (For example, drag-n-drop isn't possible.)
On 07/05/2004 at 05:47, xxxxxxxx wrote:
So... ( tying to follow along here, no I am the one who is behind.. )
Take any objects that I want to deal with and wrap them in a custom NodeData class. Copy over the description elements I want to keep. I lose you with the insert into DescriptionGUI.?
On 07/05/2004 at 07:50, xxxxxxxx wrote:
Sorry, I could have been more explicit. You would create a NodeData class, register it, create an instance of it, then activate it using DescriptionCustomGUI::SetObject() with DESCRIPTION_OBJECTSNOTINDOC
set, and possibly DESCRIPTION_SHOWTITLE false. You wouldn't actually be copying any description elements, just passing along the calls. I think that's the easiest way of truely tayloring the Attributes Manager GUI for your own purposes. (At least it sounds good in theory, there might be a catch or two in there.)