def SetAnimations(self, layerLists): """Set animation data directly. :param layerLists: list of layerLists """ try: animationData = [] for i in range(len(self.animations)): if layerLists[i]: anim = AnimationData() anim.SetDefaultValues(i, i) anim.SetLayerList(layerLists[i]) animationData.append(anim) except (GException, ValueError, IOError) as e: GError(parent=self.frame, message=str(e), showTraceback=False, caption=_("Invalid input")) return try: temporalMode, tempManager = self.EvaluateInput(animationData) except GException as e: GError(parent=self.frame, message=e.value, showTraceback=False) return self.animationData = animationData self.temporalManager = tempManager self.temporalMode = temporalMode self._setAnimations()
def AddAnimation(self): # check if we can add more animations found = False indices = [anim.windowIndex for anim in self.animationData] for windowIndex in range(len(self.animations)): if windowIndex not in indices: found = True break if not found: GMessage( parent=self.frame, message=_("Maximum number of animations is %d.") % len(self.animations), ) return # running = False # if self.timer.IsRunning(): # running = True self.EndAnimation() # self.PauseAnimation(True) animData = AnimationData() # number of active animations animationIndex = len( [anim for anim in self.animations if anim.IsActive()]) animData.SetDefaultValues(windowIndex, animationIndex) dlg = InputDialog(parent=self.frame, mode="add", animationData=animData) dlg.CenterOnParent() if dlg.ShowModal() == wx.ID_CANCEL: dlg.UnInit() dlg.Destroy() return dlg.Destroy() # check compatibility if animData.windowIndex in indices: GMessage( parent=self.frame, message=_( "More animations are using one window." " Please select different window for each animation."), ) return try: temporalMode, tempManager = self.EvaluateInput(self.animationData + [animData]) except GException as e: GError(parent=self.frame, message=e.value, showTraceback=False) return # if ok, set temporal mode self.temporalMode = temporalMode self.temporalManager = tempManager # add data windowIndex = animData.windowIndex self.animationData.append(animData) self._setAnimations()