def set_auto(value): global auto if value ^ auto: if value: gf.registerCallback("open", schedule) else: gf.unregisterCallback("open", schedule) auto = value
def onOpen(): if restoringInProgress(): return setState("gfFigure", gf.figureGet()) def onModify(): if restoringInProgress(): return setState("gfFigure", gf.figureGet()) def onSnapshotCreate(): setState("selectedVertex", gf.vertexSelected()) def onSnapshotRestore(oldIndex): newIndex=getState("index") preserveRotation = (abs(newIndex-oldIndex)==1 and not getState("new", max(oldIndex,newIndex))) gf.figureOpen(getState("gfFigure"), preserveRotation) selectedVertex=getState("selectedVertex") if selectedVertex>=0: gf.vertexSelect(selectedVertex) else: gf.vertexDeselect() gf.registerCallback("new", onNew) gf.registerCallback("open", onOpen) gf.registerCallback("modified", onModify) registerCallbackRestore(onSnapshotRestore) registerCallbackCreate(onSnapshotCreate)
def schedule(): def idle(): gf.unregisterCallback("idle", idle) randomRot(False, False) gf.registerCallback("idle", idle)
def on(): global active gf.registerCallback("idle", idle) active = True
setState("gfFigure", gf.figureGet()) def onModify(): if restoringInProgress(): return setState("gfFigure", gf.figureGet()) def onSnapshotCreate(): setState("selectedVertex", gf.vertexSelected()) def onSnapshotRestore(oldIndex): newIndex = getState("index") preserveRotation = (abs(newIndex - oldIndex) == 1 and not getState("new", max(oldIndex, newIndex))) gf.figureOpen(getState("gfFigure"), preserveRotation) selectedVertex = getState("selectedVertex") if selectedVertex >= 0: gf.vertexSelect(selectedVertex) else: gf.vertexDeselect() gf.registerCallback("new", onNew) gf.registerCallback("open", onOpen) gf.registerCallback("modified", onModify) registerCallbackRestore(onSnapshotRestore) registerCallbackCreate(onSnapshotCreate)
def on(): global active gf.registerCallback("idle", idle); active=True