Commit cb9b70c4 authored by Steven M. Gava's avatar Steven M. Gava

further config system work

parent 3c019444
...@@ -43,6 +43,7 @@ from ColorDelegator import ColorDelegator ...@@ -43,6 +43,7 @@ from ColorDelegator import ColorDelegator
from UndoDelegator import UndoDelegator from UndoDelegator import UndoDelegator
from OutputWindow import OutputWindow, OnDemandOutputWindow from OutputWindow import OutputWindow, OnDemandOutputWindow
from IdleConf import idleconf from IdleConf import idleconf
from configHandler import idleConf
import idlever import idlever
# We need to patch linecache.checkcache, because we don't want it # We need to patch linecache.checkcache, because we don't want it
...@@ -141,15 +142,15 @@ class ModifiedColorDelegator(ColorDelegator): ...@@ -141,15 +142,15 @@ class ModifiedColorDelegator(ColorDelegator):
ColorDelegator.recolorize_main(self) ColorDelegator.recolorize_main(self)
tagdefs = ColorDelegator.tagdefs.copy() tagdefs = ColorDelegator.tagdefs.copy()
cconf = idleconf.getsection('Colors') theme = idleConf.GetOption('main','Theme','name')
tagdefs.update({ tagdefs.update({
"stdin": cconf.getcolor("stdin"),
"stdout": cconf.getcolor("stdout"), "stdin": idleConf.GetHighlight(theme, "stdin"),
"stderr": cconf.getcolor("stderr"), "stdout": idleConf.GetHighlight(theme, "stdout"),
"console": cconf.getcolor("console"), "stderr": idleConf.GetHighlight(theme, "stderr"),
"ERROR": cconf.getcolor("ERROR"), "console": idleConf.GetHighlight(theme, "console"),
None: cconf.getcolor("normal"), "ERROR": idleConf.GetHighlight(theme, "error"),
None: idleConf.GetHighlight(theme, "normal"),
}) })
......
...@@ -21,7 +21,7 @@ break-fontStyle= normal ...@@ -21,7 +21,7 @@ break-fontStyle= normal
hit-background= #000000 hit-background= #000000
hit-foreground= #ffffff hit-foreground= #ffffff
hit-fontStyle= normal hit-fontStyle= normal
cursor-background= black cursor-foreround= black
error-background= #ff7777 error-background= #ff7777
#shell window #shell window
stdout-foreground= blue stdout-foreground= blue
...@@ -48,7 +48,7 @@ hilite-background= #006868 ...@@ -48,7 +48,7 @@ hilite-background= #006868
break-foreground= #ff7777 break-foreground= #ff7777
hit-background= #000000 hit-background= #000000
hit-foreground= #ffffff hit-foreground= #ffffff
cursor-background= black cursor-foreground= black
error-background= #ff7777 error-background= #ff7777
#shell window #shell window
stdout-foreground= blue stdout-foreground= blue
......
...@@ -320,10 +320,11 @@ class ConfigDialog(Toplevel): ...@@ -320,10 +320,11 @@ class ConfigDialog(Toplevel):
('#to choose items','comment'),('\n','normal'),('def','keyword'), ('#to choose items','comment'),('\n','normal'),('def','keyword'),
(' ','normal'),('func','definition'),('(param):','normal'), (' ','normal'),('func','definition'),('(param):','normal'),
('\n ','normal'),('"""string"""','string'),('\n var0 = ','normal'), ('\n ','normal'),('"""string"""','string'),('\n var0 = ','normal'),
("'string'",'string'),('\n var1 = ','normal'),("'selected'",'selected'),('\n var2 = ','normal'), ("'string'",'string'),('\n var1 = ','normal'),("'selected'",'selected'),
("'found'",'found'),('\n\n','normal'),(' error ','error'), ('\n var2 = ','normal'),("'found'",'found'),('\n\n','normal'),
('cursor |','cursor'),('\n ','normal'),('shell','shfg'),(' ','normal'),('stdout','shstdout'),(' ','normal'), (' error ','error'),(' ','normal'),('cursor |','cursor'),
('stderr','shstderr')) ('\n ','normal'),('shell','shfg'),(' ','normal'),('stdout','shstdout'),
(' ','normal'),('stderr','shstderr'),('\n','normal'))
for txTa in textAndTags: for txTa in textAndTags:
text.insert(END,txTa[0],txTa[1]) text.insert(END,txTa[0],txTa[1])
for element in self.themeElements.keys(): for element in self.themeElements.keys():
...@@ -535,8 +536,36 @@ class ConfigDialog(Toplevel): ...@@ -535,8 +536,36 @@ class ConfigDialog(Toplevel):
return frame return frame
def PaintThemeSample(self): def PaintThemeSample(self):
pass if self.themeBuiltin.get: #a default theme
theme=self.builtinTheme.get()
else: #a user theme
theme=self.customTheme.get()
colours=idleConf.GetHighlight(theme, 'normal')
#normalBg=colours['background']
apply(self.textHighlightSample.tag_config,('normal',),colours)
colours=idleConf.GetHighlight(theme, 'keyword')
apply(self.textHighlightSample.tag_config,('keyword',),colours)
colours=idleConf.GetHighlight(theme, 'comment')
apply(self.textHighlightSample.tag_config,('comment',),colours)
colours=idleConf.GetHighlight(theme, 'definition')
apply(self.textHighlightSample.tag_config,('definition',),colours)
colours=idleConf.GetHighlight(theme, 'string')
apply(self.textHighlightSample.tag_config,('string',),colours)
colours=idleConf.GetHighlight(theme, 'hilite')
apply(self.textHighlightSample.tag_config,('selected',),colours)
colours=idleConf.GetHighlight(theme, 'hit')
apply(self.textHighlightSample.tag_config,('found',),colours)
colours=idleConf.GetHighlight(theme, 'cursor')
apply(self.textHighlightSample.tag_config,('cursor',),colours)
colours=idleConf.GetHighlight(theme, 'error')
apply(self.textHighlightSample.tag_config,('error',),colours)
colours=idleConf.GetHighlight(theme, 'console')
apply(self.textHighlightSample.tag_config,('shfg',),colours)
colours=idleConf.GetHighlight(theme, 'stdout')
apply(self.textHighlightSample.tag_config,('shstdout',),colours)
colours=idleConf.GetHighlight(theme, 'stderr')
apply(self.textHighlightSample.tag_config,('shstderr',),colours)
def LoadFontCfg(self): def LoadFontCfg(self):
##base editor font selection list ##base editor font selection list
fonts=list(tkFont.families(self)) fonts=list(tkFont.families(self))
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
## ##
##---------------------------------------------------------------------------## ##---------------------------------------------------------------------------##
""" """
Provides access to configuration information Provides access to stored idle configuration information
""" """
import os import os
...@@ -153,8 +153,17 @@ class IdleConf: ...@@ -153,8 +153,17 @@ class IdleConf:
return cfgParser.sections() return cfgParser.sections()
def GetHighlight(self, theme, element): def GetHighlight(self, theme, element):
#get some fallback defaults
defaultFg=self.GetOption('highlight', theme, 'normal' + "-foreground",
default='#000000')
defaultBg=self.GetOption('highlight', theme, 'normal' + "-background",
default='#ffffff')
#try for requested element colours
fore = self.GetOption('highlight', theme, element + "-foreground") fore = self.GetOption('highlight', theme, element + "-foreground")
back = self.GetOption('highlight', theme, element + "-background") back = self.GetOption('highlight', theme, element + "-background")
#fall back if required
if not fore: fore=defaultFg
if not back: back=defaultBg
return {"foreground": fore, return {"foreground": fore,
"background": back} "background": back}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment