Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Recent
    • Tags
    • Users
    • Login

    Browser Plugin

    Scheduled Pinned Locked Moved SDK Help
    2 Posts 0 Posters 319 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 04/02/2011 at 18:26, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   12 
      Platform:   Windows  ;   
      Language(s) :     C++  ;

      ---------
      Hey everyone.

      I am in the process of trying to write a Browser Plugin and I was able to finally get a working skeleton to work with .  So I thought I'd share this skeleton with you in case anyone out there needs to make a browser plugin.

        
      //=====================================//  
      //    PLANET X GENERATOR v. 2.0          //  
      //  (c) Copyright 2011 - Shawn Foster  //  
      //  pxgbrowserplugin.cpp               //  
      //=====================================//  
        
      //BROWSER INTERFACE PLUGIN  
        
      #include "c4d.h"  
      #include "c4d_symbols.h"  
      #include "lib_browser.h"  
      #include "ge_dynamicarray.h"  
        
      //PLUGIN ID  
      #define PXG_BROWSER_PLUGIN [REMOVED ID NUMBER]  
        
      class PXGBrowserPlugin : public SDKBrowserPluginInterfaceInfo{  
        
      public:  
       // SDKBrowserPluginInterfaceInfo(void);  
       // SDKBrowserPluginRef GetPlugin(void) const;  
        
        virtual LONG GetPluginID(String* plugin_name);  
        virtual Bool Identify(const SDKBrowserURL& url, UCHAR* probe, LONG size, ULONG flags);  
        virtual String GetTypeName(const SDKBrowserContentNodeRef node, const SDKBrowserURL* url, LONG mode);  
        virtual String* GetTypeNames(LONG mode, LONG* no_strings);  
        
        virtual SDKBrowserPreviewData* OpenPreviewBitmap(BaseThread* thread, const SDKBrowserContentNodeRef node, const SDKBrowserURL* url, SDKBrowserPreviewInfo* info);  
        virtual void ClosePreviewBitmap(SDKBrowserPreviewData* data);  
        virtual BaseBitmap* GetPreviewBitmap(SDKBrowserPreviewData* data, LONG w, LONG h, LONG quality);  
        
        virtual SDKBrowserIcon* GetIcon(const SDKBrowserURL& url, LONG pref_wh);  
        
        virtual SubDialog* OpenPreviewDialog(SDKBrowserContentNodeRef node, LONG tab_id);  
        virtual LONG ClosePreviewDialog(SDKBrowserContentNodeRef node, SubDialog* s);  
        virtual Bool Open(SDKBrowserContentNodeRef node, const SDKBrowserURL* url, LONG flags);  
        virtual LONG UpdatePreviewDialog( SDKBrowserContentNodeRef node, SubDialog *s );  
      };  
      /*  
      void PXGBrowserPlugin::SDKBrowserPluginInterfaceInfo(){  
        
      }  
        
      void PXGBrowserPlugin::SDKBrowserPluginRef GetPlugin() const{  
        
      }*/  
        
      LONG PXGBrowserPlugin::GetPluginID(String* plugin_name){  
          
        return NULL;  
      }  
        
      Bool PXGBrowserPlugin::Identify(const SDKBrowserURL& url, UCHAR* probe, LONG size, ULONG flags){  
        
        return TRUE;  
      }  
        
      String PXGBrowserPlugin::GetTypeName(const SDKBrowserContentNodeRef node, const SDKBrowserURL* url, LONG mode){  
        
        String test = "test";  
        
        return test;  
        
      }  
        
      String* PXGBrowserPlugin::GetTypeNames(LONG mode, LONG* no_strings){  
        
        String *test = (String* ) GeAlloc (sizeof(String)*33);   
        
        return test;  
      }  
        
      SDKBrowserPreviewData* PXGBrowserPlugin::OpenPreviewBitmap(BaseThread* thread, const SDKBrowserContentNodeRef node, const SDKBrowserURL* url, SDKBrowserPreviewInfo* info){  
        
        SDKBrowserPreviewData* pd;  
        
        return pd;  
      }  
        
        
      void PXGBrowserPlugin::ClosePreviewBitmap(SDKBrowserPreviewData* data){  
        
      }  
        
      BaseBitmap* PXGBrowserPlugin::GetPreviewBitmap(SDKBrowserPreviewData* data, LONG w, LONG h, LONG quality){  
        
        AutoAlloc<BaseBitmap> bmap;  
        return bmap;  
      }  
        
      SDKBrowserIcon* PXGBrowserPlugin::GetIcon(const SDKBrowserURL& url, LONG pref_wh){  
        
        SDKBrowserIcon *ico;  
        return ico;  
      }  
        
      SubDialog* PXGBrowserPlugin::OpenPreviewDialog(SDKBrowserContentNodeRef node, LONG tab_id){  
          
        SubDialog* sd;  
        return sd;  
      }  
        
      LONG PXGBrowserPlugin::ClosePreviewDialog(SDKBrowserContentNodeRef node, SubDialog* s){  
        
        return NULL;  
      }  
        
      Bool PXGBrowserPlugin::Open(SDKBrowserContentNodeRef node, const SDKBrowserURL* url, LONG flags){  
        
        return TRUE;  
      }  
        
      LONG PXGBrowserPlugin::UpdatePreviewDialog( SDKBrowserContentNodeRef node, SubDialog *s ){  
        return NULL;  
      }  
        
      Bool RegisterPXGBrowserPlugin(void)  
      {  
        return SDKBrowser::RegisterBrowserPlugin(gNew PXGBrowserPlugin, 0);  
      }  
        
      

      You would of course need to change the class name and all the classes before the methods but this will hopefully help some of you with the process.

      Enjoy!

      ~Shawn

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 05/02/2011 at 08:43, xxxxxxxx wrote:

        Thanks, mate! 🙂

        1 Reply Last reply Reply Quote 0
        • First post
          Last post