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.