Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware 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
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Dialog Question

    SDK Help
    0
    19
    1.2k
    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
      Helper
      last edited by

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

      On 12/01/2011 at 19:43, xxxxxxxx wrote:

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

      ---------
      okay.. so if you go in to c4d add a sky object.. not a blank sky object, the AR sky object... then click on the BASIC tab and then click LOAD PRESET,  how can I create that type of dialog box?  The one that shows all of the sky presets as images?  How can I accomplish this type of dialog?

      Thanks,

      ~Shawn

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

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

        On 12/01/2011 at 22:43, xxxxxxxx wrote:

        Not sure if you can exactly mimic it but you can set up each preset from an image as a BitmapButton.  A basic way to do this is in CreateLayout() (or method called from there) using something like this:

        // BitMap Button  
        BaseContainer    thumb_bc;  
        thumb_bc.SetLong(DESC_CUSTOMGUI,                    CUSTOMGUI_BITMAPBUTTON);  
        thumb_bc.SetLong(BITMAPBUTTON_BORDER,                BORDER_IN);  
        thumb_bc.SetBool(BITMAPBUTTON_BUTTON,                TRUE);  
        thumb_bc.SetBool(BITMAPBUTTON_TOGGLE,                FALSE);  
        thumb_bc.SetBool(BITMAPBUTTON_DRAWPOPUPBUTTON,        FALSE);  
        BitmapButtonCustomGui*    bmbutton =    (BitmapButtonCustomGui* )AddCustomGui(id,CUSTOMGUI_BITMAPBUTTON,String(),BFH_CENTER|BFV_CENTER,SizePix(64L),SizePix(64L),thumb_bc);  
        if (!bmbutton) return FALSE;  
        // bm = BaseBitmap* to loaded image  
        bmbutton->SetImage(bm, TRUE, FALSE);
        
        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

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

          On 13/01/2011 at 03:18, xxxxxxxx wrote:

          Yes, that's exactly what I do in my sIBL Loader plugin, which shows a variable number of presets depending on which collection of presets the user has chosen. I add the required number of BitmapButton elements to a ListView so the display of presets can be scrolled within the dialog if necessary.

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

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

            On 14/01/2011 at 06:40, xxxxxxxx wrote:

            The AR Sky is using the BrowserLibraryPopup function to display the popup. This invlolves some knowledge about Content Browser programming though.

            cheers,
            Matthias

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

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

              On 14/01/2011 at 06:57, xxxxxxxx wrote:

              Thanks Matthias,  I will check out the SDK for that function when I get home.  Is there literature on Content Browser programming at all anywhere?
               
              ~Shawn
               
              EDIT:   Nevermind.  I got around my work computer's block for downloading the SDK here at work by downloading it on my phone and pulling it off of there.  I can now look through the Browser related functions.  Thanks again Matthias.  🙂
               
               
              ~Shawn

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

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

                On 14/01/2011 at 12:52, xxxxxxxx wrote:

                Okay so I am trying to use : BrowserLibraryPopup

                but am running in to some trouble.   I  saw an earlier post by Matthias HERE.

                Here is the code I am messing with so far.

                  
                //MESSAGE  
                //====================================================//  
                Bool PlanetXObject::Message(GeListNode *node, LONG type, void *t_data){  
                     
                  BaseContainer state;  
                   GetInputState(BFM_INPUT_MOUSE, 0/*BFM_INPUT_MOUSELEFT*/, state);  
                   LONG mx = state.GetReal(BFM_INPUT_X);  
                   LONG my = state.GetReal(BFM_INPUT_Y);  
                  
                  switch (type){  
                  
                      case MSG_DESCRIPTION_COMMAND:  
                          BrowserLibraryPopup(mx, my, 200, 200, MYWINDOWID, CBPluginTypeObjectPreset, NULL, BPop);  
                  }  
                  
                  
                  return TRUE;  
                }  
                

                my problem is,  that Bpop  is supposed to be a

                BrowserPopupCallback_<_h4_>_

                and I have no idea how to use that.  Could someone explain that better to me?

                Thanks,

                ~Shawn

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

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

                  On 14/01/2011 at 17:11, xxxxxxxx wrote:

                  So if I want to create a Browser Plugin ,  Do I have my class inherit from

                  **SDKBrowser** or should it inherit from **SDKBrowserPluginInterfaceInfo ?  
                    
                    
                   Thanks,  
                    
                  Shawn  
                  **  
                  
                  1 Reply Last reply Reply Quote 0
                  • H
                    Helper
                    last edited by

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

                    On 17/01/2011 at 05:41, xxxxxxxx wrote:

                    okay so I am able to get the dialog to open like this.

                      
                          case MSG_DESCRIPTION_COMMAND:{  
                                
                              DescriptionCommand *dc = (DescriptionCommand* ) t_data;  
                              if(!dc)return FALSE;  
                            
                              //LOAD PRESET  
                              if (dc->id==(DescID)PLANETX_SURFACE_LOAD_PRESET)  
                              {  
                                  BrowserLibraryPopup(mx, my, width, height,ID_SURFACEPRESETS_WINDOW, CBPluginTypeDefaults, NULL, NULL);  
                              }  
                      
                              //SAVE PRESET  
                              if (dc->id==(DescID)PLANETX_SURFACE_SAVE_PRESET)  
                              {  
                                  GePrint("Save Preset");  
                              }  
                          }  
                    

                    Now my question is, how do I get a specific .lib4d file to load in to the dialog ?

                    ~Shawn

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

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

                      On 17/01/2011 at 13:45, xxxxxxxx wrote:

                      Anyone know anything about calling in files from the content browser?  🙂

                      ~Shawn

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

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

                        On 18/01/2011 at 06:56, xxxxxxxx wrote:

                        In order to show your own presets you need to program your own content browser plugin. I will try to put an example together.

                        cheers,
                        Matthias

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

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

                          On 18/01/2011 at 09:42, xxxxxxxx wrote:

                          Thanks Matthias,   that would be extremely helpful.   I appreciate you taking the time to do it. 
                           
                          🙂
                           
                          ~Shawn

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

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

                            On 25/01/2011 at 19:47, xxxxxxxx wrote:

                            Is a broswer plugin made with SDKBrowser or SDKBrowserPluginInterfaceInfo ?

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

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

                              On 26/01/2011 at 01:35, xxxxxxxx wrote:

                              The plugin is derived from SDKBrowserPluginInterfaceInfo and registered with SDKBrowser::RegisterBrowserPlugin().

                              I have never written a browser plugin myself so currently I can't tell you much about it. I am still waiting for an answer from our developers.

                              cheers,
                              Matthias

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

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

                                On 26/01/2011 at 03:13, xxxxxxxx wrote:

                                Thanks Matthias,

                                I'm gonna have a play with it to see if I can piece one together until you hear back from them.

                                ~Shawn

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

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

                                  On 30/01/2011 at 15:27, xxxxxxxx wrote:

                                  Okay so here is my first attempt at writing a browser plugin.

                                  Everything works except the registration function.  Does anyone see what I am doing wrong with the registration function for this plugin?

                                  I am using the class as the SDKBrowserPluginInterfaceInfo that is required in the registration.

                                  Here's the code:

                                    
                                    
                                  //BROWSER INTERFACE PLUGIN  
                                    
                                  #include "c4d.h"  
                                  #include "c4d_symbols.h"  
                                  #include "lib_browser.h"  
                                    
                                  //PLUGIN ID  
                                  #define PXG_BROWSER_PLUGIN 1026577   
                                    
                                  class PXGBrowserPlugin : public SDKBrowserPluginInterfaceInfo{  
                                    
                                  public:  
                                    
                                    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);  
                                  };  
                                    
                                    
                                  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 = "Test";  
                                    return test;  
                                    
                                  }*/  
                                    
                                  SDKBrowserPreviewData* PXGBrowserPlugin::OpenPreviewBitmap(BaseThread* thread, const SDKBrowserContentNodeRef node, const SDKBrowserURL* url, SDKBrowserPreviewInfo* info){  
                                    
                                    
                                  }  
                                    
                                  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;  
                                  }  
                                    
                                  Bool RegisterPXGBrowserPlugin(void){  
                                      
                                    SDKBrowser *browser;   
                                    return browser->RegisterBrowserPlugin(PXGBrowserPlugin, 0);  
                                  }  
                                    
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • H
                                    Helper
                                    last edited by

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

                                    On 31/01/2011 at 02:44, xxxxxxxx wrote:

                                    RegisterBrowserPlugin is a static method. You call it like this:

                                    EDIT: wrong code

                                    cheers,
                                    Matthias

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

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

                                      On 31/01/2011 at 03:11, xxxxxxxx wrote:

                                      Thanks matthias.   I still get this error:

                                        
                                      1>pxgbrowserplugin.cpp  
                                      1>c:\program files\maxon\cinema 4d r12 demo\plugins\planet x generator 2.0\source\object\pxgbrowserplugin.cpp(86) : error C2275: 'PXGBrowserPlugin' : illegal use of this type as an expression  
                                      

                                      Am I not allowed to use the class for the first argument for RegisterBrowserPlugin()?

                                      ~Shawn

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

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

                                        On 31/01/2011 at 03:20, xxxxxxxx wrote:

                                        Sorry I had an error in my code. You have to pass the allocted class.

                                          
                                        Bool RegisterPXGBrowserPlugin(void)  
                                        {  
                                          return SDKBrowser::RegisterBrowserPlugin(gNew PXGBrowserPlugin, 0);  
                                        }  
                                        

                                        cheers,
                                        Matthias

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

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

                                          On 31/01/2011 at 03:36, xxxxxxxx wrote:

                                          Thanks Matthias.  It works now.  Just have to make sure I override all methods because it's abstract.  🙂

                                          LOL

                                          ~Shawn

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