mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
changed baseline style menu to pie menu
This commit is contained in:
parent
79b50aeabb
commit
f2242f06d9
@ -385,6 +385,7 @@ class LevelEditor(NodePath, PandaObject):
|
||||
('select_sign_color', self.setDNATargetColor),
|
||||
('select_sign_orientation', self.setDNATargetOrientation),
|
||||
('select_sign_texture', self.setDNATargetCode, ['sign']),
|
||||
('select_baseline_style', self.panel.setSignBaselineStyle),
|
||||
('select_door_color', self.setDNATargetColor),
|
||||
('select_door_orientation', self.setDNATargetOrientation),
|
||||
('select_door_texture', self.setDNATargetCode, ['door']),
|
||||
@ -1192,6 +1193,8 @@ class LevelEditor(NodePath, PandaObject):
|
||||
menuMode = 'sign_color'
|
||||
elif direct.fAlt:
|
||||
menuMode = 'sign_orientation'
|
||||
elif direct.fShift:
|
||||
menuMode = 'baseline_style'
|
||||
else:
|
||||
menuMode = 'sign_texture'
|
||||
return menuMode
|
||||
@ -2266,8 +2269,8 @@ class LevelStyleManager:
|
||||
# Create a baseline style dictionary for each neighborhood
|
||||
self.createBaselineStyleDictionary(neighborhood))
|
||||
# Using this dictionary, create color pie menus
|
||||
#attribute.setMenu(
|
||||
# self.createBaselineStyleMenu(neighborhood, attribute.getDict()))
|
||||
attribute.setMenu(
|
||||
self.createBaselineStyleMenu(neighborhood, attribute.getDict()))
|
||||
dict[neighborhood] = attribute
|
||||
|
||||
def createBaselineStyleDictionary(self, neighborhood):
|
||||
@ -2318,11 +2321,22 @@ class LevelStyleManager:
|
||||
else:
|
||||
pair = map(string.strip, l.split(':'))
|
||||
if style.__dict__.has_key(pair[0]):
|
||||
# Convert colors and count strings to numerical values
|
||||
if (pair[0] == 'color'):
|
||||
style[pair[0]] = eval(pair[1])
|
||||
pair_0 = pair[0]
|
||||
# Convert some numerical values
|
||||
if (pair_0 == 'color'
|
||||
or pair_0 == 'kern'
|
||||
or pair_0 == 'wiggle'
|
||||
or pair_0 == 'stumble'
|
||||
or pair_0 == 'stomp'
|
||||
or pair_0 == 'curve'
|
||||
or pair_0 == 'x'
|
||||
or pair_0 == 'z'
|
||||
or pair_0 == 'scaleX'
|
||||
or pair_0 == 'scaleZ'
|
||||
or pair_0 == 'roll'):
|
||||
style[pair_0] = eval(pair[1])
|
||||
else:
|
||||
style[pair[0]] = pair[1]
|
||||
style[pair_0] = pair[1]
|
||||
else:
|
||||
print 'extractBaselineStyle: Invalid Key'
|
||||
print pair[0]
|
||||
@ -2341,7 +2355,7 @@ class LevelStyleManager:
|
||||
keys = dictionary.keys()
|
||||
keys.sort()
|
||||
styles = map(lambda x, d = dictionary: d[x], keys)
|
||||
sf = 0.03
|
||||
sf = 0.1
|
||||
aspectRatio = (direct.dr.width/float(direct.dr.height))
|
||||
for i in range(numItems):
|
||||
# Get the node
|
||||
@ -2368,9 +2382,9 @@ class LevelStyleManager:
|
||||
Create a style sample using the DNA info in the style
|
||||
"""
|
||||
baseline = DNASignBaseline()
|
||||
#baselineStyle = DNABaselineStyle(styleList = [(baselineStyle, 10.0)])
|
||||
#self.setDNABaselineStyle(baseline, baselineStyle, width = 12.0,
|
||||
# name = 'baseline_style_sample')
|
||||
# Set some example text:
|
||||
DNASetBaselineString(baseline, "Example Text")
|
||||
baselineStyle.copyTo(baseline)
|
||||
return baseline.traverse(hidden, DNASTORE, 1)
|
||||
|
||||
# WALL STYLE FUNCTIONS
|
||||
@ -3183,36 +3197,74 @@ class DNABaselineStyle:
|
||||
self.flags = baseline.getFlags()
|
||||
self.color = baseline.getColor()
|
||||
|
||||
def copyTo(self, baseline):
|
||||
if self.code != None:
|
||||
baseline.setCode(self.code)
|
||||
if self.kern != None:
|
||||
baseline.setKern(self.kern)
|
||||
if self.wiggle != None:
|
||||
baseline.setWiggle(self.wiggle)
|
||||
if self.stumble != None:
|
||||
baseline.setStumble(self.stumble)
|
||||
if self.stomp != None:
|
||||
baseline.setStomp(self.stomp)
|
||||
if self.curve != None:
|
||||
diameter=0.0
|
||||
if self.curve:
|
||||
diameter=1.0/self.curve
|
||||
baseline.setWidth(diameter)
|
||||
baseline.setHeight(diameter)
|
||||
if (self.x != None) or (self.z != None):
|
||||
pos=baseline.getPos()
|
||||
if self.x != None:
|
||||
pos=Vec3(self.x, pos[1], pos[2])
|
||||
if self.z != None:
|
||||
pos=Vec3(pos[0], pos[1], self.z)
|
||||
baseline.setPos(pos)
|
||||
if self.roll != None:
|
||||
baseline.setHpr(Vec3(0.0, 0.0, self.roll))
|
||||
if (self.scaleX != None) or (self.scaleZ != None):
|
||||
scale=baseline.getScale()
|
||||
if self.scaleX != None:
|
||||
scale=Vec3(self.scaleX, scale[1], scale[2])
|
||||
if self.scaleZ != None:
|
||||
scale=Vec3(scale[0], scale[1], self.scaleZ)
|
||||
baseline.setScale(scale)
|
||||
if self.flags != None:
|
||||
baseline.setFlags(self.flags)
|
||||
if self.color != None:
|
||||
baseline.setColor(self.color)
|
||||
|
||||
def output(self, file = sys.stdout):
|
||||
""" Output style description to a file """
|
||||
file.write('baselineStyle\n')
|
||||
if self.name:
|
||||
if self.name != None:
|
||||
file.write('name: %s\n' % self.name)
|
||||
if self.code:
|
||||
if self.code != None:
|
||||
file.write('code: %s\n' % self.code)
|
||||
if self.kern:
|
||||
if self.kern != None:
|
||||
file.write('kern: %s\n' % self.kern)
|
||||
if self.wiggle:
|
||||
if self.wiggle != None:
|
||||
file.write('wiggle: %s\n' % self.wiggle)
|
||||
if self.stumble:
|
||||
if self.stumble != None:
|
||||
file.write('stumble: %s\n' % self.stumble)
|
||||
if self.stomp:
|
||||
if self.stomp != None:
|
||||
file.write('stomp: %s\n' % self.stomp)
|
||||
if self.curve:
|
||||
if self.curve != None:
|
||||
file.write('curve: %s\n' % self.curve)
|
||||
if self.x:
|
||||
if self.x != None:
|
||||
file.write('x: %s\n' % self.x)
|
||||
if self.z:
|
||||
if self.z != None:
|
||||
file.write('z: %s\n' % self.z)
|
||||
if self.scaleX:
|
||||
if self.scaleX != None:
|
||||
file.write('scaleX: %s\n' % self.scaleX)
|
||||
if self.scaleZ:
|
||||
if self.scaleZ != None:
|
||||
file.write('scaleZ: %s\n' % self.scaleZ)
|
||||
if self.roll:
|
||||
if self.roll != None:
|
||||
file.write('roll: %s\n' % self.roll)
|
||||
if self.flags:
|
||||
if self.flags != None:
|
||||
file.write('flags: %s\n' % self.flags)
|
||||
if self.color:
|
||||
if self.color != None:
|
||||
file.write('color: Vec4(%.2f, %.2f, %.2f, 1.0)\n'
|
||||
% (self.color[0], self.color[1], self.color[2]))
|
||||
file.write('endBaselineStyle\n')
|
||||
@ -3602,21 +3654,21 @@ class LevelEditorPanel(Pmw.MegaToplevel):
|
||||
self.baselineTextBox = Entry(
|
||||
gridFrame, width = 24,
|
||||
textvariable=self.baselineString)
|
||||
self.baselineTextBox.grid(row=1, column=0, columnspan=6)
|
||||
self.baselineTextBox.grid(row=1, column=0, columnspan=3)
|
||||
|
||||
levelAttribute = (
|
||||
"""levelAttribute = (
|
||||
self.styleManager.attributeDictionary
|
||||
['baseline_style']['toontown_central']
|
||||
.getDict().keys())
|
||||
levelAttribute.sort()
|
||||
baselineStyleList = ["<custom>", "Zero"] + levelAttribute
|
||||
baselineStyleList = ["<custom>", "Plain"] + levelAttribute
|
||||
self.baselineStyleMenu = Pmw.ComboBox(
|
||||
gridFrame, labelpos = W,
|
||||
label_text = 'Style:', entry_width = 12,
|
||||
selectioncommand = self.setSignBaselineStyle, history = 0,
|
||||
scrolledlist_items = baselineStyleList)
|
||||
self.baselineStyleMenu.selectitem(baselineStyleList[0])
|
||||
self.baselineStyleMenu.grid(row=2, column=0, columnspan=3)
|
||||
self.baselineStyleMenu.selectitem(0)
|
||||
self.baselineStyleMenu.grid(row=2, column=0, columnspan=3)"""
|
||||
|
||||
fontList = [""]+self.styleManager.getCatalogCodes('font')
|
||||
self.fontMenu = Pmw.ComboBox(
|
||||
@ -3624,8 +3676,8 @@ class LevelEditorPanel(Pmw.MegaToplevel):
|
||||
label_text = 'Font:', entry_width = 12,
|
||||
selectioncommand = self.setSignBaslineFont, history = 0,
|
||||
scrolledlist_items = fontList)
|
||||
self.fontMenu.selectitem(fontList[0])
|
||||
self.fontMenu.grid(row=2, column=3, columnspan=3)
|
||||
self.fontMenu.selectitem(0)
|
||||
self.fontMenu.grid(row=1, column=3, columnspan=3)
|
||||
|
||||
signButtonFrame = Frame(gridFrame)
|
||||
|
||||
@ -3953,7 +4005,6 @@ class LevelEditorPanel(Pmw.MegaToplevel):
|
||||
return target
|
||||
|
||||
def selectSignBaseline(self, val):
|
||||
print "\nselectSignBaseline:", val
|
||||
if not self.currentSignDNA:
|
||||
return
|
||||
# Temporarily undefine DNATarget (this will speed
|
||||
@ -4039,68 +4090,34 @@ class LevelEditorPanel(Pmw.MegaToplevel):
|
||||
|
||||
def setSignBaselineStyle(self, val):
|
||||
baseline=self.currentBaselineDNA
|
||||
if baseline:
|
||||
settings={}
|
||||
if val == '<custom>':
|
||||
return
|
||||
elif val == 'Zero':
|
||||
if not baseline:
|
||||
return #skyler: This isn't working yet.
|
||||
# As a workaround, select the baseline from the tk panel.
|
||||
# Try to find the first baseline in the sign:
|
||||
sign=self.findSignFromDNARoot()
|
||||
if sign:
|
||||
self.currentSignDNA = sign
|
||||
baseline=DNAGetChild(sign, DNA_SIGN_BASELINE)
|
||||
if baseline and val:
|
||||
self.levelEditor.DNATarget=baseline
|
||||
self.currentBaselineDNA=baseline
|
||||
settings=val
|
||||
self.levelEditor.replaceSelectedEnabled=0
|
||||
|
||||
# Don't set string: self.baselineString.set('')
|
||||
self.addCurveFloater.set(0)
|
||||
self.addKernFloater.set(0)
|
||||
self.addWiggleFloater.set(0)
|
||||
self.addStumbleFloater.set(0)
|
||||
self.addStompFloater.set(0)
|
||||
|
||||
self.bigFirstLetterIntVar.set(0)
|
||||
self.setBigFirstLetter();
|
||||
|
||||
self.allCapsIntVar.set(0)
|
||||
self.setAllCaps()
|
||||
|
||||
self.dropShadowIntVar.set(0)
|
||||
self.setDropShadow()
|
||||
|
||||
self.fontMenu.selectitem(0)
|
||||
self.setSignBaslineFont('')
|
||||
|
||||
self.addXFloater.set(0)
|
||||
self.addZFloater.set(0)
|
||||
self.addScaleXFloater.set(1)
|
||||
self.addScaleZFloater.set(1)
|
||||
self.addRollFloater.set(0)
|
||||
|
||||
#self.updateSelectedObjColor(Vec4(1.0))
|
||||
self.setCurrentColor(Vec4(1.0))
|
||||
self.setResetColor(Vec4(1.0))
|
||||
baseline.setColor(Vec4(1.0))
|
||||
|
||||
self.levelEditor.replaceSelectedEnabled=1
|
||||
self.levelEditor.replaceSelected()
|
||||
return
|
||||
else:
|
||||
settings = (
|
||||
self.styleManager.attributeDictionary
|
||||
['baseline_style']['toontown_central']
|
||||
# TODO: toontown_centeral should not be hard coded.
|
||||
.getDict()[val])
|
||||
self.levelEditor.replaceSelectedEnabled=0
|
||||
|
||||
# Don't set string: self.baselineString.set('')
|
||||
if settings['curve']:
|
||||
self.addCurveFloater.set(float(settings['curve']))
|
||||
if settings['kern']:
|
||||
self.addKernFloater.set(float(settings['kern']))
|
||||
if settings['wiggle']:
|
||||
self.addWiggleFloater.set(float(settings['wiggle']))
|
||||
if settings['stumble']:
|
||||
self.addStumbleFloater.set(float(settings['stumble']))
|
||||
if settings['stomp']:
|
||||
self.addStompFloater.set(float(settings['stomp']))
|
||||
if settings['curve'] != None:
|
||||
self.addCurveFloater.set(settings['curve'])
|
||||
if settings['kern'] != None:
|
||||
self.addKernFloater.set(settings['kern'])
|
||||
if settings['wiggle'] != None:
|
||||
self.addWiggleFloater.set(settings['wiggle'])
|
||||
if settings['stumble'] != None:
|
||||
self.addStumbleFloater.set(settings['stumble'])
|
||||
if settings['stomp'] != None:
|
||||
self.addStompFloater.set(settings['stomp'])
|
||||
|
||||
flags=settings['flags']
|
||||
if flags:
|
||||
if flags != None:
|
||||
self.bigFirstLetterIntVar.set('b' in flags)
|
||||
self.setBigFirstLetter();
|
||||
|
||||
@ -4111,23 +4128,23 @@ class LevelEditorPanel(Pmw.MegaToplevel):
|
||||
self.setDropShadow()
|
||||
|
||||
code = settings['code']
|
||||
if code:
|
||||
if code != None:
|
||||
self.fontMenu.selectitem(code)
|
||||
self.setSignBaslineFont(code)
|
||||
|
||||
if settings['x']:
|
||||
self.addXFloater.set(float(settings['x']))
|
||||
if settings['z']:
|
||||
self.addZFloater.set(float(settings['z']))
|
||||
if settings['scaleX']:
|
||||
self.addScaleXFloater.set(float(settings['scaleX']))
|
||||
if settings['scaleZ']:
|
||||
self.addScaleZFloater.set(float(settings['scaleZ']))
|
||||
if settings['roll']:
|
||||
self.addRollFloater.set(float(settings['roll']))
|
||||
if settings['x'] != None:
|
||||
self.addXFloater.set(settings['x'])
|
||||
if settings['z'] != None:
|
||||
self.addZFloater.set(settings['z'])
|
||||
if settings['scaleX'] != None:
|
||||
self.addScaleXFloater.set(settings['scaleX'])
|
||||
if settings['scaleZ'] != None:
|
||||
self.addScaleZFloater.set(settings['scaleZ'])
|
||||
if settings['roll'] != None:
|
||||
self.addRollFloater.set(settings['roll'])
|
||||
|
||||
color = settings['color']
|
||||
if color:
|
||||
if color != None:
|
||||
#self.updateSelectedObjColor(settings['color'])
|
||||
self.setCurrentColor(color)
|
||||
self.setResetColor(color)
|
||||
@ -4158,8 +4175,7 @@ class LevelEditorPanel(Pmw.MegaToplevel):
|
||||
# Remove the flag:
|
||||
flags=string.join(flags.split(flagChar), '')
|
||||
baseline.setFlags(flags)
|
||||
s=self.baselineString.get()#skyler
|
||||
self.setBaselineString(s)
|
||||
self.levelEditor.replaceSelected()
|
||||
|
||||
def setBigFirstLetter(self):
|
||||
self.adjustBaselineFlag(self.bigFirstLetterIntVar.get(), 'b')
|
||||
|
Loading…
x
Reference in New Issue
Block a user