GetSubContainer() never called



  • On 15/07/2013 at 00:51, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R14 
    Platform:    Mac  ;  
    Language(s) :     C++  ;

    ---------
    CommandData::GetSubContainer() is never called on my registered instance. I just can't figure out
    why it is not called.

    class TagCommander : public CommandData {
      
        typedef CommandData super;
      
    public:
      
        //| CommandData Overrides
      
      
        virtual Bool Execute(BaseDocument *doc) {
            GePrint(__PRETTY_FUNCTION__);
            return super::Execute(doc);
        }
      
        virtual Bool ExecuteSubID(BaseDocument *doc, LONG subid) {
            GePrint(__PRETTY_FUNCTION__);
            return super::ExecuteSubID(doc, subid);
        }
      
        virtual Bool ExecuteOptionID(BaseDocument *doc, LONG plugid, LONG subid) {
            GePrint(__PRETTY_FUNCTION__);
            return super::ExecuteOptionID(doc, plugid, subid);
        }
      
        virtual LONG GetState(BaseDocument *doc) {
            GePrint(__PRETTY_FUNCTION__);
            return super::GetState(doc);
        }
      
        virtual Bool GetSubContainer(BaseDocument *doc, BaseContainer &submenu) {
            GePrint(__PRETTY_FUNCTION__);
            return super::GetSubContainer(doc, submenu);
        }
      
        virtual Bool RestoreLayout(void *secret) {
            GePrint(__PRETTY_FUNCTION__);
            return super::RestoreLayout(secret);
        }
      
        virtual String GetScriptName(void) {
            GePrint(__PRETTY_FUNCTION__);
            return super::GetScriptName();
        }
      
        virtual Bool Message(LONG type, void *data) {
            GePrint(__PRETTY_FUNCTION__);
            return super::Message(type, data);
        }
      
    };
    
    virtual Bool TagCommander::Message(LONG, void * )
    virtual String TagCommander::GetScriptName()
    virtual LONG TagCommander::GetState(BaseDocument * )
    virtual Bool TagCommander::Message(LONG, void * )
    // Bunch of them ...
      
    virtual Bool TagCommander::Execute(BaseDocument * )
    virtual LONG TagCommander::GetState(BaseDocument * )
    virtual Bool TagCommander::Message(LONG, void * )
    // Bunch of them...
      
    virtual Bool TagCommander::ExecuteOptionID(BaseDocument *, LONG, LONG)
    

    I tried various PLUGINFLAG_COMMAND_ combinations, none worked. Does someone happen to
    know what I might be doing wrong?

    Thanks,
    -Nik



  • On 15/07/2013 at 03:57, xxxxxxxx wrote:

    I just figured this is an OSX problem. The exact same code compiles fine and actually works , meaning
    GetSubContainer() is called, on Windows. I'll file a bug report.


Log in to reply