I'm trying to add my own color preferences and add them to the "Scheme Colors" section in the Cinema 4D preferences, similarly to what Hair does.
To do so, I successfully add and register a
PrefsDialogObject. I used a description similar to the Hair one in
prefshaircolor.h and it displays fine. The implementation is based on an earlier thread from the forum (and a bit of prior experience): https://plugincafe.maxon.net/topic/11737/default-startup-settings/4
It works pretty much fine, the preferences show up in the right place and I am able to control the colors in the list view the same way it works in all the other color preferences. I even added that "Reset..." button. The only problem is that the data in the
ListViewData element does not appear to be restored properly when Cinema 4D starts up again. I tried other data types like
Int32 and those are brought over into a new session just fine.
When looking at the
BaseContainer with my Plugins' settings I see that when I call
BaseContainer::GetData() on it, the resulting
GeData is of type
DA_MISSINGPLUG, which to me looks like Cinema 4D is somehow not able to restore the data element from the preferences. It looks a little like that might be because the
ListViewData custom datatype hasn't been registered when the preferences are restored?
However, I am assuming that the regular Cinema 4D color scheme preferences somehow store their setting and when loading the Hair preferences via
HairLibrary::GetPrefsInstance(), I see the container it returns contains elements of type
CUSTOMDATA_LISTVIEW (1018397), so it somehow must be possible to store values of that type in the preferences.
Did anybody run into similar problems before and can help me? I'm feel like I must be missing something trivial here.
Thanks in advance for any help!