Scale sort of working.

This commit is contained in:
Skyler Lehmkuhl 2013-01-03 00:16:04 -05:00
parent b7a187e97a
commit 146f4a5362
2 changed files with 45 additions and 7 deletions

View File

@ -170,13 +170,26 @@ def onMouseDragObj(self, x, y,button=1,clicks=1):
self.y = y-self.inity self.y = y-self.inity
elif svlgui.MODE=="s": elif svlgui.MODE=="s":
if svlgui.SCALING: if svlgui.SCALING:
# self.xscale = ((self.maxx/2.0+self.minx)-x)/(self.maxx/2.0) # self.xscale = (x-(self.maxx/2.0+self.minx))/(self.maxx/2.0)
# self.yscale = ((self.maxy/2.0+self.miny)-y)/(self.maxy/2.0) # self.yscale = (y-(self.maxy/2.0+self.miny))/(self.maxy/2.0)
if self.initx>self.maxx/2:
self.xscale = (x-self.x)/self.maxx
else:
# I don't understand why I need 2*self.maxx instead of just maxx, but it works.
self.xscale = (2*self.maxx+self.x-(x-self.initx)-x)/self.maxx
self.x = x
if self.inity>self.maxy/2:
self.yscale = (y-self.y)/self.maxy
else:
# 3 times?? Why??
self.yscale = (3*self.maxy+self.y-(y-self.inity)-y)/self.maxy
self.y = y
print self.initx print self.initx
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,button=1,clicks=1): def onMouseDragText(self, x, y,button=1,clicks=1):
self.x = x-self.initx self.x = x-self.initx
@ -466,6 +479,30 @@ def save_file(widget=None):
svlgui.FILE = thetarfile svlgui.FILE = thetarfile
#thetarfile.close() #thetarfile.close()
def save_file_as(widget=None): def save_file_as(widget=None):
print "HI"
data = pickle.dumps((root,svlgui.Library))
tarinfo = tarfile.TarInfo('basefile')
tarinfo.size = len(data)
thetarfile = tarfile.open(fileobj=svlgui.file_dialog("save", name="untitled.beam").open('wb'),mode="w:gz")
thetarfile.addfile(tarinfo, StringIO.StringIO(data))
#Save the path so we can come back here
lastpath = os.path.abspath(".")
for i in svlgui.Library:
if i.type=="Image":
print "i.path: ",i.path
try:
os.chdir(os.sep.join(i.path.split(os.sep)[:-1]) or i.origpath)
i.path = i.path.split(os.sep)[-1]
thetarfile.add(i.path.split(os.sep)[-1])
except OSError:
tmpdir = tempfile.mkdtemp()
os.chdir(tmpdir)
i.pilimage.save(i.path)
thetarfile.add(i.path)
os.remove(i.path)
os.chdir(lastpath)
thetarfile.close()
svlgui.FILE = thetarfile
pass pass
def import_to_stage(widget=None): def import_to_stage(widget=None):
thefile = svlgui.file_dialog("open",None,["jpg","png","bmp"]).path thefile = svlgui.file_dialog("open",None,["jpg","png","bmp"]).path
@ -554,7 +591,7 @@ svlgui.menufuncs([["File",
("Open", open_file,"<Control>O"), ("Open", open_file,"<Control>O"),
("Open .sc", open_sc_file), ("Open .sc", open_sc_file),
("Save",save_file,"<Control>S"), ("Save",save_file,"<Control>S"),
("Save As", save_file_as,"<Shift><Control>S"), ("Save As", save_file_as,"/^s"),
"Publish", "Publish",
("Quit",quit,"<Control>Q")], ("Quit",quit,"<Control>Q")],
["Edit", ["Edit",

View File

@ -307,6 +307,7 @@ if SYSTEM=="osx":
m.about_cmd.enabled = 1 m.about_cmd.enabled = 1
m.quit_cmd.enabled = 1 m.quit_cmd.enabled = 1
m.save_cmd.enabled = 1 m.save_cmd.enabled = 1
m.save_as_cmd.enabled = 1
m.open_cmd.enabled = 1 m.open_cmd.enabled = 1
m.run_file.enabled = 1 m.run_file.enabled = 1
m.run_html.enabled = 1 m.run_html.enabled = 1
@ -537,7 +538,7 @@ def menufuncs(j):
#menu = GUI.Menu("Test", [("Run", 'run_file')]) #menu = GUI.Menu("Test", [("Run", 'run_file')])
menus.append(menu) menus.append(menu)
else: else:
cmds={"Save":"save_cmd", "Open":"open_cmd","About Lightningbeam...":"about_cmd",\ cmds={"Save":"save_cmd", "Save As":"save_as_cmd", "Open":"open_cmd","About Lightningbeam...":"about_cmd",\
"Preferences":"preferences_cmd"} "Preferences":"preferences_cmd"}
[setattr(app,cmds[k[0]],k[1]) for k in i if (k[0] in cmds)] [setattr(app,cmds[k[0]],k[1]) for k in i if (k[0] in cmds)]
@ -2086,7 +2087,7 @@ class frame:
if i.obj.iname: if i.obj.iname:
retval = retval+".put "+i.obj.iname+"="+i.name+" x="+str(i.x)+" y="+str(i.y)+" scalex="+str(i.xscale*100)+" scaley="+str(i.yscale*100)+"\n" retval = retval+".put "+i.obj.iname+"="+i.name+" x="+str(i.x)+" y="+str(i.y)+" scalex="+str(i.xscale*100)+" scaley="+str(i.yscale*100)+"\n"
else: else:
retval = retval+".put "+i.name+" x="+str(i.x)+" y="+str(i.y)+" scalex="+str(i.xscale*100)+" scaley="+str(i.yscale*100)+"\n" retval = retval+".put "+i.name+" x="+str(i.x)+" y="+str(i.y)+" scalex="+str(i.xscale*100)+"%% scaley="+str(i.yscale*100)+"%%\n"
else: else:
for i in self.objs: for i in self.objs:
if not i.obj in [j.obj for j in misc_funcs.lastval(self.parent.frames,self.parent.frames.index(self)).objs]: if not i.obj in [j.obj for j in misc_funcs.lastval(self.parent.frames,self.parent.frames.index(self)).objs]: