Object-level "Show Help" (CMD+F1) for ObjectData plugins?
-
I'm using
RegisterPluginHelpCallbackto provide context-sensitive help for myObjectDataplugins. It works when CMD+F1 is triggered on parameters in the Attribute Manager.However, I'd like to also handle help requests on the object itself — for example:
- Right-click → "Show Help" on the object icon/header in the Attribute Manager
- CMD+F1 on the object in the Object Manager
Does the help callback fire in this case (perhaps with empty group/property)? Or is there a separate mechanism — like a
message inObjectData.Message()— that I should be handling?
Current implementation (works for parameters):
def my_help_callback(opType, baseType, group, property): if opType in MY_HELP_MAP: open_help_page(MY_HELP_MAP[opType]) return True return False c4d.plugins.RegisterPluginHelpCallback(PLUGIN_ID, my_help_callback)I've checked
ObjectData.Message()for help-related messages (like MSG_DESCRIPTION_GETHELP) but haven't found a reliable trigger for object-level help.Any guidance appreciated!
Thanks & Cheers,
Lasse -
Hey @lasselauch,
Thank you for reaching out to us. I am not 100% sure that I am understanding you correctly. You basically want to hook into this menu entry, right?

That is not possible at the moment. Because what this thing does, is gather information from the description of the selected entity or the active dialog and with that data calls cinema::OpenHelpBrowser (at least the backend version of that function). This is not even a dedicated command, just a switch case within the abstracted dialog menu handling. So, this is custom built for
help.maxon.net.It would not be impossible to isolate this so that there could be either a dedicated plugin hook for this or it somehow reusing the existing
RegisterPluginHelpDelegate(the C++ variant of the Python hook you used). But that would be quite a bit of work, and you would also have to answer if that justifies the overhead of calling all hooks each time a user presses that button/menu entry (but you could also argue that the overhead ofRegisterPluginHelpDelegateis even worse).I can see the allure of "Show Help" working for third parties, but I doubt many people would use it and the current system is very Maxon centric which are not good arguments for going for this. On top of this, in theory, it would have to support both
NodeDataentities and dialogs (because the menu entry works for both). We could only support nodes, but there I would just recommend the proven and tested workflow of including a base description at the end of your nodes, which places there a bitmap icon branding that is clickable or just a button. I talked a bit in the all new Licensing Manual videos and code about this workflow.edit: An alternative could be to offer a hook into
OpenHelpBrowserbut there you probably then run into problems with dialogs as the back end function splits into two signatures (which do not exist in the frontend). Also solvable but again extra work that can hardly be justified but the few users this will have.I am not strictly against adding such hook, but I currently do not see a good cost/effect ratio unless this thread is flooded with third party developers stating otherwise.
Cheers,
Ferdinand