Sign.py 1.9 KB

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