mirror of
https://github.com/clockworkpi/launcher.git
synced 2026-01-05 05:28:53 +01:00
Allows for new skin config.ini format(s)
The new code checks for a config.ini file in the Skin's folder. Then it checks for a "Font_Paths" section where it replaces the default fonts with the names of the new fonts listed in the Config. You will have to add the desired fonts to the truetype folder within the skin folder and update the config to match the fonts you have added. If you remove the existing fonts in that folder, the launcher will not load if there is a problem with the config file.
Note that the system-wide font name variables do not change, but their referenced file does.
The new Config file would look something like this:
[Font_Paths]
varela = Roboto-Black
veramono = Roboto-Regular
noto = Roboto-Bold
notocjk = Roboto-Light
[Colors]
High = #f0ffff
Text = #ffffff
ReadOnlyText = #ffffff
Front = #614f7d
URL = #f0ffff
Line = #614f7d
TitleBg = #111013
Active = #ff70ba
Disabled = #e6e6ff
White = #111013
Black = #614f7d
This commit is contained in:
parent
ebe816ba5f
commit
639f4c1700
@ -28,9 +28,21 @@ class SkinManager(object):
|
||||
|
||||
def __init__(self):
|
||||
self.Init()
|
||||
|
||||
def configExists(self):
|
||||
if FileExists(config.SKIN+"/config.ini"):
|
||||
self._Config = CaseConfigParser()
|
||||
fname = config.SKIN+"/config.ini"
|
||||
try:
|
||||
return self._Config.read(fname)
|
||||
except Exception, e:
|
||||
print("skin config.ini read error %s" % str(e))
|
||||
return
|
||||
else:
|
||||
print("no skin config.ini file to read")
|
||||
return
|
||||
|
||||
def ConvertToRGB(self,hexstr):
|
||||
|
||||
h = hexstr.lstrip('#')
|
||||
return tuple(int(h[i:i+2], 16) for i in (0, 2 ,4))
|
||||
|
||||
@ -40,18 +52,28 @@ class SkinManager(object):
|
||||
if not SkinManager._Fonts:
|
||||
self.SetFonts()
|
||||
|
||||
def SetFonts(self):
|
||||
def SetFonts(self):
|
||||
if not pygame.font.get_init():
|
||||
pygame.font.init()
|
||||
|
||||
|
||||
skinpath = config.SKIN+"/truetype"
|
||||
fonts_path = {}
|
||||
fonts_path["varela"] = "%s/VarelaRound-Regular.ttf" % skinpath
|
||||
print(fonts_path["varela"])
|
||||
fonts_path["veramono"] = "%s/VeraMono.ttf" % skinpath
|
||||
fonts_path["noto"] = "%s/NotoSansMono-Regular.ttf" % skinpath
|
||||
fonts_path["notocjk"] = "%s/NotoSansCJK-Regular.ttf" % skinpath
|
||||
|
||||
|
||||
if self.configExists():
|
||||
if "Font_Paths" in self._Config.sections():
|
||||
font_opts = self._Config.options("Font_Paths")
|
||||
for i in fonts_path:
|
||||
if i in font_opts:
|
||||
try:
|
||||
fonts_path[i] = skinpath+"/"+self._Config.get("Font_Paths", i)+".ttf"
|
||||
except Exception, e:
|
||||
print("error in Font_Paths %s" % str(e))
|
||||
continue
|
||||
|
||||
for i in range(10,29):
|
||||
self._Fonts["varela%d"%i] = pygame.font.Font(fonts_path["varela"],i)
|
||||
|
||||
@ -84,29 +106,19 @@ class SkinManager(object):
|
||||
Colors["White"] = pygame.Color(255, 255, 255)
|
||||
Colors["Black"] = pygame.Color(0, 0, 0)
|
||||
|
||||
SkinManager._Colors = Colors
|
||||
|
||||
self._Config = CaseConfigParser()
|
||||
|
||||
fname = config.SKIN+"/config.ini"
|
||||
|
||||
try:
|
||||
self._Config.read(fname)
|
||||
except Exception, e:
|
||||
print("read skin config.cfg error %s" % str(e))
|
||||
return
|
||||
else:
|
||||
if self.configExists():
|
||||
if "Colors" in self._Config.sections():
|
||||
colour_opts = self._Config.options("Colors")
|
||||
# print(colour_opts)
|
||||
for i in SkinManager._Colors:
|
||||
for i in Colors:
|
||||
if i in colour_opts:
|
||||
try:
|
||||
SkinManager._Colors[i] = self.ConvertToRGB(
|
||||
Colors[i] = self.ConvertToRGB(
|
||||
self._Config.get("Colors", i))
|
||||
except Exception, e:
|
||||
print("error in ConvertToRGB %s" % str(e))
|
||||
continue
|
||||
|
||||
SkinManager._Colors = Colors
|
||||
|
||||
def GiveFont(self,name):
|
||||
return SkinManager._Fonts[name]
|
||||
@ -161,5 +173,3 @@ def InitMySkinManager():
|
||||
|
||||
|
||||
InitMySkinManager()
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user