skin_manager.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. import config
  4. import ConfigParser
  5. class CaseConfigParser(ConfigParser.SafeConfigParser):
  6. def optionxform(self, optionstr):
  7. return optionstr
  8. class SkinManager(object):
  9. """
  10. _HighColor = pygame.Color(51,166,255) # #33a6ff
  11. _TextColor = pygame.Color(83,83,83) # #535353
  12. _FrontColor = pygame.Color(131,199,219) ## light blue,#83c7db
  13. _URLColor = pygame.Color(51,166,255) ## blue more #33a6ff
  14. _LineColor = pygame.Color(169,169,169) # #a9a9a9
  15. _TitleBgColor = pygame.Color(228,228,228) # #e4e4e4
  16. _ActiveColor = pygame.Color(175,90,0) ## light brown #af5a00
  17. """
  18. _Colors = {}
  19. _Config = None
  20. def __init__(self):
  21. pass
  22. def ConvertToRGB(self,hexstr):
  23. h = hexstr.lstrip('#')
  24. return tuple(int(h[i:i+2], 16) for i in (0, 2 ,4))
  25. def Init(self):
  26. Colors = {}
  27. Colors["High"] = pygame.Color(51,166,255)
  28. Colors["Text"] = pygame.Color(83,83,83)
  29. Colors["Front"] = pygame.Color(131,199,219)
  30. Colors["URL"] = pygame.Color(51,166,255)
  31. Colors["Line"] = pygame.Color(169,169,169)
  32. Colors["TitleBg"] = pygame.Color(228,228,228)
  33. Colors["Active"] = pygame.Color(175,90,0)
  34. Colors["White"] = pygame.Color(255,255,255)
  35. self._Colors = Colors
  36. self._Config = CaseConfigParser()
  37. fname = "../skin/"+config.SKIN+"/config.cfg"
  38. try:
  39. self._Config.read(fname)
  40. except Exception,e:
  41. print("read skin config.cfg error %s" % str(e))
  42. return
  43. else:
  44. if "Colors" in self._Config.sections():
  45. colour_opts = self._Config.options("Colors")
  46. # print(colour_opts)
  47. for i in self._Colors:
  48. if i in colour_opts:
  49. try:
  50. self._Colors[i] = self.ConvertToRGB(self._Config.get("Colors",i))
  51. except Exception,e:
  52. print("error in ConvertToRGB %s" % str(e))
  53. continue
  54. def GiveColor(self,name):
  55. if name in self._Colors:
  56. return self._Colors[name]
  57. else:
  58. return pygame.Color(255,0,0)