From d4b777bf793ac8b6aec46bb046679a747a8d0d5d Mon Sep 17 00:00:00 2001 From: Dave Schuyler Date: Tue, 13 Mar 2001 06:48:22 +0000 Subject: [PATCH] fixes to baseline styles (but they're not perfect yet) --- direct/src/leveleditor/LevelEditor.py | 74 +++++++++++++++------------ 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/direct/src/leveleditor/LevelEditor.py b/direct/src/leveleditor/LevelEditor.py index 59d99742af..058f4a1277 100644 --- a/direct/src/leveleditor/LevelEditor.py +++ b/direct/src/leveleditor/LevelEditor.py @@ -336,6 +336,9 @@ class LevelEditor(NodePath, PandaObject): # Become the new node path self.assign(hidden.attachNewNode('LevelEditor')) + # Enable replaceSelected by default: + self.replaceSelectedEnabled=1 + # Create ancillary objects # Style manager for keeping track of styles/colors self.styleManager = LevelStyleManager() @@ -626,10 +629,11 @@ class LevelEditor(NodePath, PandaObject): return DNASTORE.findDNAGroup(nodePath.id()) def replaceSelected(self): - # Update visible geometry using new DNA - newRoot = self.replace(self.selectedNPRoot, self.selectedDNARoot) - # Reselect node path and respawn followSelectedNodePathTask - direct.select(newRoot) + if self.replaceSelectedEnabled: + # Update visible geometry using new DNA + newRoot = self.replace(self.selectedNPRoot, self.selectedDNARoot) + # Reselect node path and respawn followSelectedNodePathTask + direct.select(newRoot) def replace(self, nodePath, dnaNode): """ Replace a node path with the results of a DNANode traversal """ @@ -3571,20 +3575,13 @@ class LevelEditorPanel(Pmw.MegaToplevel): self.levelEditor.selectedNodePathHookHooks.append(self.updateSignPage) gridFrame = Frame(signPage) - self.baselineString=StringVar() - self.baselineString.trace("wu", self.signBaselineTrace) - self.baselineTextBox = Entry( - gridFrame, width = 24, - textvariable=self.baselineString) - self.baselineTextBox.grid(row=1, column=0, columnspan=6) - signSelectedFrame = Frame(gridFrame) self.currentBaselineIndex=0 self.baselineMenu = Pmw.ComboBox( signSelectedFrame, labelpos = W, - label_text = 'Selected:', entry_width = 14, + label_text = 'Selected:', entry_width = 24, selectioncommand = self.selectSignBaseline, history = 0, # unique = 0, scrolledlist_items = ['']) @@ -3598,16 +3595,14 @@ class LevelEditorPanel(Pmw.MegaToplevel): signSelectedFrame.grid(row=0, column=0, columnspan=6) - fontList = [""]+self.styleManager.getCatalogCodes('font') - self.fontMenu = Pmw.ComboBox( - gridFrame, labelpos = W, - 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.baselineString=StringVar() + self.baselineString.trace("wu", self.signBaselineTrace) + self.baselineTextBox = Entry( + gridFrame, width = 24, + textvariable=self.baselineString) + self.baselineTextBox.grid(row=1, column=0, columnspan=6) - levelAttribute = ( # Yes, there are a lot of steps here: + levelAttribute = ( self.styleManager.attributeDictionary ['baseline_style']['toontown_central'] .getDict().keys()) @@ -3621,6 +3616,15 @@ class LevelEditorPanel(Pmw.MegaToplevel): self.baselineStyleMenu.selectitem(baselineStyleList[0]) self.baselineStyleMenu.grid(row=2, column=0, columnspan=3) + fontList = [""]+self.styleManager.getCatalogCodes('font') + self.fontMenu = Pmw.ComboBox( + gridFrame, labelpos = W, + 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) + signButtonFrame = Frame(gridFrame) self.bigFirstLetterIntVar = IntVar() @@ -3947,6 +3951,7 @@ class LevelEditorPanel(Pmw.MegaToplevel): return target def selectSignBaseline(self, val): + print "\nselectSignBaseline:", val if not self.currentSignDNA: return # Temporarily undefine DNATarget (this will speed @@ -4037,7 +4042,8 @@ class LevelEditorPanel(Pmw.MegaToplevel): if val == '': return elif val == 'Zero': - self.currentBaselineDNA=None + self.levelEditor.replaceSelectedEnabled=0 + # Don't set string: self.baselineString.set('') self.addCurveFloater.set(0) self.addKernFloater.set(0) @@ -4047,18 +4053,21 @@ class LevelEditorPanel(Pmw.MegaToplevel): self.bigFirstLetterIntVar.set(0) self.allCapsIntVar.set(0) self.dropShadowIntVar.set(0) - self.currentBaselineDNA=baseline - target=self.levelEditor.DNATarget - self.levelEditor.DNATarget=None self.fontMenu.selectitem(0) self.addXFloater.set(0) self.addZFloater.set(0) self.addScaleXFloater.set(1) self.addScaleZFloater.set(1) self.addRollFloater.set(0) - self.levelEditor.DNATarget=target + self.bigFirstLetterIntVar.set(0) + self.allCapsIntVar.set(0) + self.dropShadowIntVar.set(0) + + self.updateSelectedObjColor(Vec4(1.0)) + + self.levelEditor.replaceSelectedEnabled=1 self.levelEditor.replaceSelected() return else: @@ -4067,7 +4076,7 @@ class LevelEditorPanel(Pmw.MegaToplevel): ['baseline_style']['toontown_central'] # TODO: toontown_centeral should not be hard coded. .getDict()[val]) - self.currentBaselineDNA=None + self.levelEditor.replaceSelectedEnabled=0 # Don't set string: self.baselineString.set('') if settings['curve']: @@ -4086,11 +4095,6 @@ class LevelEditorPanel(Pmw.MegaToplevel): self.allCapsIntVar.set('c' in flags) self.dropShadowIntVar.set('d' in flags) - self.currentBaselineDNA=baseline - - target=self.levelEditor.DNATarget - self.levelEditor.DNATarget=None - if settings['code']: self.fontMenu.selectitem(settings['code']) if settings['x']: @@ -4103,9 +4107,11 @@ class LevelEditorPanel(Pmw.MegaToplevel): self.addScaleZFloater.set(float(settings['scaleZ'])) if settings['roll']: self.addRollFloater.set(float(settings['roll'])) + + if settings['color']: + self.updateSelectedObjColor(settings['color']) - self.levelEditor.DNATarget=target - + self.levelEditor.replaceSelectedEnabled=1 self.levelEditor.replaceSelected()