diff --git a/direct/src/showbase/TkGlobal.py b/direct/src/showbase/TkGlobal.py index bfdeb9b48f..673d337e3c 100644 --- a/direct/src/showbase/TkGlobal.py +++ b/direct/src/showbase/TkGlobal.py @@ -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()