#!BPY """ Name: 'Save Current Theme' Blender: 234 Group: 'Help' Tooltip: 'Save current theme as a bpython script' """ # $Id$ # # -------------------------------------------------------------------------- # save_theme version 2.34 Sep 20, 2004 # Copyright (C) 2004: Willian P. Germano, wgermano _at_ ig.com.br # -------------------------------------------------------------------------- # Released under the Blender Artistic License (BAL): # http://download.blender.org/documentation/html/x21254.html # # The scripts generated by this script are put under Public Domain by # default, but you are free to edit the ones you generate with this script # and change their license to another one of your choice. # -------------------------------------------------------------------------- import Blender from Blender.Window import Theme, FileSelector theme = Theme.Get()[0] # get current theme # default filename: theme's name + '_theme.py' in user's scripts dir: default_fname = Blender.Get("scriptsdir") default_fname = Blender.sys.join(default_fname, theme.name + '_theme.py') def write_theme(filename): "Write the current theme as a bpython script" if filename.find('.py', -3) <= 0: filename += '.py' fout = file(filename, "w") fout.write("""#!BPY \"\"\" Name: '%s' Blender: 234 Group: 'Theme' Tooltip: 'Change current theme' \"\"\" # This script was automatically generated by the save_theme.py bpython script. # By default, these generated scripts are released as Public Domain, but you # are free to change the license of the scripts you generate with # save_theme.py before releasing them. import Blender from Blender.Window import Theme theme = Theme.New('%s') """ % (theme.name, theme.name)) for tsp in theme.get(): # command = "\n%s = theme.get('%s')" % (tsp, tsp) fout.write(command + "\n") exec(command) exec("vars = dir(%s)" % tsp) vars.remove('theme') for var in vars: v = "%s.%s" % (tsp, var) exec("value = %s" % v) fout.write("%s = %s\n" % (v, value)) fout.write('\nBlender.Redraw(-1)') fout.close() FileSelector(write_theme, "Save Current Theme", default_fname)