More work on text
This commit is contained in:
parent
284a77b10f
commit
800719a4b5
|
|
@ -92,6 +92,9 @@ def onMouseDownGroup(self, x, y):
|
|||
self.ctext.onMouseUp = onMouseUpText
|
||||
self.add(self.ctext)
|
||||
self.ctext = None
|
||||
MainWindow.docbox.setvisible(True)
|
||||
MainWindow.textbox.setvisible(False)
|
||||
|
||||
def onMouseDownObj(self, x, y):
|
||||
MainWindow.scriptwindow.text = root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions
|
||||
self.clicked = True
|
||||
|
|
@ -103,7 +106,10 @@ def onMouseDownText(self,x,y):
|
|||
MainWindow.scriptwindow.text = root.descendItem().activelayer.frames[root.descendItem().activelayer.currentframe].actions
|
||||
self.clicked = True
|
||||
self.initx, self.inity = x-self.x, y-self.y
|
||||
#svlgui.alert('235')
|
||||
MainWindow.docbox.setvisible(False)
|
||||
MainWindow.textbox.setvisible(True)
|
||||
svlgui.CURRENTTEXT = self.obj
|
||||
print "Height", MainWindow.textbox.height
|
||||
def onMouseDownFrame(self, x, y):
|
||||
pass
|
||||
def onMouseUpGroup(self, x, y):
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
# Released under the GPLv3. For more information, see gpl.txt.
|
||||
|
||||
import svlgui
|
||||
import math
|
||||
import misc_funcs
|
||||
from misc_funcs import *
|
||||
|
||||
|
|
@ -259,17 +260,74 @@ class MainWindowOSX:
|
|||
[self.publishbutton,self.publishlabel._int(),None,self.sizebutton._int(),None,"nw", ""],
|
||||
[self.frameratelabel,10,None,self.publishbutton._int(),None,"nw", ""],
|
||||
[self.frameratentry,self.frameratelabel._int(),None,self.publishbutton._int(),None,"nw", ""])
|
||||
self.textbox = svlgui.Frame()
|
||||
self.tgroup = svlgui.RadioGroup("Static text", "Dynamic text", "Input text")
|
||||
def setmode(self):
|
||||
if self.value=="Static text":
|
||||
svlgui.CURRENTTEXT.dynamic = False
|
||||
self.textvarentry.text = ""
|
||||
self.textvarentry.disable()
|
||||
self.tinstancename.disable()
|
||||
self.tinstancename.text = "<Instance Name>"
|
||||
self.tinstancename._int().color = svlgui.Color("#AAAAAA").pygui
|
||||
elif self.value=="Input text":
|
||||
svlgui.CURRENTTEXT.dynamic = True
|
||||
svlgui.CURRENTTEXT.editable = False
|
||||
self.textvarentry.enable()
|
||||
self.tinstancename.enable()
|
||||
else:
|
||||
svlgui.CURRENTTEXT.dynamic = True
|
||||
svlgui.CURRENTTEXT.editable = True
|
||||
self.textvarentry.enable()
|
||||
self.tinstancename.enable()
|
||||
self.tgroup.action = setmode
|
||||
self.tfontlabel = svlgui.Label("Font:")
|
||||
self.tfontbutton = svlgui.Button("Times New Roman")
|
||||
self.mlgroup = svlgui.RadioGroup("Single line","Multiline","Multiline no wrap")
|
||||
self.fontsizelabel = svlgui.Label("Size:")
|
||||
self.fontsizentry = svlgui.TextEntry("16.0")
|
||||
self.fontsizentry.set_action(self.editFontSizeText)
|
||||
self.fontsizescale = svlgui.Scale(1,4,20)
|
||||
self.fontsizescale.set_action(self.editFontSizeScale)
|
||||
self.textvarlabel = svlgui.Label("Var:")
|
||||
self.textvarentry = svlgui.TextEntry(" ")
|
||||
self.textvarentry.set_action(self.setFontVar)
|
||||
self.textvarentry.disable()
|
||||
self.tgroup.textvarentry = self.textvarentry
|
||||
self.tinstancename = svlgui.TextEntry("<Instance Name>")
|
||||
self.tgroup.tinstancename = self.tinstancename
|
||||
self.tinstancename.original_color = self.tinstancename._int().color
|
||||
self.tinstancename._int().color = svlgui.Color("#aaaaaa").pygui
|
||||
self.tinstancename._int().mouse_down = self.darkentinstance
|
||||
self.tinstancename.set_action(self.setFontInstanceName)
|
||||
self.textbox.layout_self([self.tgroup[0],10,None,5,None,"nw",""],
|
||||
[self.tgroup[1],10,None,self.tgroup[0]._int(),None,"nw",""],
|
||||
[self.tgroup[2],10,None,self.tgroup[1]._int(),None,"nw",""],
|
||||
[self.tinstancename,10,None,self.tgroup[2]._int(),None,"nw",""],
|
||||
[self.tfontlabel,self.tinstancename._int(),None,5,None,"nw",""],
|
||||
[self.tfontbutton,self.tfontlabel._int(),None,5,None,"nw",""],
|
||||
[self.mlgroup[0],self.tinstancename._int(),None,self.tfontbutton._int(),None,"nw",""],
|
||||
[self.mlgroup[1],self.tinstancename._int(),None,self.mlgroup[0]._int(),None,"nw",""],
|
||||
[self.mlgroup[2],self.tinstancename._int(),None,self.mlgroup[1]._int(),None,"nw",""],
|
||||
[self.fontsizelabel,self.tfontbutton._int(),None,5,None,"nw",""],
|
||||
[self.fontsizentry,self.fontsizelabel._int(),None,5,None,"nw",""],
|
||||
[self.fontsizescale,self.fontsizentry._int(),None,5,None,"nw",""],
|
||||
[self.textvarlabel,self.tfontbutton._int(),None,self.fontsizentry._int()+3,None,"nw",""],
|
||||
[self.textvarentry,self.textvarlabel._int(),None,self.fontsizentry._int()+3,None,"nw",""])
|
||||
self.textvarentry.text=""
|
||||
self.frame.layout_self( [self.toolbox,0,None,0,None,"nw",""],
|
||||
#[self.paintbox,0,245,0,0,"nws","v"],
|
||||
[self.timelinebox,self.toolbox._int()+148,-500,0,None,"new","hv"],
|
||||
#[self.timelinebox,self.paintbox._int()+148,-500,0,None,"new","hv"],
|
||||
[self.layerbox,self.toolbox._int(),self.toolbox._int().width+150,0,None,"n","v"],
|
||||
#[self.layerbox,self.paintbox._int(),self.toolbox._int().width+150,0,None,"n","v"],
|
||||
[self.scriptwindow,self.timelinebox._int(),0,0,0,"nse", "hv"],
|
||||
[self.docbox,self.toolbox._int(),self.scriptwindow._int(),None,0,"wse", ""],
|
||||
[self.docbox,self.toolbox._int(),0,None,0,"wse", ""],
|
||||
[self.textbox,self.toolbox._int(),0,None,0,"wse", ""],
|
||||
[self.scriptwindow,self.timelinebox._int(),0,0,self.docbox._int(),"nse", "hv"],
|
||||
[self.stage,self.toolbox._int(),self.scriptwindow._int(),self.timelinebox._int()+2,self.docbox._int(),"nsew", "hv"],
|
||||
[self.paintbox,0,self.stage._int(),self.toolbox._int(),None,"nw","v"] )
|
||||
#[self.stage,self.paintbox._int(),self.scriptwindow._int(),self.timelinebox._int()+2,0,"nsew", "hv"] )
|
||||
self.textbox.setvisible(False)
|
||||
self.window.add(self.frame)
|
||||
if svlgui.SYSTEM=="osx":
|
||||
self.stage._int().become_target();
|
||||
|
|
@ -278,6 +336,33 @@ class MainWindowOSX:
|
|||
svlgui.FRAMERATE=int(self.frameratentry.text)
|
||||
if svlgui.SYSTEM=="osx":
|
||||
self.stage._int().become_target();
|
||||
def editFontSizeScale(self):
|
||||
self.fontsizentry.text = str(int(self.fontsizescale.value**2)*1.0)
|
||||
svlgui.CURRENTTEXT.size = int(self.fontsizescale.value**2)*1.0
|
||||
self.stage.draw()
|
||||
def editFontSizeText(self):
|
||||
self.fontsizescale.value = math.sqrt(float(self.fontsizentry.text))
|
||||
if svlgui.SYSTEM=="osx":
|
||||
self.stage._int().become_target();
|
||||
svlgui.CURRENTTEXT.size = int(self.fontsizescale.value**2)*1.0
|
||||
def setFontVar(self):
|
||||
if self.tgroup.value=="Static text":
|
||||
self.tgroup.value="Dynamic text"
|
||||
svlgui.CURRENTTEXT.variable = self.textvarentry.text
|
||||
if svlgui.SYSTEM=="osx":
|
||||
self.stage._int().become_target();
|
||||
def setFontInstanceName(self):
|
||||
if not self.tinstancename.text.strip() == "":
|
||||
svlgui.CURRENTTEXT.iname = self.tinstancename.text
|
||||
self.stage._int().become_target();
|
||||
else:
|
||||
self.tinstancename.text = "<Instance Name>"
|
||||
self.tinstancename._int().color = svlgui.Color("#AAAAAA").pygui
|
||||
self.stage._int().become_target()
|
||||
def darkentinstance(self,*args):
|
||||
self.tinstancename._int().color = self.tinstancename.original_color
|
||||
if self.tinstancename.text == "<Instance Name>":
|
||||
self.tinstancename.text = ""
|
||||
|
||||
# use mainwindowosx, this is just to comment things out
|
||||
class MainWindowHTML:
|
||||
|
|
|
|||
43
svlgui.py
43
svlgui.py
|
|
@ -49,6 +49,8 @@ EXPORT_OPTS = {"swf":False,"html5":False,"basehtml":False,"fallback":False,"pack
|
|||
#Editing - whether the user is editing text
|
||||
EDITING = True
|
||||
|
||||
CURRENTTEXT = None
|
||||
|
||||
#Library. Contatins all objects whether displayed or not.
|
||||
Library = []
|
||||
|
||||
|
|
@ -160,7 +162,7 @@ if sys.platform=="linux2":
|
|||
from GUI import Frame as OSXFrame, Color as OSXColor, Grid as OSXGrid
|
||||
from GUI import Label as OSXLabel, RadioGroup as OSXRadioGroup, RadioButton as OSXRadioButton
|
||||
from GUI import Column, Row, ScrollableView, TextEditor, Colors, ModalDialog
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font, TextField, CheckBox
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font, TextField, CheckBox, Slider
|
||||
from GUI.StdMenus import basic_menus, file_cmds, print_cmds
|
||||
from GUI.StdButtons import DefaultButton, CancelButton
|
||||
from GUI.Files import FileType
|
||||
|
|
@ -185,7 +187,7 @@ elif sys.platform=="win32":
|
|||
from GUI import Frame as OSXFrame, Color as OSXColor, Grid as OSXGrid
|
||||
from GUI import Label as OSXLabel, RadioGroup as OSXRadioGroup, RadioButton as OSXRadioButton
|
||||
from GUI import Column, Row, ScrollableView, TextEditor, Colors, ModalDialog
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font, TextField, CheckBox
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font, TextField, CheckBox, Slider
|
||||
from GUI.StdMenus import basic_menus, file_cmds, print_cmds
|
||||
from GUI.StdButtons import DefaultButton, CancelButton
|
||||
from GUI.Files import FileType
|
||||
|
|
@ -214,7 +216,7 @@ elif sys.platform=="darwin":
|
|||
from GUI import Frame as OSXFrame, Color as OSXColor, Grid as OSXGrid
|
||||
from GUI import Label as OSXLabel, RadioGroup as OSXRadioGroup, RadioButton as OSXRadioButton
|
||||
from GUI import Column, Row, ScrollableView, TextEditor, Colors, ModalDialog
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font, TextField, CheckBox
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font, TextField, CheckBox, Slider
|
||||
from GUI.StdMenus import basic_menus, file_cmds, print_cmds
|
||||
from GUI.StdButtons import DefaultButton, CancelButton
|
||||
from GUI.Files import FileType
|
||||
|
|
@ -539,6 +541,10 @@ class Label(Widget):
|
|||
def _int(self):
|
||||
if SYSTEM=="osx":
|
||||
return self.label
|
||||
def disable(self):
|
||||
self.label.enabled = False
|
||||
def enable(self):
|
||||
self.label.enabled = True
|
||||
class RadioGroup(Widget):
|
||||
def __getitem__(self,num):
|
||||
return self.buttons[num]
|
||||
|
|
@ -700,6 +706,24 @@ class Frame(Widget):
|
|||
else:
|
||||
self.frame.height = 0
|
||||
|
||||
class Scale(Widget):
|
||||
def __init__(self,min,val,max):
|
||||
if SYSTEM=="osx":
|
||||
self.scale = Slider('h')
|
||||
self.scale.min_value = min
|
||||
self.scale.max_value = max
|
||||
self.scale.value = val
|
||||
def _int(self):
|
||||
return self.scale
|
||||
def set_action(self,action):
|
||||
if SYSTEM=="osx":
|
||||
self.scale.action = action
|
||||
def getval(self):
|
||||
return self.scale.value
|
||||
def setval(self, val):
|
||||
self.scale.value = val
|
||||
value = property(getval, setval)
|
||||
|
||||
class Canvas(Widget):
|
||||
def __init__(self,width=False,height=False):
|
||||
self.objs=[]
|
||||
|
|
@ -889,6 +913,10 @@ class TextEntry(Widget):
|
|||
def _int(self):
|
||||
if SYSTEM=="osx":
|
||||
return self.entry
|
||||
def disable(self):
|
||||
self.entry.enabled = False
|
||||
def enable(self):
|
||||
self.entry.enabled = True
|
||||
def set_action(self,action):
|
||||
if SYSTEM=="osx":
|
||||
self.entry.enter_action = action
|
||||
|
|
@ -1270,7 +1298,7 @@ class Text (object):
|
|||
self.xscale = 1
|
||||
self.yscale = 1
|
||||
self.fill = TEXTCOLOR
|
||||
self.font = Font(FONT,24)
|
||||
self.font = Font(FONT,16)
|
||||
self.dynamic = False
|
||||
self.variable = None
|
||||
self.password = False
|
||||
|
|
@ -1320,10 +1348,17 @@ class Text (object):
|
|||
return self.width
|
||||
def getmaxy(self):
|
||||
return 0
|
||||
def getsize(self):
|
||||
return self.font.size
|
||||
def setsize(self,size):
|
||||
self.font = Font(self.font.family,size,self.font.style)
|
||||
self.width = self.font.width(self.text)
|
||||
self.height = self.font.height
|
||||
minx = property(getminx)
|
||||
miny = property(getminy)
|
||||
maxx = property(getmaxx)
|
||||
maxy = property(getmaxy)
|
||||
size = property(getsize,setsize)
|
||||
def onMouseDown(self, self1, x, y):
|
||||
pass
|
||||
def onMouseDrag(self, self1, x, y):
|
||||
|
|
|
|||
Loading…
Reference in New Issue