Get current interface color [SOLVED]



  • On 13/05/2015 at 17:21, xxxxxxxx wrote:

    I'm trying to match my GeUserArea color to the current interface color.

    I've tried:

    color = c4d.GeGetGray()
    self.background_color = Vector(color['x'] / 255.0, color['y'] / 255.0, color['z'] / 255.0)
      
    and
                
    colid = c4d.VIEWCOLOR_C4DBACKGROUND
    self.background_color = c4d.GetViewColor(colid)
    

    ...but neither one matches.

    How do you get it?

    Thanks,

    Chris



  • On 14/05/2015 at 02:10, xxxxxxxx wrote:

    Hi Chris,

    GeGetGray() returns the default Cinema gray color. It's not meant for the GUI but for bitmaps, materials, textures i.e. rendering.

    GetViewColor() returns only colors for the viewport system.

    To get a GUI color from inside a GeUserArea call self.GetColorRGB() with the color ID to retrieve e.g. c4d.COLOR_BG for the background color of Cinema interface. Note the returned value is a dict so you have to build a color vector and divide each value by 255.0 as you have done in your  GeGetGray() example.

    In Init():

    bg = self.GetColorRGB(c4d.COLOR_BG)
    self.backcolor = c4d.Vector(bg['r']/255.0, bg['g']/255.0, bg['b']/255.0)
    

    In DrawMsg():

    self.DrawSetPen(self.backcolor)
    


  • On 14/05/2015 at 21:09, xxxxxxxx wrote:

    Yannick,

    That's the one.

    Thanks,

    Chris


Log in to reply