Mouse working in Actionscript editor, ability to edit Text objects

This commit is contained in:
Skyler Lehmkuhl 2013-01-02 14:45:49 -05:00
parent bf2f7eaa42
commit 94c6e020ae
2 changed files with 148 additions and 96 deletions

View File

@ -56,7 +56,7 @@ def onLoadFrames(self):
else: else:
j = box(i*16,0,16,32,svlgui.Color([1,1,1])) j = box(i*16,0,16,32,svlgui.Color([1,1,1]))
self.add(j)''' self.add(j)'''
def onClickFrame(self, x, y): def onClickFrame(self, x, y,button=1,clicks=1):
root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions = MainWindow.scriptwindow.text root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions = MainWindow.scriptwindow.text
root.descendItem().activeframe = int(x/16) root.descendItem().activeframe = int(x/16)
print ">>>>>> ", x, y print ">>>>>> ", x, y
@ -74,7 +74,7 @@ def onKeyDownFrame(self, key):
elif key=="F8": elif key=="F8":
convert_to_symbol() convert_to_symbol()
MainWindow.scriptwindow.text = root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions MainWindow.scriptwindow.text = root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions
def onMouseDownGroup(self, x, y): def onMouseDownGroup(self, x, y,button=1,clicks=1):
self.activelayer.frames[self.activelayer.currentframe].actions = MainWindow.scriptwindow.text self.activelayer.frames[self.activelayer.currentframe].actions = MainWindow.scriptwindow.text
if svlgui.MODE in [" ", "s"]: if svlgui.MODE in [" ", "s"]:
if self.hitTest(x, y): if self.hitTest(x, y):
@ -100,32 +100,35 @@ def onMouseDownGroup(self, x, y):
elif svlgui.MODE in ["t"]: elif svlgui.MODE in ["t"]:
self.ctext = svlgui.Text("Mimimi",x,y) self.ctext = svlgui.Text("Mimimi",x,y)
self.ctext.editing = True self.ctext.editing = True
svlgui.CURRENTTEXT = self.ctext
self.ctext.onMouseDown = onMouseDownText self.ctext.onMouseDown = onMouseDownText
self.ctext.onMouseDrag = onMouseDragText self.ctext.onMouseDrag = onMouseDragText
self.ctext.onMouseUp = onMouseUpText self.ctext.onMouseUp = onMouseUpText
self.add(self.ctext) self.add(self.ctext)
self.ctext = None self.ctext = None
self.activelayer.currentselect = self.activelayer.frames[self.activelayer.currentframe].objs[-1]
MainWindow.docbox.setvisible(True) MainWindow.docbox.setvisible(True)
MainWindow.textbox.setvisible(False) MainWindow.textbox.setvisible(False)
def onMouseDownObj(self, x, y): def onMouseDownObj(self, x, y,button=1,clicks=1):
MainWindow.scriptwindow.text = root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions MainWindow.scriptwindow.text = root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions
self.clicked = True self.clicked = True
self.initx,self.inity = x-self.x, y-self.y self.initx,self.inity = x-self.x, y-self.y
if svlgui.MODE == "b": if svlgui.MODE == "b":
self.filled = True self.filled = True
self.fillcolor = svlgui.FILLCOLOR self.fillcolor = svlgui.FILLCOLOR
def onMouseDownText(self,x,y): def onMouseDownText(self,x,y,button=1,clicks=1):
MainWindow.scriptwindow.text = root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions MainWindow.scriptwindow.text = root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions
self.clicked = True self.clicked = True
self.initx, self.inity = x-self.x, y-self.y self.initx, self.inity = x-self.x, y-self.y
MainWindow.docbox.setvisible(False) MainWindow.docbox.setvisible(False)
MainWindow.textbox.setvisible(True) MainWindow.textbox.setvisible(True)
svlgui.CURRENTTEXT = self.obj svlgui.CURRENTTEXT = self.obj
print "Height", MainWindow.textbox.height if clicks>1:
def onMouseDownFrame(self, x, y): self.obj.editing = True
def onMouseDownFrame(self, x, y,button=1,clicks=1):
pass pass
def onMouseUpGroup(self, x, y): def onMouseUpGroup(self, x, y,button=1,clicks=1):
self.clicked = False self.clicked = False
if svlgui.MODE in ["r", "e"]: if svlgui.MODE in ["r", "e"]:
self.cshape = None self.cshape = None
@ -135,17 +138,17 @@ def onMouseUpGroup(self, x, y):
print len(self.cshape.shapedata) print len(self.cshape.shapedata)
self.cshape = None self.cshape = None
MainWindow.stage.draw() MainWindow.stage.draw()
def onMouseUpObj(self, x, y): def onMouseUpObj(self, x, y,button=1,clicks=1):
self.clicked = False self.clicked = False
def onMouseUpText(self, x, y): def onMouseUpText(self, x, y,button=1,clicks=1):
self.clicked = False self.clicked = False
def onMouseMoveGroup(self, x, y): def onMouseMoveGroup(self, x, y,button=1):
pass pass
#This is for testing rotation. Comment out before any commit! #This is for testing rotation. Comment out before any commit!
#root.rotation+=0.01 #root.rotation+=0.01
def onMouseMoveObj(self, x, y): def onMouseMoveObj(self, x, y,button=1):
pass pass
def onMouseDragGroup(self, x, y): def onMouseDragGroup(self, x, y,button=1,clicks=1):
if svlgui.MODE in [" ", "s"]: if svlgui.MODE in [" ", "s"]:
self.x = x self.x = x
self.y = y self.y = y
@ -161,7 +164,7 @@ def onMouseDragGroup(self, x, y):
self.cshape.shapedata = [["M",x/2,0],["C",4*x/5,0,x,y/5,x,y/2],["C",x,4*y/5,4*x/5,y,x/2,y],["C",x/5,y,0,4*y/5,0,y/2],["C",0,y/5,x/5,0,x/2,0]] self.cshape.shapedata = [["M",x/2,0],["C",4*x/5,0,x,y/5,x,y/2],["C",x,4*y/5,4*x/5,y,x/2,y],["C",x/5,y,0,4*y/5,0,y/2],["C",0,y/5,x/5,0,x/2,0]]
elif svlgui.MODE == "p": elif svlgui.MODE == "p":
self.cshape.shapedata.append(["L",x-self.cshape.initx,y-self.cshape.inity]) self.cshape.shapedata.append(["L",x-self.cshape.initx,y-self.cshape.inity])
def onMouseDragObj(self, x, y): def onMouseDragObj(self, x, y,button=1,clicks=1):
if svlgui.MODE==" ": if svlgui.MODE==" ":
self.x = x-self.initx self.x = x-self.initx
self.y = y-self.inity self.y = y-self.inity
@ -175,7 +178,7 @@ def onMouseDragObj(self, x, y):
self.xscale = ((self.maxx/2.0+self.minx)-x)/((self.maxx/2.0+self.minx)-self.initx) self.xscale = ((self.maxx/2.0+self.minx)-x)/((self.maxx/2.0+self.minx)-self.initx)
self.yscale = ((self.maxy/2.0+self.miny)-y)/((self.maxy/2.0+self.miny)-self.inity) self.yscale = ((self.maxy/2.0+self.miny)-y)/((self.maxy/2.0+self.miny)-self.inity)
def onMouseDragText(self, x, y): def onMouseDragText(self, x, y,button=1,clicks=1):
self.x = x-self.initx self.x = x-self.initx
self.y = y-self.inity self.y = y-self.inity

213
svlgui.py
View File

@ -1000,14 +1000,14 @@ class Canvas(Widget):
x, y = event.position x, y = event.position
try: try:
for i in self.objs: for i in self.objs:
i._onMouseDown(x, y) i._onMouseDown(x, y, button={"left":1,"right":2,"middle":3}[event.button], clicks=event.num_clicks)
except ObjectDeletedError: except ObjectDeletedError:
return return
self.update() self.update()
def mouse_drag(self, event): def mouse_drag(self, event):
x, y = event.position x, y = event.position
for i in self.objs: for i in self.objs:
i._onMouseDrag(x, y) i._onMouseDrag(x, y, button={"left":1,"right":2,"middle":3}[event.button])
self.update() self.update()
def mouse_move(self, event): def mouse_move(self, event):
@ -1015,13 +1015,13 @@ class Canvas(Widget):
MOUSE_X, MOUSE_Y = event.position MOUSE_X, MOUSE_Y = event.position
x, y = event.position x, y = event.position
for i in self.objs: for i in self.objs:
i._onMouseMove(x, y) i._onMouseMove(x, y, button={"left":1,"right":2,"middle":3}[event.button])
self.update() self.update()
def mouse_up(self, event): def mouse_up(self, event):
x, y = event.position x, y = event.position
for i in self.objs: for i in self.objs:
i._onMouseUp(x, y) i._onMouseUp(x, y, button={"left":1,"right":2,"middle":3}[event.button])
self.update() self.update()
def key_down(self, event): def key_down(self, event):
@ -1060,7 +1060,7 @@ class Canvas(Widget):
x, y = event.position x, y = event.position
try: try:
for i in self.objs: for i in self.objs:
i._onMouseDown(x, y) i._onMouseDown(x, y, button={"left":1,"right":2,"middle":3}[event.button], clicks=event.num_clicks)
except ObjectDeletedError: except ObjectDeletedError:
return return
self.invalidate_rect([0,0,self.extent[0],self.extent[1]]) self.invalidate_rect([0,0,self.extent[0],self.extent[1]])
@ -1068,7 +1068,7 @@ class Canvas(Widget):
def mouse_drag(self, event): def mouse_drag(self, event):
x, y = event.position x, y = event.position
for i in self.objs: for i in self.objs:
i._onMouseDrag(x, y) i._onMouseDrag(x, y, button={"left":1,"right":2,"middle":3}[event.button])
self.invalidate_rect([0,0,self.extent[0],self.extent[1]]) self.invalidate_rect([0,0,self.extent[0],self.extent[1]])
def mouse_move(self, event): def mouse_move(self, event):
@ -1080,7 +1080,7 @@ class Canvas(Widget):
def mouse_up(self, event): def mouse_up(self, event):
x, y = event.position x, y = event.position
for i in self.objs: for i in self.objs:
i._onMouseUp(x, y) i._onMouseUp(x, y, button={"left":1,"right":2,"middle":3}[event.button], clicks=event.num_clicks)
self.invalidate_rect([0,0,self.extent[0],self.extent[1]]) self.invalidate_rect([0,0,self.extent[0],self.extent[1]])
def key_down(self, event): def key_down(self, event):
@ -1183,6 +1183,7 @@ class TextView(Widget):
def mouse_down(self, event): def mouse_down(self, event):
self.become_target() self.become_target()
GUI.TextEditor.mouse_down(self, event)
self.box = OSXTextEditor(scrolling="hv") self.box = OSXTextEditor(scrolling="hv")
self.box.font = Font("Courier", 12, []) self.box.font = Font("Courier", 12, [])
if width and height: if width and height:
@ -1404,13 +1405,13 @@ class Image(object):
for i in xrange(len(self.shapedata)): for i in xrange(len(self.shapedata)):
hits = hits != intersect(self.shapedata[i-1][1:3],self.shapedata[i][1:3],[x,y],[x,sys.maxint]) hits = hits != intersect(self.shapedata[i-1][1:3],self.shapedata[i][1:3],[x,y],[x,sys.maxint])
return hits return hits
def onMouseDown(self, self1, x, y): def onMouseDown(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseDrag(self, self1, x, y): def onMouseDrag(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseUp(self, self1, x, y): def onMouseUp(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseMove(self, self1, x, y): def onMouseMove(self, self1, x, y, button=1, clicks=1):
pass pass
def onKeyDown(self, self1, key): def onKeyDown(self, self1, key):
pass pass
@ -1657,13 +1658,13 @@ class Shape (object):
return max([i[1] for i in self.shapedata]) return max([i[1] for i in self.shapedata])
def getmaxy(self): def getmaxy(self):
return max([i[2] for i in self.shapedata]) return max([i[2] for i in self.shapedata])
def onMouseDown(self, self1, x, y): def onMouseDown(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseDrag(self, self1, x, y): def onMouseDrag(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseUp(self, self1, x, y): def onMouseUp(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseMove(self, self1, x, y): def onMouseMove(self, self1, x, y, button=1, clicks=1):
pass pass
def onKeyDown(self, self1, key): def onKeyDown(self, self1, key):
pass pass
@ -1710,13 +1711,14 @@ class Text (object):
self.editable = False self.editable = False
self.selectable = True self.selectable = True
self.border = False self.border = False
self.width = self.font.width(self.text) # self.width = self.font.width(self.text)
self.height = self.font.height self.height = self.font.height
self.iname = None self.iname = None
self.hwaccel = False self.hwaccel = False
self.type="Text" self.type="Text"
self.name = "t"+str(int(random.random()*10000))+str(SITER) self.name = "t"+str(int(random.random()*10000))+str(SITER)
self.editing = False self.editing = False
self.cursorpos = len(self.text)
SITER+=1 SITER+=1
def draw(self,cr=None,parent=None,rect=None): def draw(self,cr=None,parent=None,rect=None):
if SYSTEM=="osx": if SYSTEM=="osx":
@ -1743,25 +1745,36 @@ class Text (object):
w = self.font.width(self.text) w = self.font.width(self.text)
d = self.font.descent d = self.font.descent
h = self.font.height h = self.font.height
lines = self.text.count('\n')
cr.newpath() cr.newpath()
cr.moveto(0,d) cr.moveto(0,d+h*lines)
cr.lineto(w,d) cr.lineto(w,d+h*lines)
cr.lineto(w,-h) cr.lineto(w,-h)
cr.lineto(0,-h) cr.lineto(0,-h)
cr.lineto(0,d) cr.lineto(0,d+h*lines)
cr.pencolor = Color([0,0,0]).pygui cr.pencolor = Color([0,0,0]).pygui
cr.fillcolor = Color([1,1,1]).pygui cr.fillcolor = Color([1,1,1]).pygui
cr.fill_stroke() cr.fill_stroke()
cr.fill() cr.fill()
if '\n' in self.text[:self.cursorpos]:
cw = self.font.width(self.text[self.text.rindex('\n',0,self.cursorpos):self.cursorpos])
else:
cw = self.font.width(self.text[:self.cursorpos])
cr.newpath()
elines = self.text[:self.cursorpos].count('\n')
cr.moveto(cw,d+h*elines)
cr.lineto(cw,-h+h*elines)
cr.stroke()
cr.newpath() cr.newpath()
cr.moveto(0,0) cr.moveto(0,0)
cr.show_text(self.text) cr.show_text(self.text)
cr.grestore() cr.grestore()
def hitTest(self, x, y): def hitTest(self, x, y):
self.width = self.font.width(self.text)
self.height = self.font.height self.height = self.font.height
if 0<x<self.width and -self.height<y<0: if 0<x<self.width and -self.height<y<0:
return True return True
def getwidth(self):
return self.font.width(self.text)
def getminx(self): def getminx(self):
return 0 return 0
def getminy(self): def getminy(self):
@ -1774,28 +1787,64 @@ class Text (object):
return self.font.size return self.font.size
def setsize(self,size): def setsize(self,size):
self.font = Font(self.font.family,size,self.font.style) self.font = Font(self.font.family,size,self.font.style)
self.width = self.font.width(self.text)
self.height = self.font.height self.height = self.font.height
minx = property(getminx) minx = property(getminx)
miny = property(getminy) miny = property(getminy)
maxx = property(getmaxx) maxx = property(getmaxx)
maxy = property(getmaxy) maxy = property(getmaxy)
size = property(getsize,setsize) size = property(getsize,setsize)
def onMouseDown(self, self1, x, y): width= property(getwidth)
def onMouseDown(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseDrag(self, self1, x, y): def onMouseDrag(self, self1, x, y, button=1):
pass pass
def onMouseUp(self, self1, x, y): def onMouseUp(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseMove(self, self1, x, y): def onMouseMove(self, self1, x, y, button=1):
pass pass
def onKeyDown(self, self1, key): def onKeyDown(self, self1, key):
if key == "\b": if key == "\b":
self.text = self.text[:-1] self.text = self.text[:-1]
elif key == "enter": elif key == "enter":
self.text = self.text+"\n" self.text = self.text[:self.cursorpos]+"\n"+self.text[self.cursorpos:]
self.height = self.font.height*(self.text.count('\n')+1)
self.cursorpos += 1
elif key == "backspace":
if self.cursorpos>0:
self.text = self.text[:self.cursorpos-1]+self.text[self.cursorpos:]
self.cursorpos -= 1
elif key == "delete":
if self.cursorpos<len(self.text):
self.text = self.text[:self.cursorpos]+self.text[self.cursorpos+1:]
elif key == "left_arrow":
if self.cursorpos>0:
self.cursorpos -= 1
elif key == "right_arrow":
if self.cursorpos<len(self.text):
self.cursorpos += 1
elif key == "up_arrow":
if '\n' in self.text[:self.cursorpos]:
lpos = self.text[:self.cursorpos].rindex('\n', 0, self.cursorpos)
if '\n' in self.text[:lpos]:
llpos = self.text[:lpos].rindex('\n',0,lpos)
else: else:
self.text+=str(key) llpos = -1 # to account for no \n preceding it
self.cursorpos = min(self.cursorpos-lpos+llpos,lpos)
elif key == "down_arrow":
if '\n' in self.text[self.cursorpos:]:
if '\n' in self.text[:self.cursorpos]:
lpos = self.text[:self.cursorpos].rindex('\n', 0, self.cursorpos)
else:
lpos = -1
npos = self.text[self.cursorpos:].index('\n')
if '\n' in self.text[self.cursorpos+npos+1:]:
nnpos = self.text[self.cursorpos+npos+1:].index('\n')
else:
nnpos = len(self.text[self.cursorpos:])
self.cursorpos = min(self.cursorpos+npos+self.cursorpos-lpos,self.cursorpos+npos+nnpos+1)
else:
self.text=self.text[:self.cursorpos]+str(key)+self.text[self.cursorpos:]
self.cursorpos += 1
pass pass
def onKeyUp(self, self1, key): def onKeyUp(self, self1, key):
pass pass
@ -1872,14 +1921,14 @@ class framewrapper (object):
self.obj.filled = self.filled self.obj.filled = self.filled
self.obj.linecolor = self.linecolor self.obj.linecolor = self.linecolor
self.obj.fillcolor = self.fillcolor self.obj.fillcolor = self.fillcolor
def _onMouseDown(self, x, y): def _onMouseDown(self, x, y, button=1, clicks=1):
self.obj.onMouseDown(self,x, y) self.obj.onMouseDown(self,x, y, button, clicks)
def _onMouseUp(self, x, y): def _onMouseUp(self, x, y, button=1, clicks=1):
self.obj.onMouseUp(self,x, y) self.obj.onMouseUp(self,x, y, button)
def _onMouseMove(self, x, y): def _onMouseMove(self, x, y, button=1):
self.obj.onMouseMove(self, x, y) self.obj.onMouseMove(self, x, y, button)
def _onMouseDrag(self, x, y): def _onMouseDrag(self, x, y, button=1):
self.obj.onMouseDrag(self, x, y) self.obj.onMouseDrag(self, x, y, button)
def _onKeyDown(self, key): def _onKeyDown(self, key):
self.obj.onKeyDown(self, key) self.obj.onKeyDown(self, key)
def _onKeyUp(self, key): def _onKeyUp(self, key):
@ -2067,13 +2116,13 @@ class Layer:
return max([i.maxx for i in self.currentFrame()]) return max([i.maxx for i in self.currentFrame()])
def getmaxy(self): def getmaxy(self):
return max([i.maxy for i in self.currentFrame()]) return max([i.maxy for i in self.currentFrame()])
def onMouseDown(self, self1, x, y): def onMouseDown(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseDrag(self, self1, x, y): def onMouseDrag(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseUp(self, self1, x, y): def onMouseUp(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseMove(self, self1, x, y): def onMouseMove(self, self1, x, y, button=1):
pass pass
def onKeyDown(self, self1, key): def onKeyDown(self, self1, key):
pass pass
@ -2162,10 +2211,10 @@ class Layer:
return self return self
def currentFrame(self): def currentFrame(self):
return self.frames[self.currentframe].objs return self.frames[self.currentframe].objs
def _onMouseDown(self, x, y): def _onMouseDown(self, x, y, button=1, clicks=1):
if self.level: if self.level:
if self.currentselect and self.currentselect.level: if self.currentselect and self.currentselect.level:
self.currentselect._onMouseDown(self.currentselect, x, y) self.currentselect._onMouseDown(self.currentselect, x, y, button=button, clicks=clicks)
else: else:
if MODE in [" ", "s", "b"]: if MODE in [" ", "s", "b"]:
if self.currentselect and MODE=="s": if self.currentselect and MODE=="s":
@ -2177,43 +2226,43 @@ class Layer:
if i.hitTest(x, y): if i.hitTest(x, y):
if MODE in [" ", "s"]: if MODE in [" ", "s"]:
self.currentselect = i self.currentselect = i
i._onMouseDown(x, y) i._onMouseDown(x, y, button=button, clicks=clicks)
test=True test=True
break break
if not test: if not test:
self.currentselect = None self.currentselect = None
else: else:
self.onMouseDown(self, x, y) self.onMouseDown(self, x, y, button=button, clicks=clicks)
else: else:
self.onMouseDown(self, x, y) self.onMouseDown(self, x, y, button=button, clicks=clicks)
def onMouseDown(self, self1, x, y): def onMouseDown(self, self1, x, y, button=1, clicks=1):
pass pass
def _onMouseUp(self,x,y): def _onMouseUp(self,x,y, button=1, clicks=1):
if self.level and MODE in [" ", "s"]: if self.level and MODE in [" ", "s"]:
if self.currentselect: if self.currentselect:
self.currentselect._onMouseUp(x, y) self.currentselect._onMouseUp(x, y, button=1)
else: else:
self.onMouseUp(self, x, y) self.onMouseUp(self, x, y, button=button)
def onMouseUp(self, self1, x, y): def onMouseUp(self, self1, x, y, button=1, clicks=1):
pass pass
def _onMouseMove(self,x,y): def _onMouseMove(self,x,y, button=1):
if self.level and MODE in [" ", "s"]: if self.level and MODE in [" ", "s"]:
if self.currentselect: if self.currentselect:
self.currentselect._onMouseMove(x, y) self.currentselect._onMouseMove(x, y, button=button)
else: else:
self.onMouseMove(self, x, y) self.onMouseMove(self, x, y)
def onMouseMove(self, self1, x, y): def onMouseMove(self, self1, x, y, button=1):
pass pass
def _onMouseDrag(self, x, y): def _onMouseDrag(self, x, y, button=1):
if self.level and MODE in [" ", "s"]: if self.level and MODE in [" ", "s"]:
if self.currentselect: if self.currentselect:
self.currentselect._onMouseDrag(x, y) self.currentselect._onMouseDrag(x, y, button=button)
else: else:
self.onMouseDrag(self, x, y) self.onMouseDrag(self, x, y, button=button)
def onMouseDrag(self, self1, x, y): def onMouseDrag(self, self1, x, y, button=1):
pass pass
def _onKeyDown(self, key): def _onKeyDown(self, key):
if self.level and MODE in [" ", "s"]: if self.level and MODE in [" ", "s", "t"]:
if self.currentselect: if self.currentselect:
self.currentselect._onKeyDown(key) self.currentselect._onKeyDown(key)
else: else:
@ -2221,7 +2270,7 @@ class Layer:
def onKeyDown(self, self1, key): def onKeyDown(self, self1, key):
pass pass
def _onKeyUp(self, key): def _onKeyUp(self, key):
if self.level and MODE in [" ", "s"]: if self.level and MODE in [" ", "s", "t"]:
if self.currentselect: if self.currentselect:
self.currentselect._onKeyUp(key) self.currentselect._onKeyUp(key)
else: else:
@ -2271,13 +2320,13 @@ class Group (object):
return max([i.maxx for i in self.layers]) return max([i.maxx for i in self.layers])
def getmaxy(self): def getmaxy(self):
return max([i.maxy for i in self.layers]) return max([i.maxy for i in self.layers])
def onMouseDown(self, self1, x, y): def onMouseDown(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseDrag(self, self1, x, y): def onMouseDrag(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseUp(self, self1, x, y): def onMouseUp(self, self1, x, y, button=1, clicks=1):
pass pass
def onMouseMove(self, self1, x, y): def onMouseMove(self, self1, x, y, button=1, clicks=1):
pass pass
def getactiveframe(self): def getactiveframe(self):
return self.activelayer.activeframe return self.activelayer.activeframe
@ -2362,7 +2411,7 @@ class Group (object):
return nx, ny return nx, ny
def onLoad(self, self1): def onLoad(self, self1):
pass pass
def _onMouseDown(self, x, y): def _onMouseDown(self, x, y, button=1, clicks=1):
x, y = self.localtransform(x, y) x, y = self.localtransform(x, y)
if self.level: if self.level:
if self.activelayer.currentselect and self.activelayer.currentselect.level: if self.activelayer.currentselect and self.activelayer.currentselect.level:
@ -2380,7 +2429,7 @@ class Group (object):
(self.activelayer.currentselect.minx+self.activelayer.currentselect.maxx-5<x<self.activelayer.currentselect.minx+self.activelayer.currentselect.maxx+5 and \ (self.activelayer.currentselect.minx+self.activelayer.currentselect.maxx-5<x<self.activelayer.currentselect.minx+self.activelayer.currentselect.maxx+5 and \
self.activelayer.currentselect.miny-5<y<self.activelayer.currentselect.miny+5): self.activelayer.currentselect.miny-5<y<self.activelayer.currentselect.miny+5):
SCALING = True SCALING = True
self.activelayer.currentselect._onMouseDown(x, y) self.activelayer.currentselect._onMouseDown(x, y, button=button, clicks=clicks)
else: else:
test = False test = False
for i in reversed(self.currentFrame()): for i in reversed(self.currentFrame()):
@ -2388,47 +2437,47 @@ class Group (object):
if MODE in [" ", "s"]: if MODE in [" ", "s"]:
self.activelayer.currentselect = i self.activelayer.currentselect = i
test=True test=True
i._onMouseDown(x, y) i._onMouseDown(x, y, button=button, clicks=clicks)
break break
if not test: if not test:
self.activelayer.currentselect = None self.activelayer.currentselect = None
else: else:
self.onMouseDown(self, x, y) self.onMouseDown(self, x, y, button=button, clicks=clicks)
else: else:
self.onMouseDown(self, x, y) self.onMouseDown(self, x, y, button=button, clicks=clicks)
def onMouseDown(self, self1, x, y): def onMouseDown(self, self1, x, y, button=1, clicks=1):
pass pass
def _onMouseUp(self,x,y): def _onMouseUp(self,x,y, button=1, clicks=1):
global SCALING global SCALING
SCALING = False SCALING = False
x, y = self.localtransform(x, y) x, y = self.localtransform(x, y)
if self.activelayer.level and MODE in [" ", "s"]: if self.activelayer.level and MODE in [" ", "s"]:
if self.activelayer.currentselect: if self.activelayer.currentselect:
self.activelayer.currentselect._onMouseUp(x, y) self.activelayer.currentselect._onMouseUp(x, y, button=button, clicks=clicks)
else: else:
self.onMouseUp(self, x, y) self.onMouseUp(self, x, y, button=button, clicks=clicks)
def onMouseUp(self, self1, x, y): def onMouseUp(self, self1, x, y, button=1, clicks=1):
pass pass
def _onMouseMove(self,x,y): def _onMouseMove(self,x,y,button=1,clicks=1):
x, y = self.localtransform(x, y) x, y = self.localtransform(x, y)
if self.activelayer.level and MODE in [" ", "s"]: if self.activelayer.level and MODE in [" ", "s"]:
if self.activelayer.currentselect: if self.activelayer.currentselect:
self.activelayer.currentselect._onMouseMove(x, y) self.activelayer.currentselect._onMouseMove(x, y, button=button)
else: else:
self.onMouseMove(self, x, y) self.onMouseMove(self, x, y, button=button)
def onMouseMove(self, self1, x, y): def onMouseMove(self, self1, x, y, button=1, clicks=1):
pass pass
def _onMouseDrag(self, x, y): def _onMouseDrag(self, x, y, button=1, clicks=1):
x, y = self.localtransform(x, y) x, y = self.localtransform(x, y)
if self.activelayer.level and MODE in [" ", "s"]: if self.activelayer.level and MODE in [" ", "s"]:
if self.activelayer.currentselect: if self.activelayer.currentselect:
self.activelayer.currentselect._onMouseDrag(x, y) self.activelayer.currentselect._onMouseDrag(x, y, button=button)
else: else:
self.onMouseDrag(self, x, y) self.onMouseDrag(self, x, y, button=button)
def onMouseDrag(self, self1, x, y): def onMouseDrag(self, self1, x, y, button=1, clicks=1):
pass pass
def _onKeyDown(self, key): def _onKeyDown(self, key):
if self.activelayer.level and MODE in [" ", "s"]: if self.activelayer.level and MODE in [" ", "s", "t"]:
if self.activelayer.currentselect: if self.activelayer.currentselect:
self.activelayer.currentselect._onKeyDown(key) self.activelayer.currentselect._onKeyDown(key)
else: else:
@ -2436,7 +2485,7 @@ class Group (object):
def onKeyDown(self, self1, key): def onKeyDown(self, self1, key):
pass pass
def _onKeyUp(self, key): def _onKeyUp(self, key):
if self.activelayer.level and MODE in [" ", "s"]: if self.activelayer.level and MODE in [" ", "s", "t"]:
if self.activelayer.currentselect: if self.activelayer.currentselect:
self.activelayer.currentselect._onKeyUp(key) self.activelayer.currentselect._onKeyUp(key)
else: else: