Sign.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from ShowBaseGlobal import *
  2. from DirectObject import *
  3. import GuiSign
  4. import GuiManager
  5. import GuiLabel
  6. guiMgr = GuiManager.GuiManager.getPtr(base.win, base.mak.node(), base.renderGui.node())
  7. class Sign(DirectObject):
  8. def __init__(self, name, label=None, font=interfaceFont):
  9. self.name = name
  10. # label in this case means GuiLabel
  11. if not label:
  12. self.label = GuiLabel.GuiLabel.makeSimpleTextLabel(self.name, font)
  13. self.label.setForegroundColor(1., 0., 0., 1.)
  14. self.label.setBackgroundColor(1., 1., 1., 0.)
  15. self.label.thaw()
  16. elif (type(label) == type('')):
  17. self.label = GuiLabel.GuiLabel.makeSimpleTextLabel(label, font)
  18. self.label.setForegroundColor(1., 0., 0., 1.)
  19. self.label.setBackgroundColor(1., 1., 1., 0.)
  20. self.label.thaw()
  21. else:
  22. self.label = label
  23. self.sign = GuiSign.GuiSign(self.name, self.label)
  24. self.setScale(0.1)
  25. self.managed = 0
  26. return None
  27. def cleanup(self):
  28. """cleanup(self)
  29. """
  30. if (self.managed):
  31. self.unmanage()
  32. self.sign = None
  33. return None
  34. def __str__(self):
  35. return "sign: %s contains label: %s" % (self.name, self.label.name)
  36. # accessing
  37. def getName(self):
  38. return self.name
  39. def setText(self, text):
  40. self.label.setText(text)
  41. def getLabel(self):
  42. return self.label
  43. def getGuiItem(self):
  44. return self.sign
  45. def setScale(self, scale):
  46. self.sign.setScale(scale)
  47. def getWidth(self):
  48. return self.label.getWidth()
  49. def setWidth(self, width):
  50. self.label.setWidth(width)
  51. # actions
  52. def manage(self):
  53. self.managed = 1
  54. self.sign.manage(guiMgr, base.eventMgr.eventHandler)
  55. def unmanage(self):
  56. self.managed = 0
  57. self.sign.unmanage()