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
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Python_gradient gizmo won't maximize

    Scheduled Pinned Locked Moved Bugs
    4 Posts 0 Posters 816 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

      On 02/08/2014 at 19:00, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   13 
      Platform:   Windows  ;   
      Language(s) :

      ---------
      I can't open the gradient gizmo's options pallet when creating it with AddCustomGui() function.
      SetLayoutMode(c4d.LAYOUTMODE_MAXIMIZED) does not work.

      Example of the various things I've tried to maximize the gizmo:

      import c4d,os,sys  
      from c4d import plugins, utils, bitmaps, gui, documents  
        
      Plugin_ID = 1000010    #Testing id ONLY!!!!!!!   
        
      MY_GRADIENT = 10001  
        
      class MyDialog_Gui(gui.GeDialog) :  
        
        myGradGizmo = None  
        gradient = c4d.Gradient()  
         
        def CreateLayout(self) :  
               
            #Create the gradient gui here  
            #We will change it's options in the InitValues() method  
        
            gSettings = c4d.BaseContainer()  
            #gSettings.SetBool(c4d.LAYOUTMODE_MAXIMIZED, True)  #<---Wrong!!!  
            #gSettings.SetLong(c4d.LAYOUTMODE_MAXIMIZED, 2)     #<---Wrong!!!  
            #gSettings.SetLayoutMode(c4d.LAYOUTMODE_MAXIMIZED)  #<---Wrong!!!  
            self.myGradGizmo = self.AddCustomGui(MY_GRADIENT, c4d.CUSTOMGUI_GRADIENT, "", c4d.BFH_SCALEFIT|c4d.BFV_CENTER, 0, 0, gSettings)       
        
            return True      
        
        def InitValues(self) :  
        
            #To change the gradient gui we have to first create a gradient object and fill it with data  
            #Then we copy the settings to the CUSTOMGUI_GRADIENT we created in the CreateLayout() method          
              
            self.gradient.InsertKnot(col = c4d.Vector(0.0, 0.0, 0.0), pos = 0.0,index = 0)  
            self.gradient.InsertKnot(col = c4d.Vector(1.0, 1.0, 1.0), pos = 0.5,index = 1)  
            self.gradient.InsertKnot(col = c4d.Vector(1.0, 1.0, 1.0), pos = 1.0,index = 2)  
            self.gradient.SetData(c4d.GRADIENT_INTERPOLATION, c4d.GRADIENT_INTERPOLATION_NONE)  
            self.gradient.SetData(c4d.GRADIENT_MODE, c4d.GRADIENTMODE_COLOR)  
        
            #self.gradient.SetLayoutMode(c4d.LAYOUTMODE_MAXIMIZED)      #<---Wrong!!!          
            #self.myGradGizmo.SetLayoutMode(c4d.LAYOUTMODE_MAXIMIZED)   #<---Wrong!!!  
         
            self.myGradGizmo.SetGradient(self.gradient)  
              
            return True  
        
          
        def Command(self, id, msg) :      
            return True  
              
              
        def CoreMessage(self, id, msg) :  
            return True          
              
         
      #-------------------------------------------------------------------------  
      #   MyDialog_Main --- Where the plugin stuff happens--Don't edit this part  
      #-------------------------------------------------------------------------  
      class myDialog_Main(plugins.CommandData) :  
        dialog = None  
          
        def Execute(self, doc) :  
            #Create the dialog  
            if self.dialog is None:  
                self.dialog = MyDialog_Gui()  
            return self.dialog.Open(dlgtype=c4d.DLG_TYPE_ASYNC, pluginid=Plugin_ID, xpos=-1, ypos=-1)  
              
        def RestoreLayout(self, sec_ref) :  
            #Manage the async dialog so it can be docked in the UI  
            if self.dialog is None:  
                self.dialog = MyDialog_Gui()  
            return self.dialog.Restore(pluginid=Plugin_ID, secret=sec_ref)  
         
        
      if __name__ == "__main__":  
       path, fn = os.path.split(__file__)  
       #bmp = bitmaps.BaseBitmap()  
       #bmp.InitWith(os.path.join(path, "res/icons/", "None")) #Uses a folder called "icons" inside the "res" folder to hold the icon  
       plugins.RegisterCommandPlugin(Plugin_ID, "LinkBox Example", 0, None, "", myDialog_Main())
      

      -ScottA

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

        On 13/01/2015 at 04:57, xxxxxxxx wrote:

        I was also struggling with the gradient UI.
        It is now working, also thanks to this above example.

        Except, there are 6 knots in the gradient and not 3 as defined.
        When you drag a knot you can see another one beneath it.
        It seems every knot is inserted twice?

        What am I doing and the example above doing wrong?

        -Pim

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

          On 14/01/2015 at 03:47, xxxxxxxx wrote:

          Hello,

          SetLayoutMode() is not available in Python. But it is possible to set a value for CUSTOMGUI_LAYOUTMODE in the BaseContainer used with AddCustomGui() :

            
          bc = c4d.BaseContainer()  
          bc.SetInt32(c4d.CUSTOMGUI_LAYOUTMODE,c4d.LAYOUTMODE_MAXIMIZED)  
          gradient = self.AddCustomGui(id=4000, pluginid=c4d.CUSTOMGUI_GRADIENT, name="gradient", flags=c4d.BFH_LEFT, minw=400, minh=20, customdata = bc)  
          

          The behavior that two knots are inserted instead of one is indeed a bug. A bug report was filed.

          best wishes,
          Sebastian

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

            On 14/01/2015 at 04:14, xxxxxxxx wrote:

            Thanks for the reply.
            It is good to know it is a bug.
            I spend about a day debugging/trying/testing before asking the question this forum.

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