+def pressed(data):
+ i, nul, nul = find_key(data, 'window.button.pressed')
+ 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():
+ out('Removing "window.button.pressed"\n')
+ data.pop(i)
+ out('Adding "window.button.pressed.unfocus"\n')
+ data.insert(i, l.replace('window.button.pressed',
+ 'window.button.pressed.unfocus'))
+ out('Adding "window.button.pressed.focus"\n')
+ data.insert(i, l.replace('window.button.pressed',
+ 'window.button.pressed.focus'))
+
+def x_fonts(data):
+ i, nul, nul = find_key(data, 'window.font')
+ if i >= 0:
+ out('You appear to specify fonts using the old X fonts ' +
+ 'syntax.\nShall I remove all fonts from the theme (Y/n)? ')
+ if not read_bool():
+ return
+ else: return
+ while 1:
+ i, key = key_find(data, '.font')
+ if i < 0:
+ break
+ out('Removing "' + key + '"\n')
+ data.pop(i)
+
+def xft_fonts(data):
+ i, nul, nul = find_key(data, '.xft.')
+ if i >= 0:
+ out('You appear to specify fonts using the old Xft fonts ' +
+ 'syntax.\nShall I update these to the new syntax (Y/n)? ')
+ if not read_bool():
+ return
+ else: return
+ fonts = {}
+ fonts['window'] = 'window.label.focus.font'
+ fonts['menu.items'] = 'menu.items.font'
+ fonts['menu.title'] = 'menu.title.font'
+ for f in fonts.keys():
+ li, nul, flags = find_key(data, f + '.xft.flags')
+ if li < 0:
+ li, nul, flags = find_key(data, '*.xft.flags')
+ else:
+ out('Removing ' + f + '.xft.flags\n')
+ data.pop(li)
+ oi, nul, offset = find_key(data, f + '.xft.shadow.offset')
+ if oi < 0:
+ oi, nul, offset = find_key(data, '*.xft.shadow.offset')
+ else:
+ out('Removing ' + f + '.xft.shadow.offset\n')
+ data.pop(oi)
+ ti, nul, tint = find_key(data, f + '.xft.shadow.tint')
+ if ti < 0:
+ ti, nul, tint = find_key(data, '*.xft.shadow.tint')
+ else:
+ out('Removing ' + f + '.xft.shadow.tint\n')
+ data.pop(ti)
+ fi, nul, face = find_key(data, f + '.xft.font')
+ if fi < 0:
+ fi, nul, face = find_key(data, '*.xft.font')
+ if fi >= 0: fi = len(data) - 1
+ else:
+ out('Removing ' + f + '.xft.font\n')
+ data.pop(fi)
+
+ if fi >= 0:
+ s = face
+ if li >= 0:
+ if flags.find('bold'):
+ s = s + ':bold'
+ if flags.find('shadow'):
+ s = s + ':shadow=y'
+ if oi >= 0:
+ s = s + ':shadowoffset=' + offset
+ if ti >= 0:
+ s = s + ':shadowtint=' + tint
+ out('Adding ' + fonts[f] + '\n')
+ data.insert(fi, fonts[f] + ': ' + s)
+
+ for stars in ('*.xft.flags', '*.xft.shadow.offset' ,
+ '*.xft.shadow.tint', '*.xft.font'):
+ i, key, nul = find_key(data, stars)
+ if i >= 0:
+ out('Removing ' + key + '\n')
+ data.pop(i)