From b234ee8e29986c627a4346494605dcd57be7a57e Mon Sep 17 00:00:00 2001 From: David Rose Date: Thu, 6 Feb 2003 01:33:24 +0000 Subject: [PATCH] accent marks on signs --- direct/src/leveleditor/LevelEditor.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/direct/src/leveleditor/LevelEditor.py b/direct/src/leveleditor/LevelEditor.py index a5d0ce3e4f..ce389bd65b 100644 --- a/direct/src/leveleditor/LevelEditor.py +++ b/direct/src/leveleditor/LevelEditor.py @@ -377,9 +377,18 @@ def DNASetBaselineString(baseline, text): # This should allow inlined graphics to stay in place. # end of todo. DNARemoveAllChildrenOfClass(baseline, DNA_SIGN_TEXT); - for i in text: + + # We can't just blindly iterate through the text, because it might + # be utf-8 encoded, meaning some characters are represented using + # multi-byte sequences. Instead, create a TextNode and use it to + # iterate through the characters of the text. + t = TextNode('') + t.setText(text) + for i in range(t.getNumChars()): + ch = t.getEncodedChar(i) + print "adding ch: %s" % (ch) text=DNASignText("text") - text.setLetters(i) + text.setLetters(ch) baseline.add(text) @@ -5381,7 +5390,8 @@ class LevelEditorPanel(Pmw.MegaToplevel): target=DNAGetChild(self.currentSignDNA, DNA_SIGN_BASELINE, index-1) if target: # Update panel info: - self.baselineString.set(DNAGetBaselineString(target)) + s = DNAGetBaselineString(target) + self.baselineString.set(s) self.fontMenu.selectitem(target.getCode()) try: val = 1.0/target.getWidth() @@ -5436,7 +5446,7 @@ class LevelEditorPanel(Pmw.MegaToplevel): #print self, a, b, mode, self.baselineString.get() baseline=self.currentBaselineDNA if baseline: - s=self.baselineString.get() + s = self.baselineString.get() self.setBaselineString(s) def addSignGraphic(self, code):