direct: fix Python 3 support in Pmw-based tools

Fixes #276
This commit is contained in:
rdb 2018-03-08 11:21:14 +01:00
parent 9a31478744
commit b0b32b9d6a

View File

@ -12,5 +12,28 @@ else:
if '_Pmw' in sys.modules:
sys.modules['_Pmw'].__name__ = '_Pmw'
# Hack to workaround broken Pmw.NoteBook in Python 3
def bordercolors(root, colorName):
lightRGB = []
darkRGB = []
for value in Pmw.Color.name2rgb(root, colorName, 1):
value40pc = (14 * value) // 10
if value40pc > int(Pmw.Color._MAX_RGB):
value40pc = int(Pmw.Color._MAX_RGB)
valueHalfWhite = (int(Pmw.Color._MAX_RGB) + value) // 2;
lightRGB.append(max(value40pc, valueHalfWhite))
darkValue = (60 * value) // 100
darkRGB.append(darkValue)
return (
'#%04x%04x%04x' % (lightRGB[0], lightRGB[1], lightRGB[2]),
'#%04x%04x%04x' % (darkRGB[0], darkRGB[1], darkRGB[2])
)
Pmw.Color.bordercolors = bordercolors
del bordercolors
def spawnTkLoop():
base.spawnTkLoop()