[Py] ScriptMng - GeUserArea disappears
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 25/11/2011 at 09:36, xxxxxxxx wrote:
User Information:
Cinema 4D Version: R13
Platform:
Language(s) :---------
in R13, the GeUserArea in an async dialog just disappears when you resize the dialog. Saving a reference to the dialog solves the problem.Example code:
import c4d import c4d.gui as gui import c4d.bitmaps as bitmaps SHOW_ISSUE = False class Area(gui.GeUserArea) : def __init__(self, w = 20, h = 20, r = 1, g = 1, b = 1) : self.bmp = bitmaps.BaseBitmap() self.bmp.Init(w, h) self.w = w self.h = h self.alpha = self.bmp.AddChannel(True, False) r = int(r * 255) g = int(g * 255) b = int(b * 255) for x in xrange(w) : for y in xrange(h) : a = x*y / float(w*h) a = 1 - 2**a a = int(a * 255) self.bmp[x, y] = r, g, b self.bmp.SetAlphaPixel(self.alpha, x, y, a) def DrawMsg(self, x1, y1, x2, y2, msg) : self.DrawSetPen(c4d.Vector(0, 0, 0)) self.DrawRectangle(x1, y1, x2, y2) if SHOW_ISSUE: self.DrawSetPen(c4d.Vector(.2, .6, .9)) w, h = self.w, self.h self.DrawBitmap(self.bmp, 0, 0, w, h, 0, 0, w, h, c4d.BMP_NORMAL | c4d.BMP_ALLOWALPHA) def GetMinSize(self) : return self.w, self.h class Dialog(gui.GeDialog) : def __init__(self, area) : self.area = area def CreateLayout(self) : self.AddUserArea(1000, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT) self.AttachUserArea(self.area, 1000) return True def main() : area = Area(100, 100, 1.0, 0.66, 0.24) dlg = Dialog(area) if c4d.GetC4DVersion() < 13000: # async in script manager and r12 does not work # open it modal dlg.Open(c4d.DLG_TYPE_MODAL_RESIZEABLE) else: dlg.Open(c4d.DLG_TYPE_ASYNC) # uncomment the following and it works # main.dlg = dlg if __name__ == "__main__": main()
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 24/02/2012 at 06:38, xxxxxxxx wrote:
DLG_TYPE_ASYNC should only be used in Plugin environments. Cheers, Sebastian
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 30/06/2012 at 09:58, xxxxxxxx wrote:
Can I use it with other plug-ins?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 01/07/2012 at 05:04, xxxxxxxx wrote:
You can use asynchronous dialogs whenever you want, just not in scripts.
Scripts only live while they're being executed, so asynchronous dialogs can't work.