[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3654] contrib/py/scripts/addons/ system_keyboard_svg.py: code cleanup
Campbell Barton
ideasman42 at gmail.com
Sun Jul 29 14:04:39 CEST 2012
Revision: 3654
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3654
Author: campbellbarton
Date: 2012-07-29 12:04:38 +0000 (Sun, 29 Jul 2012)
Log Message:
-----------
code cleanup
Modified Paths:
--------------
contrib/py/scripts/addons/system_keyboard_svg.py
Modified: contrib/py/scripts/addons/system_keyboard_svg.py
===================================================================
--- contrib/py/scripts/addons/system_keyboard_svg.py 2012-07-27 15:16:59 UTC (rev 3653)
+++ contrib/py/scripts/addons/system_keyboard_svg.py 2012-07-29 12:04:38 UTC (rev 3654)
@@ -1,26 +1,27 @@
-# ***** BEGIN GPL LICENSE BLOCK *****
+# ##### BEGIN GPL LICENSE BLOCK #####
#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# ***** END GPL LICENCE BLOCK *****
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+
# this script creates Keyboard layout images of the current keyboard configuration.
# the result will be writen to the blender default directory.
# first implementation done by jbakker
-# <pep8 compliant>
bl_info = {
"name": "Keyboard Layout (svg)",
@@ -38,29 +39,29 @@
import bpy
-keyboard = [
-['`', 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE', 'ZERO', 'MINUS', 'EQUAL', 'BACKSPACE'],
-['TAB', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '[', ']', '\\'],
-['CAPSLOCK', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', "'", 'ENTER'],
-['SHIFT', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', ',', '.', '/', 'SHIFT'],
-['CONTROL', 'OSKEY', 'ALT', 'SPACE', 'ALT', 'OSKEY', 'MENUKEY', 'CONTROL']
-]
+keyboard = (
+ ('`', 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE', 'ZERO', 'MINUS', 'EQUAL', 'BACKSPACE'),
+ ('TAB', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '(', ')', '\\'),
+ ('CAPSLOCK', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', "'", 'ENTER'),
+ ('SHIFT', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', ',', '.', '/', 'SHIFT'),
+ ('CONTROL', 'OSKEY', 'ALT', 'SPACE', 'ALT', 'OSKEY', 'MENUKEY', 'CONTROL')
+ )
# default dimension of a single key [width, heidgh]
-DEFAULT_KEY_DIMENSION = [100, 100]
+DEFAULT_KEY_DIMENSION = 100, 100
# alternative dimensions of specufic keys [keyname,[width, height]]
ALTERNATIVE_KEY_DIMENSIONS = {
-'BACKSPACE': [250, 100],
-'TAB': [175, 100],
-'\\': [175, 100],
-'CAPSLOCK': [225, 100],
-'ENTER': [240, 100],
-'SHIFT': [290, 100],
-'CONTROL': [225, 100],
-'ALT': [100, 100],
-'OSKEY': [100, 100],
-'MENUKEY': [100, 100],
-'SPACE': [690, 100],
+ 'BACKSPACE': (250, 100),
+ 'TAB': (175, 100),
+ '\\': (175, 100),
+ 'CAPSLOCK': (225, 100),
+ 'ENTER': (240, 100),
+ 'SHIFT': (290, 100),
+ 'CONTROL': (225, 100),
+ 'ALT': (100, 100),
+ 'OSKEY': (100, 100),
+ 'MENUKEY': (100, 100),
+ 'SPACE': (690, 100),
}
@@ -70,9 +71,9 @@
example of a viewtype is "VIEW_3D".
"""
for keyconfig in bpy.data.window_managers[0].keyconfigs:
- map = {}
+ kc_map = {}
for keymap in keyconfig.keymaps:
- if keymap.space_type in [viewtype]:
+ if keymap.space_type == viewtype:
for key in keymap.keymap_items:
if key.map_type == 'KEYBOARD':
test = 0
@@ -93,11 +94,11 @@
if len(cont) > 0:
cont = "[" + cont + "] "
ktype = key.type
- if ktype not in map.keys():
- map[ktype] = []
- map[ktype].append((test, cont + key.name))
+ if ktype not in kc_map:
+ kc_map[ktype] = []
+ kc_map[ktype].append((test, cont + key.name))
- filename = "keyboard_" + viewtype + ".svg"
+ filename = "keyboard_%s.svg" % viewtype
print(filename)
svgfile = open(filename, "w")
svgfile.write("""<?xml version="1.0" standalone="no"?>
@@ -197,24 +198,31 @@
for row in keyboard:
x = 0
for key in row:
- width = DEFAULT_KEY_DIMENSION[0]
- height = DEFAULT_KEY_DIMENSION[1]
- if key in ALTERNATIVE_KEY_DIMENSIONS.keys():
- width = ALTERNATIVE_KEY_DIMENSIONS[key][0]
- height = ALTERNATIVE_KEY_DIMENSIONS[key][1]
+ width, height = ALTERNATIVE_KEY_DIMENSIONS.get(key, DEFAULT_KEY_DIMENSION)
tx = 16
ty = 16
- svgfile.write("""<rect x=\"""" + str(x) + """\" y=\"""" + str(y) + """\" width=\"""" + str(width) + """\" height=\"""" + str(height) + """\" rx="20" ry="20" />
+ svgfile.write("""<rect x=\"""" + str(x) +
+ """\" y=\"""" + str(y) +
+ """\" width=\"""" + str(width) +
+ """\" height=\"""" + str(height) +
+ """\" rx="20" ry="20" />
""")
- svgfile.write("""<text class="key" x=\"""" + str(x + tx) + """\" y=\"""" + str(y + ty) + """\" width=\"""" + str(width) + """\" height=\"""" + str(height) + """\">
+ svgfile.write("""<text class="key" x=\"""" + str(x + tx) +
+ """\" y=\"""" + str(y + ty) +
+ """\" width=\"""" + str(width) +
+ """\" height=\"""" + str(height) + """\">
""")
svgfile.write(key)
svgfile.write("</text>")
ty = ty + 16
tx = 4
- if key in map.keys():
- for a in map[key]:
- svgfile.write("""<text class="add""" + str(a[0]) + """" x=\"""" + str(x + tx) + """\" y=\"""" + str(y + ty) + """\" width=\"""" + str(width) + """\" height=\"""" + str(height) + """\">
+ if key in kc_map:
+ for a in kc_map[key]:
+ svgfile.write("""<text class="add""" + str(a[0]) +
+ """" x=\"""" + str(x + tx) +
+ """\" y=\"""" + str(y + ty) +
+ """\" width=\"""" + str(width) +
+ """\" height=\"""" + str(height) + """\">
""")
svgfile.write(a[1])
svgfile.write("</text>")
@@ -231,13 +239,25 @@
Windows manager operator for keyboard leyout export
"""
bl_idname = "wm.keyboardlayout"
- bl_label = "Keyboard layout (SGV)"
+ bl_label = "Keyboard layout (SVG)"
def execute(self, context):
"""
Iterate over all viewtypes to export the keyboard layout.
"""
- for vt in ['VIEW_3D', 'LOGIC_EDITOR', 'NODE_EDITOR', 'CONSOLE', 'GRAPH_EDITOR', 'PROPERTIES', 'SEQUENCE_EDITOR', 'OUTLINER', 'IMAGE_EDITOR', 'TEXT_EDITOR', 'DOPESHEET_EDITOR', 'Window']:
+ for vt in ('VIEW_3D',
+ 'LOGIC_EDITOR',
+ 'NODE_EDITOR',
+ 'CONSOLE',
+ 'GRAPH_EDITOR',
+ 'PROPERTIES',
+ 'SEQUENCE_EDITOR',
+ 'OUTLINER',
+ 'IMAGE_EDITOR',
+ 'TEXT_EDITOR',
+ 'DOPESHEET_EDITOR',
+ 'Window'):
+
createKeyboard(vt)
return {'FINISHED'}
More information about the Bf-extensions-cvs
mailing list