transparently interpret Unicode strings
This commit is contained in:
parent
c3810fc782
commit
7f35c53ae5
|
|
@ -1,4 +1,5 @@
|
|||
from DirectFrame import *
|
||||
import types
|
||||
|
||||
# DirectEntry States:
|
||||
ENTRY_FOCUS_STATE = PGEntry.SFocus # 0
|
||||
|
|
@ -96,6 +97,7 @@ class DirectEntry(DirectFrame):
|
|||
self.guiItem.setTextDef(i, self.onscreenText.textNode)
|
||||
|
||||
# Update initial text
|
||||
self.unicodeText = 0
|
||||
if self['initialText']:
|
||||
self.set(self['initialText'])
|
||||
|
||||
|
|
@ -147,10 +149,29 @@ class DirectEntry(DirectFrame):
|
|||
apply(self['focusOutCommand'], self['focusOutExtraArgs'])
|
||||
|
||||
def set(self, text):
|
||||
self.guiItem.setText(text)
|
||||
self.unicodeText = isinstance(text, types.UnicodeType)
|
||||
if self.unicodeText:
|
||||
self.guiItem.setWtext(text)
|
||||
else:
|
||||
self.guiItem.setText(text)
|
||||
|
||||
def get(self):
|
||||
return self.guiItem.getText()
|
||||
if self.unicodeText:
|
||||
return self.guiItem.getWtext()
|
||||
else:
|
||||
# Although we weren't expecting a wide character, the user
|
||||
# might give us one. If this happens, we have to return a
|
||||
# wide string.
|
||||
wtext = self.guiItem.getWtext()
|
||||
text = self.guiItem.getText()
|
||||
try:
|
||||
matches = (wtext == unicode(text))
|
||||
except:
|
||||
return wtext
|
||||
if matches:
|
||||
return text
|
||||
else:
|
||||
return wtext
|
||||
|
||||
def setCursorPosition(self, pos):
|
||||
if (pos < 0):
|
||||
|
|
|
|||
|
|
@ -191,8 +191,7 @@ class OnscreenText(DirectObject, NodePath):
|
|||
textNode.setBin('fixed')
|
||||
textNode.setDrawOrder(drawOrder)
|
||||
|
||||
textNode.setText(text)
|
||||
|
||||
self.setText(text)
|
||||
if not text:
|
||||
# If we don't have any text, assume we'll be changing it later.
|
||||
self.mayChange = 1
|
||||
|
|
@ -243,13 +242,25 @@ class OnscreenText(DirectObject, NodePath):
|
|||
self.textNode.clearText()
|
||||
|
||||
def setText(self, text):
|
||||
self.textNode.setText(text)
|
||||
self.unicodeText = isinstance(text, types.UnicodeType)
|
||||
if self.unicodeText:
|
||||
self.textNode.setWtext(text)
|
||||
else:
|
||||
self.textNode.setText(text)
|
||||
|
||||
def appendText(self, text):
|
||||
self.textNode.appendText(text)
|
||||
if isinstance(text, types.UnicodeType):
|
||||
self.unicodeText = 1
|
||||
if self.unicodeText:
|
||||
self.textNode.appendWtext(text)
|
||||
else:
|
||||
self.textNode.appendText(text)
|
||||
|
||||
def getText(self):
|
||||
return self.textNode.getText()
|
||||
if self.unicodeText:
|
||||
return self.textNode.getWtext()
|
||||
else:
|
||||
return self.textNode.getText()
|
||||
|
||||
def setX(self, x):
|
||||
self.setPos(x, self.pos[1])
|
||||
|
|
|
|||
Loading…
Reference in New Issue