import c4d
from c4d import gui
class TestDialog(gui.GeDialog):
PROGRESSBAR = 1001
def __init__(self):
self.progress = 0
def StopProgress(self):
self.SetTimer(0)
progressMsg = c4d.BaseContainer(c4d.BFM_SETSTATUSBAR)
progressMsg.SetBool(c4d.BFM_STATUSBAR_PROGRESSON, False)
self.SendMessage(self.PROGRESSBAR, progressMsg)
def CreateLayout(self):
self.SetTitle("ProgressBar Example")
self.GroupBegin(id=1000, flags=c4d.BFH_SCALEFIT|c4d.BFV_TOP, cols=0, rows=1)
self.AddCustomGui(self.PROGRESSBAR, c4d.CUSTOMGUI_PROGRESSBAR, "", c4d.BFH_SCALEFIT|c4d.BFV_SCALEFIT, 0, 0)
self.GroupEnd()
return True
def InitValues(self):
self.SetTimer(1000)
return True
def Timer(self, msg):
self.progress += 1
progressMsg = c4d.BaseContainer(c4d.BFM_SETSTATUSBAR)
progressMsg[c4d.BFM_STATUSBAR_PROGRESSON] = True
progressMsg[c4d.BFM_STATUSBAR_PROGRESS] = self.progress/10.0
self.SendMessage(self.PROGRESSBAR, progressMsg)
def Message(self, msg, result):
if msg.GetId() == c4d.BFM_TIMER_MESSAGE:
if self.progress==10:
self.StopProgress()
self.Close()
return True
return gui.GeDialog.Message(self, msg, result)
def AskClose(self):
self.StopProgress()
return False
if __name__=='__main__':
dialog = TestDialog()
dialog.Open(dlgtype=c4d.DLG_TYPE_ASYNC, pluginid=0, defaulth=400, defaultw=400)