launcher/sys.py/UI/skin_manager.py
2018-05-31 23:40:11 +08:00

75 lines
2.3 KiB
Python

# -*- coding: utf-8 -*-
import pygame
import config
import ConfigParser
class CaseConfigParser(ConfigParser.SafeConfigParser):
def optionxform(self, optionstr):
return optionstr
class SkinManager(object):
"""
_HighColor = pygame.Color(51,166,255) # #33a6ff
_TextColor = pygame.Color(83,83,83) # #535353
_FrontColor = pygame.Color(131,199,219) ## light blue,#83c7db
_URLColor = pygame.Color(51,166,255) ## blue more #33a6ff
_LineColor = pygame.Color(169,169,169) # #a9a9a9
_TitleBgColor = pygame.Color(228,228,228) # #e4e4e4
_ActiveColor = pygame.Color(175,90,0) ## light brown #af5a00
"""
_Colors = {}
_Config = None
def __init__(self):
pass
def ConvertToRGB(self,hexstr):
h = hexstr.lstrip('#')
return tuple(int(h[i:i+2], 16) for i in (0, 2 ,4))
def Init(self):
Colors = {}
Colors["High"] = pygame.Color(51,166,255)
Colors["Text"] = pygame.Color(83,83,83)
Colors["Front"] = pygame.Color(131,199,219)
Colors["URL"] = pygame.Color(51,166,255)
Colors["Line"] = pygame.Color(169,169,169)
Colors["TitleBg"] = pygame.Color(228,228,228)
Colors["Active"] = pygame.Color(175,90,0)
Colors["White"] = pygame.Color(255,255,255)
self._Colors = Colors
self._Config = CaseConfigParser()
fname = "../skin/"+config.SKIN+"/config.cfg"
try:
self._Config.read(fname)
except Exception,e:
print("read skin config.cfg error %s" % str(e))
return
else:
if "Colors" in self._Config.sections():
colour_opts = self._Config.options("Colors")
# print(colour_opts)
for i in self._Colors:
if i in colour_opts:
try:
self._Colors[i] = self.ConvertToRGB(self._Config.get("Colors",i))
except Exception,e:
print("error in ConvertToRGB %s" % str(e))
continue
def GiveColor(self,name):
if name in self._Colors:
return self._Colors[name]
else:
return pygame.Color(255,0,0)