summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/asymptote/GUI/xasyActions.py
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/asymptote/GUI/xasyActions.py')
-rwxr-xr-xMaster/texmf-dist/asymptote/GUI/xasyActions.py391
1 files changed, 0 insertions, 391 deletions
diff --git a/Master/texmf-dist/asymptote/GUI/xasyActions.py b/Master/texmf-dist/asymptote/GUI/xasyActions.py
deleted file mode 100755
index 95411c5d9a4..00000000000
--- a/Master/texmf-dist/asymptote/GUI/xasyActions.py
+++ /dev/null
@@ -1,391 +0,0 @@
-#!/usr/bin/env python
-###########################################################################
-#
-# xasyActions implements the possible actions and their inverses
-# for the undo/redo stack in xasy
-#
-# Author: Orest Shardt
-# Created: July 23, 2007
-#
-###########################################################################
-import math
-import sys
-import UndoRedoStack
-import xasy2asy
-if sys.version_info >= (3, 0):
- from tkinter import *
-else:
- from Tkinter import *
-
-class translationAction(UndoRedoStack.action):
- def __init__(self,owner,itemList,indexList,translation):
- self.translation = translation
- self.owner = owner
- self.itemList = itemList
- self.indexList = indexList
- UndoRedoStack.action.__init__(self,self.transF,self.unTransF)
-
- def transF(self):
- mag = self.owner.magnification
- for i in range(len(self.itemList)):
- for index in self.indexList[i]:
- self.owner.translateSomething(-1,(self.translation[0]/mag,self.translation[1]/mag),self.itemList[i],index)
- if index==None:
- index = 0
- try:
- self.owner.mainCanvas.move(self.itemList[i].imageList[index].IDTag,self.translation[0]*mag,-self.translation[1]*mag)
- except:
- self.owner.mainCanvas.move(self.itemList[i].IDTag,self.translation[0]*mag,-self.translation[1]*mag)
- self.owner.updateSelection()
- self.owner.updateCanvasSize()
-
- def unTransF(self):
- mag = self.owner.magnification
- for i in range(len(self.itemList)):
- for index in self.indexList[i]:
- self.owner.translateSomething(-1,(-self.translation[0]/mag,-self.translation[1]/mag),self.itemList[i],index)
- try:
- self.owner.mainCanvas.move(self.itemList[i].imageList[index].IDTag,-self.translation[0]*mag,self.translation[1]*mag)
- except:
- self.owner.mainCanvas.move(self.itemList[i].IDTag,-self.translation[0]*mag,self.translation[1]*mag)
- self.owner.updateSelection()
- self.owner.updateCanvasSize()
-
- def __str__(self):
- return "Translation of "+str(self.itemList)+str(self.indexList)+" by "+str(self.translation)
-
-class rotationAction(UndoRedoStack.action):
- def __init__(self,owner,itemList,indexList,angle,origin):
- self.owner = owner
- self.itemList = itemList
- self.indexList = indexList
- self.angle = angle
- self.origin = origin
- UndoRedoStack.action.__init__(self,self.rotF,self.unRotF)
-
- def rotF(self):
- for i in range(len(self.itemList)):
- for index in self.indexList[i]:
- self.owner.rotateSomething(-1,self.angle,self.origin,self.itemList[i],index)
- for item in self.itemList:
- item.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(item)
- self.owner.updateSelection()
- self.owner.updateCanvasSize()
-
- def unRotF(self):
- for i in range(len(self.itemList)):
- for index in self.indexList[i]:
- self.owner.rotateSomething(-1,-self.angle,self.origin,self.itemList[i],index)
- for item in self.itemList:
- item.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(item)
- self.owner.updateSelection()
- self.owner.updateCanvasSize()
-
- def __str__(self):
- return "Rotation of "+str(self.itemList)+str(self.indexList)+" by "+"%.3f"%(self.angle*180.0/math.pi)+" about "+str(self.origin)
-
-class addLabelAction(UndoRedoStack.action):
- def __init__(self,owner,label):
- self.owner = owner
- self.label = label
- UndoRedoStack.action.__init__(self,self.addF,self.unAddF)
-
- def addF(self):
- self.owner.addItemToFile(self.label)
- self.label.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(self.label)
-
- def unAddF(self):
- self.label.removeFromCanvas()
- del self.owner.fileItems[-1]
- self.owner.propList.delete(0)
- self.owner.clearSelection()
-
- def __str__(self):
- return "Addition of a label"
-
-class deleteLabelAction(UndoRedoStack.action):
- def __init__(self,owner,label,index):
- self.owner = owner
- self.label = label
- self.index = index
- UndoRedoStack.action.__init__(self,self.delF,self.unDelF)
-
- def delF(self):
- self.owner.fileItems[self.index].removeFromCanvas()
- self.owner.propList.delete(len(self.owner.fileItems)-self.index-1)
- del self.owner.fileItems[self.index]
-
- def unDelF(self):
- self.owner.fileItems.insert(self.index,self.label)
- self.owner.fileItems[self.index].drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.propList.insert(len(self.owner.fileItems)-self.index-1,self.owner.describeItem(self.label))
- self.owner.bindItemEvents(self.label)
-
- def __str__(self):
- return "Deletion of a label"
-
-class editLabelTextAction(UndoRedoStack.action):
- def __init__(self,owner,label,newText,oldText):
- self.owner = owner
- self.label = label
- self.newText = newText
- self.oldText = oldText
- UndoRedoStack.action.__init__(self,self.modT,self.unModT)
-
- def modT(self):
- self.label.label.setText(self.newText)
- self.label.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(self.label)
-
- def unModT(self):
- self.label.label.setText(self.oldText)
- self.label.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(self.label)
-
- def __str__(self):
- return "Editing a label's text"
-
-class editLabelPenAction(UndoRedoStack.action):
- def __init__(self,owner,oldPen,newPen,index):
- self.owner = owner
- self.newPen = newPen
- self.oldPen = oldPen
- self.index = index
- UndoRedoStack.action.__init__(self,self.editF,self.unEditF)
-
- def editF(self):
- self.owner.fileItems[self.index].removeFromCanvas()
- self.owner.fileItems[self.index].label.pen = self.newPen
- self.owner.fileItems[self.index].drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(self.owner.fileItems[self.index])
-
- def unEditF(self):
- self.owner.fileItems[self.index].removeFromCanvas()
- self.owner.fileItems[self.index].label.pen = self.oldPen
- self.owner.fileItems[self.index].drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(self.owner.fileItems[self.index])
-
- def __str__(self):
- return "Changing a label's pen"
-
-class addScriptAction(UndoRedoStack.action):
- def __init__(self,owner,script):
- self.owner = owner
- self.script = script
- UndoRedoStack.action.__init__(self,self.addF,self.unAddF)
-
- def addF(self):
- self.owner.addItemToFile(self.script)
- self.script.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(self.script)
-
- def unAddF(self):
- self.script.removeFromCanvas()
- del self.owner.fileItems[-1]
- self.owner.propList.delete(0)
- self.owner.clearSelection()
-
- def __str__(self):
- return "Addition of a script"
-
-class deleteScriptAction(UndoRedoStack.action):
- def __init__(self,owner,script,index):
- self.owner = owner
- self.script = script
- self.index = index
- UndoRedoStack.action.__init__(self,self.delF,self.unDelF)
-
- def delF(self):
- self.owner.fileItems[self.index].removeFromCanvas()
- self.owner.propList.delete(len(self.owner.fileItems)-self.index-1)
- del self.owner.fileItems[self.index]
-
- def unDelF(self):
- self.owner.fileItems.insert(self.index,self.script)
- self.owner.fileItems[self.index].drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.propList.insert(len(self.owner.fileItems)-self.index-1,self.owner.describeItem(self.script))
- self.owner.bindItemEvents(self.script)
-
- def __str__(self):
- return "Deletion of a script"
-
-class deleteScriptItemAction(UndoRedoStack.action):
- def __init__(self,owner,script,indices,oldTransforms):
- self.owner = owner
- self.script = script
- self.indices = indices[:]
- UndoRedoStack.action.__init__(self,self.delI,self.unDelI)
- def delI(self):
- for index in self.indices:
- self.script.transform[index].deleted = True
- self.owner.mainCanvas.delete(self.script.imageList[index].IDTag)
-
- def unDelI(self):
- for i in range(len(self.indices)):
- index = self.indices[i]
- self.script.transform[index].deleted = False
- bbox = self.script.imageList[index].originalImage.bbox
- self.script.imageList[index].IDTag = self.owner.mainCanvas.create_image(bbox[0],-bbox[3],anchor=NW,tags=("image"),image=self.script.imageList[index].itk)
- self.owner.bindEvents(self.script.imageList[index].IDTag)
- self.owner.resetStacking()
-
- def __str__(self):
- return "Deletion of item "+str(self.indices)+" in "+str(self.script)
-
-class editScriptAction(UndoRedoStack.action):
- def __init__(self,owner,script,newText,oldText):
- self.owner = owner
- self.script = script
- self.newText = newText
- self.oldText = oldText
- UndoRedoStack.action.__init__(self,self.modS,self.unModS)
-
- def modS(self):
- self.script.setScript(self.newText)
- self.script.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(self.script)
-
- def unModS(self):
- self.script.setScript(self.oldText)
- self.script.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
- self.owner.bindItemEvents(self.script)
-
- def __str__(self):
- return "Modification of a script"
-
-class clearItemTransformsAction(UndoRedoStack.action):
- def __init__(self,owner,item,oldTransforms):
- self.owner = owner
- self.item = item
- self.oldTransforms = oldTransforms
- UndoRedoStack.action.__init__(self,self.clearF,self.unClearF)
-
- def clearF(self):
- for i in range(len(self.oldTransforms)):
- self.item.transform[i] = xasy2asy.identity()
- self.item.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
-
- def unClearF(self):
- for i in range(len(self.oldTransforms)):
- self.item.transform[i] = self.oldTransforms[i]
- self.item.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification)
-
- def __str__(self):
- return "Clear the transforms of "+str(self.item)+" from "+str(self.oldTransforms)
-
-class itemRaiseAction(UndoRedoStack.action):
- def __init__(self,owner,items,oldPositions):
- self.owner = owner
- self.items = items[:]
- self.oldPositions = oldPositions[:]
- UndoRedoStack.action.__init__(self,self.raiseI,self.unRaiseI)
-
- def raiseI(self):
- for item in self.items:
- self.owner.raiseSomething(item)
-
- def unRaiseI(self):
- length = len(self.owner.fileItems)
- indices = self.oldPositions[:]
- indices = [length-i-1 for i in indices]
- indices.reverse()
- for index in indices:
- for i in range(index):
- self.owner.raiseSomething(self.owner.fileItems[length-index-1])
-
- def __str__(self):
- return "Raise items "+str(self.items)+" from positions "+str(self.oldPositions)
-
-class itemLowerAction(UndoRedoStack.action):
- def __init__(self,owner,items,oldPositions):
- self.owner = owner
- self.items = items[:]
- self.oldPositions = oldPositions[:]
- UndoRedoStack.action.__init__(self,self.lowerI,self.unLowerI)
-
- def lowerI(self):
- for item in self.items:
- self.owner.lowerSomething(item)
-
- def unLowerI(self):
- indices = self.oldPositions[:]
- indices.reverse()
- for index in indices:
- for i in range(index):
- self.owner.lowerSomething(self.owner.fileItems[index])
-
- def __str__(self):
- return "Lower items "+str(self.items)+" from positions "+str(self.oldPositions)
-
-class addDrawnItemAction(UndoRedoStack.action):
- def __init__(self,owner,item):
- self.owner = owner
- self.item = item
- UndoRedoStack.action.__init__(self,self.drawF,self.unDrawF)
-
- def drawF(self):
- self.owner.addItemToFile(self.item)
- self.item.drawOnCanvas(self.owner.mainCanvas,self.owner.magnification,forceAddition=True)
- self.owner.bindItemEvents(self.item)
-
- def unDrawF(self):
- self.item.removeFromCanvas(self.owner.mainCanvas)
- del self.owner.fileItems[-1]
- self.owner.propList.delete(0)
- self.owner.clearSelection()
-
- def __str__(self):
- return "Drawing of an item"
-
-class deleteDrawnItemAction(UndoRedoStack.action):
- def __init__(self,owner,item,index):
- self.owner = owner
- self.item = item
- self.index = index
- UndoRedoStack.action.__init__(self,self.delF,self.unDelF)
-
- def delF(self):
- self.owner.fileItems[self.index].removeFromCanvas(self.owner.mainCanvas)
- self.owner.propList.delete(len(self.owner.fileItems)-self.index-1)
- del self.owner.fileItems[self.index]
-
- def unDelF(self):
- self.owner.fileItems.insert(self.index,self.item)
- self.owner.fileItems[self.index].drawOnCanvas(self.owner.mainCanvas,self.owner.magnification,forceAddition=True)
- self.owner.propList.insert(len(self.owner.fileItems)-self.index-1,self.owner.describeItem(self.item))
- self.owner.bindItemEvents(self.item)
-
- def __str__(self):
- return "Deletion of a drawn item"
-
-class editDrawnItemAction(UndoRedoStack.action):
- def __init__(self,owner,oldItem,newItem,index):
- self.owner = owner
- self.oldItem = oldItem
- self.newItem = newItem
- self.index = index
- UndoRedoStack.action.__init__(self,self.editF,self.unEditF)
-
- def editF(self):
- self.owner.fileItems[self.index].removeFromCanvas(self.owner.mainCanvas)
- self.owner.fileItems[self.index].path = self.newItem.path
- self.owner.fileItems[self.index].pen = self.newItem.pen
- self.owner.fileItems[self.index].transform = self.newItem.transform
- self.owner.fileItems[self.index].IDTag = self.newItem.IDTag
- self.owner.fileItems[self.index].drawOnCanvas(self.owner.mainCanvas,self.owner.magnification,forceAddition=True)
- self.owner.bindItemEvents(self.owner.fileItems[self.index])
-
- def unEditF(self):
- self.owner.fileItems[self.index].removeFromCanvas(self.owner.mainCanvas)
- self.owner.fileItems[self.index].path = self.oldItem.path
- self.owner.fileItems[self.index].pen = self.oldItem.pen
- self.owner.fileItems[self.index].transform = self.oldItem.transform
- self.owner.fileItems[self.index].IDTag = self.oldItem.IDTag
- self.owner.fileItems[self.index].drawOnCanvas(self.owner.mainCanvas,self.owner.magnification,forceAddition=True)
- self.owner.bindItemEvents(self.owner.fileItems[self.index])
-
- def __str__(self):
- return "Modification of a drawn item"