GeUserArea - python



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

    On 16/01/2011 at 16:32, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   12 
    Platform:      Mac OSX  ; 
    Language(s) :       PYTHON  ;

    ---------
       Hi there,

    I am running into some problems with GeUserArea in Python. Hoping someone can help me with a quick example. I am trying to use a bitmap image in my dialog...

    Here is what I have so far:

    class DialogUserArea(c4d.gui.GeUserArea) :
        def GetMinSize(self) :
           self.width = 20
           self.height = 20
           return (self.width, self.height)

    def DrawMsg(self, x1, y1, x2, y2, msg) :
           bmp = c4d.bitmaps.BaseBitmap()
           startuppath = c4d.storage.GeGetStartupPath()
           path = os.path.join(startuppath, "plugins", "MyPlugin", "icon.tif")
           result, ismovie = bmp.InitWith(path)
           if result == c4d.IMAGERESULT_OK:
               print("load ok!")
               self.DrawBitmap(bmp, 0, 0, bmp.GetBw(), bmp.GetBh(), 0, 0, bmp.GetBw(), bmp.GetBh(), c4d.BMP_NORMALSCALED | c4d.BMP_ALLOWALPHA)
              
       def Redraw(self) :
           bmp = c4d.bitmaps.BaseBitmap()
           startuppath = c4d.storage.GeGetStartupPath()
           path = os.path.join(startuppath, "plugins", "MyPlugin", "icon.tif")
           result, ismovie = bmp.InitWith(path)
               if result == c4d.IMAGERESULT_OK:
                   print("load ok!")
                   self.DrawBitmap(bmp, 0, 0, bmp.GetBw(), bmp.GetBh(), 0, 0, bmp.GetBw(), bmp.GetBh(), c4d.BMP_NORMALSCALED | c4d.BMP_ALLOWALPHA)

    In my main dialog class, in CreateLayout()...
    self.AddUserArea(id, c4d.BFH_LEFT | c4d.BFV_CENTER, 20, 20)
    ua = DialogUserArea()
    self.AttachUserArea(ua, id)
    ua.LayoutChanged()
    ua.Redraw()

    This seems like it should be correct, except no image loads... I get a blank beveled area where the image should be and no errors in the console - only a print("load ok!") from my test...



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

    On 16/01/2011 at 17:37, xxxxxxxx wrote:

    Ok, I see the problem now (after much frustration)...

    My user area must be a distinct member of my dialog class, and then everything works like it should. Will try to post example code after I clean everything up.


Log in to reply