import sys
data = []
+valid = True
def out(str):
sys.stderr.write(str)
key = value = None
return key, value
-def find_key(data, keysubstr):
+def find_key(data, keysubstr, exact = False):
i = 0
n = len(data)
while i < n:
l = data[i]
key, value = getkeyval(l)
if key and value:
- if key.find(keysubstr) != -1:
+ if (exact and key == keysubstr) or \
+ (not exact and key.find(keysubstr) != -1):
return i, key, value
i += 1
return -1, None, None
pairs['window.unfocus.font'] = 'window.label.unfocus.font'
pairs['window.justify'] = 'window.label.justify'
pairs['menu.frame.disableColor'] = 'menu.disabled.textColor'
- pairs['style.'] = 'info.'
pairs['menu.frame'] = 'menu.items'
pairs['menu.hilite'] = 'menu.selected'
pairs['.picColor'] = '.imageColor'
break
def pressed(data):
- i, nul, nul = find_key(data, 'window.button.pressed')
+ i, nul, nul = find_key(data, 'window.button.pressed', True)
if i >= 0:
out('The window.button.pressed option has been replaced by ' +
'window.button.pressed.focus and ' +
'window.button.pressed.unfocus.\nUpdate (Y/n)? ')
if read_bool():
+ l = data[i]
out('Removing "window.button.pressed"\n')
data.pop(i)
out('Adding "window.button.pressed.unfocus"\n')
out('Removing ' + key + '\n')
data.pop(i)
-
-
-
-
-
-
-
-
-
-
-
+def pixelsize(data):
+ fonts = ('window.label.focus.font',
+ 'menu.items.font',
+ 'menu.title.font')
+ for f in fonts:
+ i, key, value = find_key(data, f, True)
+ if value:
+ if value.find('pixelsize') == -1:
+ out('*** ERROR *** The ' + key + ' font size is not being '
+ 'specified by pixelsize. It is recommended that you use '
+ 'pixelsize instead of pointsize for specifying theme '
+ 'fonts. e.g. "sans:pixelsize=12"\n')
+ global valid
+ valid = False
+
+def warn_missing(data):
+ need = ('window.button.hover.focus', 'window.button.hover.unfocus',
+ 'menuOverlap')
+ for n in need:
+ i, nul, nul = find_key(data, n)
+ if i < 0:
+ out('The ' + n + ' value was not found in the theme, but it '
+ 'can optionally be set.\n')
+
+def err_missing(data):
+ need = ('window.button.disabled.focus', 'window.button.disabled.unfocus',
+ 'window.frame.focusColor', 'window.frame.unfocusColor')
+ for n in need:
+ i, nul, nul = find_key(data, n)
+ if i < 0:
+ out('*** ERROR *** The ' + n + ' value was not found in the '
+ 'theme, but it is required to be set.\n')
+ global valid
+ valid = False
def usage():
data[i] = data[i].strip()
simple_replace(data)
-#remove(data)
-#pressed(data)
-#x_fonts(data)
+remove(data)
+pressed(data)
+x_fonts(data)
xft_fonts(data)
+pixelsize(data)
+warn_missing(data)
+err_missing(data)
for l in data:
print l
+
+sys.exit(not valid)