- keymap import/export works again (broke with own api changes)
- function renames, move WM functions into collections wm.add_keymap() --> wm.keymaps.new() note: new is used for named items in a collection, which return the result. - Action.get_frame_range() is now a readonly property 'frame_range', floats rather then ints.
This commit is contained in:
		@@ -2760,7 +2760,9 @@ Takes:  {''')
 | 
			
		||||
                else:
 | 
			
		||||
                    file.write('\n\tTake: "%s" {' % sane_takename(blenAction))
 | 
			
		||||
 | 
			
		||||
                act_start, act_end = blenAction.get_frame_range()
 | 
			
		||||
                act_start, act_end = blenAction.frame_range
 | 
			
		||||
                act_start = int(act_start)
 | 
			
		||||
                act_end = int(act_end)
 | 
			
		||||
# 				tmp = blenAction.getFrameNumbers()
 | 
			
		||||
# 				if tmp:
 | 
			
		||||
# 					act_start =	min(tmp)
 | 
			
		||||
 
 | 
			
		||||
@@ -2,377 +2,377 @@
 | 
			
		||||
import bpy
 | 
			
		||||
 | 
			
		||||
wm = bpy.context.manager
 | 
			
		||||
kc = wm.add_keyconfig('Maya')
 | 
			
		||||
kc = wm.keyconfigs.new('Maya')
 | 
			
		||||
 | 
			
		||||
# Map 3D View
 | 
			
		||||
km = kc.add_keymap('3D View', space_type='VIEW_3D', region_type='WINDOW', modal=False)
 | 
			
		||||
km = kc.keymaps.new('3D View', space_type='VIEW_3D', region_type='WINDOW', modal=False)
 | 
			
		||||
 | 
			
		||||
kmi = km.items.add('view3d.manipulator', 'LEFTMOUSE', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.manipulator', 'LEFTMOUSE', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.release_confirm = True
 | 
			
		||||
kmi = km.items.add('view3d.cursor3d', 'ACTIONMOUSE', 'PRESS')
 | 
			
		||||
kmi = km.items.add('view3d.rotate', 'LEFTMOUSE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('view3d.move', 'MIDDLEMOUSE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('view3d.zoom', 'RIGHTMOUSE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('view3d.view_selected', 'NUMPAD_PERIOD', 'PRESS')
 | 
			
		||||
kmi = km.items.add('view3d.view_center_cursor', 'NUMPAD_PERIOD', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('view3d.fly', 'F', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('view3d.smoothview', 'TIMER1', 'ANY', any=True)
 | 
			
		||||
kmi = km.items.add('view3d.rotate', 'TRACKPADPAN', 'ANY', alt=True)
 | 
			
		||||
kmi = km.items.add('view3d.rotate', 'MOUSEROTATE', 'ANY')
 | 
			
		||||
kmi = km.items.add('view3d.move', 'TRACKPADPAN', 'ANY')
 | 
			
		||||
kmi = km.items.add('view3d.zoom', 'TRACKPADZOOM', 'ANY')
 | 
			
		||||
kmi = km.items.add('view3d.zoom', 'NUMPAD_PLUS', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.cursor3d', 'ACTIONMOUSE', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.rotate', 'LEFTMOUSE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.move', 'MIDDLEMOUSE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.zoom', 'RIGHTMOUSE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_selected', 'NUMPAD_PERIOD', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.view_center_cursor', 'NUMPAD_PERIOD', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.fly', 'F', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.smoothview', 'TIMER1', 'ANY', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.rotate', 'TRACKPADPAN', 'ANY', alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.rotate', 'MOUSEROTATE', 'ANY')
 | 
			
		||||
kmi = km.items.new('view3d.move', 'TRACKPADPAN', 'ANY')
 | 
			
		||||
kmi = km.items.new('view3d.zoom', 'TRACKPADZOOM', 'ANY')
 | 
			
		||||
kmi = km.items.new('view3d.zoom', 'NUMPAD_PLUS', 'PRESS')
 | 
			
		||||
kmi.properties.delta = 1
 | 
			
		||||
kmi = km.items.add('view3d.zoom', 'NUMPAD_MINUS', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.zoom', 'NUMPAD_MINUS', 'PRESS')
 | 
			
		||||
kmi.properties.delta = -1
 | 
			
		||||
kmi = km.items.add('view3d.zoom', 'EQUAL', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.zoom', 'EQUAL', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.delta = 1
 | 
			
		||||
kmi = km.items.add('view3d.zoom', 'MINUS', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.zoom', 'MINUS', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.delta = -1
 | 
			
		||||
kmi = km.items.add('view3d.zoom', 'WHEELINMOUSE', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.zoom', 'WHEELINMOUSE', 'PRESS')
 | 
			
		||||
kmi.properties.delta = 1
 | 
			
		||||
kmi = km.items.add('view3d.zoom', 'WHEELOUTMOUSE', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.zoom', 'WHEELOUTMOUSE', 'PRESS')
 | 
			
		||||
kmi.properties.delta = -1
 | 
			
		||||
kmi = km.items.add('view3d.view_all', 'HOME', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.view_all', 'HOME', 'PRESS')
 | 
			
		||||
kmi.properties.center = False
 | 
			
		||||
kmi = km.items.add('view3d.view_all', 'C', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_all', 'C', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.center = True
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_0', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_0', 'PRESS')
 | 
			
		||||
kmi.properties.type = 'CAMERA'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_1', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_1', 'PRESS')
 | 
			
		||||
kmi.properties.type = 'FRONT'
 | 
			
		||||
kmi = km.items.add('view3d.view_orbit', 'NUMPAD_2', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.view_orbit', 'NUMPAD_2', 'PRESS')
 | 
			
		||||
kmi.properties.type = 'ORBITDOWN'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_3', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_3', 'PRESS')
 | 
			
		||||
kmi.properties.type = 'RIGHT'
 | 
			
		||||
kmi = km.items.add('view3d.view_orbit', 'NUMPAD_4', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.view_orbit', 'NUMPAD_4', 'PRESS')
 | 
			
		||||
kmi.properties.type = 'ORBITLEFT'
 | 
			
		||||
kmi = km.items.add('view3d.view_persportho', 'NUMPAD_5', 'PRESS')
 | 
			
		||||
kmi = km.items.add('view3d.view_orbit', 'NUMPAD_6', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.view_persportho', 'NUMPAD_5', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.view_orbit', 'NUMPAD_6', 'PRESS')
 | 
			
		||||
kmi.properties.type = 'ORBITRIGHT'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_7', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_7', 'PRESS')
 | 
			
		||||
kmi.properties.type = 'TOP'
 | 
			
		||||
kmi = km.items.add('view3d.view_orbit', 'NUMPAD_8', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.view_orbit', 'NUMPAD_8', 'PRESS')
 | 
			
		||||
kmi.properties.type = 'ORBITUP'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'BACK'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_3', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_3', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'LEFT'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_7', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_7', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'BOTTOM'
 | 
			
		||||
kmi = km.items.add('view3d.view_pan', 'NUMPAD_2', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_pan', 'NUMPAD_2', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'PANDOWN'
 | 
			
		||||
kmi = km.items.add('view3d.view_pan', 'NUMPAD_4', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_pan', 'NUMPAD_4', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'PANLEFT'
 | 
			
		||||
kmi = km.items.add('view3d.view_pan', 'NUMPAD_6', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_pan', 'NUMPAD_6', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'PANRIGHT'
 | 
			
		||||
kmi = km.items.add('view3d.view_pan', 'NUMPAD_8', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_pan', 'NUMPAD_8', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'PANUP'
 | 
			
		||||
kmi = km.items.add('view3d.view_pan', 'WHEELUPMOUSE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_pan', 'WHEELUPMOUSE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'PANRIGHT'
 | 
			
		||||
kmi = km.items.add('view3d.view_pan', 'WHEELDOWNMOUSE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_pan', 'WHEELDOWNMOUSE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.type = 'PANLEFT'
 | 
			
		||||
kmi = km.items.add('view3d.view_pan', 'WHEELUPMOUSE', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_pan', 'WHEELUPMOUSE', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.type = 'PANUP'
 | 
			
		||||
kmi = km.items.add('view3d.view_pan', 'WHEELDOWNMOUSE', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_pan', 'WHEELDOWNMOUSE', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.type = 'PANDOWN'
 | 
			
		||||
kmi = km.items.add('view3d.view_orbit', 'WHEELUPMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_orbit', 'WHEELUPMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi.properties.type = 'ORBITLEFT'
 | 
			
		||||
kmi = km.items.add('view3d.view_orbit', 'WHEELDOWNMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_orbit', 'WHEELDOWNMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi.properties.type = 'ORBITRIGHT'
 | 
			
		||||
kmi = km.items.add('view3d.view_orbit', 'WHEELUPMOUSE', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_orbit', 'WHEELUPMOUSE', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi.properties.type = 'ORBITUP'
 | 
			
		||||
kmi = km.items.add('view3d.view_orbit', 'WHEELDOWNMOUSE', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.view_orbit', 'WHEELDOWNMOUSE', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi.properties.type = 'ORBITDOWN'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.align_active = True
 | 
			
		||||
kmi.properties.type = 'FRONT'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_3', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_3', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.align_active = True
 | 
			
		||||
kmi.properties.type = 'RIGHT'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_7', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_7', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.align_active = True
 | 
			
		||||
kmi.properties.type = 'TOP'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi.properties.align_active = True
 | 
			
		||||
kmi.properties.type = 'BACK'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_3', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_3', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi.properties.align_active = True
 | 
			
		||||
kmi.properties.type = 'LEFT'
 | 
			
		||||
kmi = km.items.add('view3d.viewnumpad', 'NUMPAD_7', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.viewnumpad', 'NUMPAD_7', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi.properties.align_active = True
 | 
			
		||||
kmi.properties.type = 'BOTTOM'
 | 
			
		||||
kmi = km.items.add('view3d.localview', 'NUMPAD_SLASH', 'PRESS')
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'ACCENT_GRAVE', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.localview', 'NUMPAD_SLASH', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'ACCENT_GRAVE', 'PRESS')
 | 
			
		||||
kmi.properties.nr = 0
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'ONE', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'ONE', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 1
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'TWO', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'TWO', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 2
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'THREE', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'THREE', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 3
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'FOUR', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'FOUR', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 4
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'FIVE', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'FIVE', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 5
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'SIX', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'SIX', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 6
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'SEVEN', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'SEVEN', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 7
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'EIGHT', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'EIGHT', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 8
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'NINE', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'NINE', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 9
 | 
			
		||||
kmi = km.items.add('view3d.layers', 'ZERO', 'PRESS', any=True)
 | 
			
		||||
kmi = km.items.new('view3d.layers', 'ZERO', 'PRESS', any=True)
 | 
			
		||||
kmi.properties.nr = 10
 | 
			
		||||
kmi = km.items.add('wm.context_toggle_enum', 'Z', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.context_toggle_enum', 'Z', 'PRESS')
 | 
			
		||||
kmi.properties.data_path = 'space_data.viewport_shade'
 | 
			
		||||
kmi.properties.value_1 = 'SOLID'
 | 
			
		||||
kmi.properties.value_2 = 'WIREFRAME'
 | 
			
		||||
kmi = km.items.add('wm.context_toggle_enum', 'Z', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('wm.context_toggle_enum', 'Z', 'PRESS', alt=True)
 | 
			
		||||
kmi.properties.data_path = 'space_data.viewport_shade'
 | 
			
		||||
kmi.properties.value_1 = 'TEXTURED'
 | 
			
		||||
kmi.properties.value_2 = 'SOLID'
 | 
			
		||||
kmi = km.items.add('view3d.select', 'SELECTMOUSE', 'PRESS')
 | 
			
		||||
kmi = km.items.add('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.select', 'SELECTMOUSE', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
kmi = km.items.add('view3d.select', 'SELECTMOUSE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.select', 'SELECTMOUSE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.center = True
 | 
			
		||||
kmi = km.items.add('view3d.select', 'SELECTMOUSE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.select', 'SELECTMOUSE', 'PRESS', alt=True)
 | 
			
		||||
kmi.properties.enumerate = True
 | 
			
		||||
kmi = km.items.add('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi.properties.center = True
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
kmi = km.items.add('view3d.select', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.select', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi.properties.center = True
 | 
			
		||||
kmi.properties.enumerate = True
 | 
			
		||||
kmi = km.items.add('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi.properties.enumerate = True
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
kmi = km.items.add('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi.properties.center = True
 | 
			
		||||
kmi.properties.enumerate = True
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
kmi = km.items.add('view3d.select_border', 'EVT_TWEAK_S', 'ANY')
 | 
			
		||||
kmi = km.items.new('view3d.select_border', 'EVT_TWEAK_S', 'ANY')
 | 
			
		||||
kmi.properties.extend = False
 | 
			
		||||
kmi = km.items.add('view3d.select_lasso', 'EVT_TWEAK_A', 'ANY', ctrl=True)
 | 
			
		||||
kmi = km.items.add('view3d.select_lasso', 'EVT_TWEAK_A', 'ANY', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.select_lasso', 'EVT_TWEAK_A', 'ANY', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.select_lasso', 'EVT_TWEAK_A', 'ANY', shift=True, ctrl=True)
 | 
			
		||||
kmi.properties.deselect = True
 | 
			
		||||
kmi = km.items.add('view3d.select_circle', 'C', 'PRESS')
 | 
			
		||||
kmi = km.items.add('view3d.clip_border', 'B', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('view3d.zoom_border', 'B', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('view3d.render_border', 'B', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('view3d.camera_to_view', 'NUMPAD_0', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('view3d.object_as_camera', 'NUMPAD_0', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'S', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.select_circle', 'C', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.clip_border', 'B', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.zoom_border', 'B', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.render_border', 'B', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.camera_to_view', 'NUMPAD_0', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.object_as_camera', 'NUMPAD_0', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'S', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_snap'
 | 
			
		||||
kmi = km.items.add('wm.context_set_enum', 'COMMA', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.context_set_enum', 'COMMA', 'PRESS')
 | 
			
		||||
kmi.properties.data_path = 'space_data.pivot_point'
 | 
			
		||||
kmi.properties.value = 'BOUNDING_BOX_CENTER'
 | 
			
		||||
kmi = km.items.add('wm.context_set_enum', 'COMMA', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.context_set_enum', 'COMMA', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.data_path = 'space_data.pivot_point'
 | 
			
		||||
kmi.properties.value = 'MEDIAN_POINT'
 | 
			
		||||
kmi = km.items.add('wm.context_toggle', 'COMMA', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('wm.context_toggle', 'COMMA', 'PRESS', alt=True)
 | 
			
		||||
kmi.properties.data_path = 'space_data.use_pivot_point_align'
 | 
			
		||||
kmi = km.items.add('wm.context_toggle', 'Q', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.context_toggle', 'Q', 'PRESS')
 | 
			
		||||
kmi.properties.data_path = 'space_data.show_manipulator'
 | 
			
		||||
kmi = km.items.add('wm.context_set_enum', 'PERIOD', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.context_set_enum', 'PERIOD', 'PRESS')
 | 
			
		||||
kmi.properties.data_path = 'space_data.pivot_point'
 | 
			
		||||
kmi.properties.value = 'CURSOR'
 | 
			
		||||
kmi = km.items.add('wm.context_set_enum', 'PERIOD', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.context_set_enum', 'PERIOD', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.data_path = 'space_data.pivot_point'
 | 
			
		||||
kmi.properties.value = 'INDIVIDUAL_ORIGINS'
 | 
			
		||||
kmi = km.items.add('wm.context_set_enum', 'PERIOD', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('wm.context_set_enum', 'PERIOD', 'PRESS', alt=True)
 | 
			
		||||
kmi.properties.data_path = 'space_data.pivot_point'
 | 
			
		||||
kmi.properties.value = 'ACTIVE_ELEMENT'
 | 
			
		||||
kmi = km.items.add('transform.translate', 'G', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('transform.translate', 'EVT_TWEAK_S', 'ANY')
 | 
			
		||||
kmi = km.items.add('transform.rotate', 'R', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('transform.resize', 'S', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('transform.warp', 'W', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('transform.tosphere', 'S', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.add('transform.shear', 'S', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('transform.select_orientation', 'SPACE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('transform.create_orientation', 'SPACE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('transform.translate', 'G', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('transform.translate', 'EVT_TWEAK_S', 'ANY')
 | 
			
		||||
kmi = km.items.new('transform.rotate', 'R', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('transform.resize', 'S', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('transform.warp', 'W', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('transform.tosphere', 'S', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.new('transform.shear', 'S', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('transform.select_orientation', 'SPACE', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('transform.create_orientation', 'SPACE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi.properties.use = True
 | 
			
		||||
kmi = km.items.add('transform.mirror', 'M', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('wm.context_toggle', 'TAB', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('transform.mirror', 'M', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.context_toggle', 'TAB', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.data_path = 'tool_settings.snap'
 | 
			
		||||
kmi = km.items.add('transform.snap_type', 'TAB', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.add('view3d.enable_manipulator', 'W', 'PRESS')
 | 
			
		||||
kmi = km.items.new('transform.snap_type', 'TAB', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.enable_manipulator', 'W', 'PRESS')
 | 
			
		||||
kmi.properties.translate = True
 | 
			
		||||
kmi = km.items.add('view3d.enable_manipulator', 'E', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.enable_manipulator', 'E', 'PRESS')
 | 
			
		||||
kmi.properties.rotate = True
 | 
			
		||||
kmi = km.items.add('view3d.enable_manipulator', 'R', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.enable_manipulator', 'R', 'PRESS')
 | 
			
		||||
kmi.properties.scale = True
 | 
			
		||||
kmi = km.items.add('view3d.select_border', 'EVT_TWEAK_S', 'ANY', shift=True)
 | 
			
		||||
kmi = km.items.new('view3d.select_border', 'EVT_TWEAK_S', 'ANY', shift=True)
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
 | 
			
		||||
# Map Object Mode
 | 
			
		||||
km = kc.add_keymap('Object Mode', space_type='EMPTY', region_type='WINDOW', modal=False)
 | 
			
		||||
km = kc.keymaps.new('Object Mode', space_type='EMPTY', region_type='WINDOW', modal=False)
 | 
			
		||||
 | 
			
		||||
kmi = km.items.add('wm.context_cycle_enum', 'O', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('wm.context_cycle_enum', 'O', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.data_path = 'tool_settings.proportional_edit_falloff'
 | 
			
		||||
kmi = km.items.add('wm.context_toggle_enum', 'O', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.context_toggle_enum', 'O', 'PRESS')
 | 
			
		||||
kmi.properties.data_path = 'tool_settings.proportional_edit'
 | 
			
		||||
kmi.properties.value_1 = 'DISABLED'
 | 
			
		||||
kmi.properties.value_2 = 'ENABLED'
 | 
			
		||||
kmi = km.items.add('view3d.game_start', 'P', 'PRESS')
 | 
			
		||||
kmi = km.items.add('object.select_all', 'A', 'PRESS')
 | 
			
		||||
kmi = km.items.add('object.select_inverse', 'I', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('object.select_linked', 'L', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('object.select_grouped', 'G', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('object.select_mirror', 'M', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.add('object.select_hierarchy', 'LEFT_BRACKET', 'PRESS')
 | 
			
		||||
kmi = km.items.new('view3d.game_start', 'P', 'PRESS')
 | 
			
		||||
kmi = km.items.new('object.select_all', 'A', 'PRESS')
 | 
			
		||||
kmi = km.items.new('object.select_inverse', 'I', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.select_linked', 'L', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('object.select_grouped', 'G', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('object.select_mirror', 'M', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.select_hierarchy', 'LEFT_BRACKET', 'PRESS')
 | 
			
		||||
kmi.properties.direction = 'PARENT'
 | 
			
		||||
kmi = km.items.add('object.select_hierarchy', 'LEFT_BRACKET', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('object.select_hierarchy', 'LEFT_BRACKET', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.direction = 'PARENT'
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
kmi = km.items.add('object.select_hierarchy', 'RIGHT_BRACKET', 'PRESS')
 | 
			
		||||
kmi = km.items.new('object.select_hierarchy', 'RIGHT_BRACKET', 'PRESS')
 | 
			
		||||
kmi.properties.direction = 'CHILD'
 | 
			
		||||
kmi = km.items.add('object.select_hierarchy', 'RIGHT_BRACKET', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('object.select_hierarchy', 'RIGHT_BRACKET', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.direction = 'CHILD'
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
kmi = km.items.add('object.parent_set', 'P', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('object.parent_no_inverse_set', 'P', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.add('object.parent_clear', 'P', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.track_set', 'T', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('object.track_clear', 'T', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.constraint_add_with_targets', 'C', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.add('object.constraints_clear', 'C', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('object.location_clear', 'G', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.rotation_clear', 'R', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.scale_clear', 'S', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.origin_clear', 'O', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.hide_view_clear', 'H', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.hide_view_set', 'H', 'PRESS')
 | 
			
		||||
kmi = km.items.add('object.hide_view_set', 'H', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('object.parent_set', 'P', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.parent_no_inverse_set', 'P', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.parent_clear', 'P', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.track_set', 'T', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.track_clear', 'T', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.constraint_add_with_targets', 'C', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.constraints_clear', 'C', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('object.location_clear', 'G', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.rotation_clear', 'R', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.scale_clear', 'S', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.origin_clear', 'O', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.hide_view_clear', 'H', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.hide_view_set', 'H', 'PRESS')
 | 
			
		||||
kmi = km.items.new('object.hide_view_set', 'H', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.unselected = True
 | 
			
		||||
kmi = km.items.add('object.move_to_layer', 'M', 'PRESS')
 | 
			
		||||
kmi = km.items.add('object.delete', 'X', 'PRESS')
 | 
			
		||||
kmi = km.items.add('object.delete', 'DEL', 'PRESS')
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'A', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('object.move_to_layer', 'M', 'PRESS')
 | 
			
		||||
kmi = km.items.new('object.delete', 'X', 'PRESS')
 | 
			
		||||
kmi = km.items.new('object.delete', 'DEL', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'A', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.name = 'INFO_MT_add'
 | 
			
		||||
kmi = km.items.add('object.duplicates_make_real', 'A', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'A', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.duplicates_make_real', 'A', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'A', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_object_apply'
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'U', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'U', 'PRESS')
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_make_single_user'
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'L', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'L', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_make_links'
 | 
			
		||||
kmi = km.items.add('object.duplicate_move', 'D', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('object.duplicate_move_linked', 'D', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.join', 'J', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('object.convert', 'C', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('object.proxy_make', 'P', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('object.make_local', 'L', 'PRESS')
 | 
			
		||||
kmi = km.items.add('anim.keyframe_insert_menu', 'I', 'PRESS')
 | 
			
		||||
kmi = km.items.add('anim.keyframe_delete_v3d', 'I', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('anim.keying_set_active_set', 'I', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('group.create', 'G', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('group.objects_remove', 'G', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('group.objects_add_active', 'G', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.add('group.objects_remove_active', 'G', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'W', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.duplicate_move', 'D', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('object.duplicate_move_linked', 'D', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.join', 'J', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.convert', 'C', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('object.proxy_make', 'P', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('object.make_local', 'L', 'PRESS')
 | 
			
		||||
kmi = km.items.new('anim.keyframe_insert_menu', 'I', 'PRESS')
 | 
			
		||||
kmi = km.items.new('anim.keyframe_delete_v3d', 'I', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('anim.keying_set_active_set', 'I', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('group.create', 'G', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('group.objects_remove', 'G', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('group.objects_add_active', 'G', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('group.objects_remove_active', 'G', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'W', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_object_specials'
 | 
			
		||||
kmi = km.items.add('object.subdivision_set', 'ZERO', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.subdivision_set', 'ZERO', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.level = 0
 | 
			
		||||
kmi = km.items.add('object.subdivision_set', 'ONE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.subdivision_set', 'ONE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.level = 1
 | 
			
		||||
kmi = km.items.add('object.subdivision_set', 'TWO', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.subdivision_set', 'TWO', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.level = 2
 | 
			
		||||
kmi = km.items.add('object.subdivision_set', 'THREE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.subdivision_set', 'THREE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.level = 3
 | 
			
		||||
kmi = km.items.add('object.subdivision_set', 'FOUR', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.subdivision_set', 'FOUR', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.level = 4
 | 
			
		||||
kmi = km.items.add('object.subdivision_set', 'FIVE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.subdivision_set', 'FIVE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.level = 5
 | 
			
		||||
kmi = km.items.add('object.select_all', 'SELECTMOUSE', 'CLICK')
 | 
			
		||||
kmi = km.items.new('object.select_all', 'SELECTMOUSE', 'CLICK')
 | 
			
		||||
kmi.properties.action = 'DESELECT'
 | 
			
		||||
 | 
			
		||||
# Map Mesh
 | 
			
		||||
km = kc.add_keymap('Mesh', space_type='EMPTY', region_type='WINDOW', modal=False)
 | 
			
		||||
km = kc.keymaps.new('Mesh', space_type='EMPTY', region_type='WINDOW', modal=False)
 | 
			
		||||
 | 
			
		||||
kmi = km.items.add('mesh.loopcut_slide', 'R', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.loop_select', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.loop_select', 'SELECTMOUSE', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.loopcut_slide', 'R', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.loop_select', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.loop_select', 'SELECTMOUSE', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
kmi = km.items.add('mesh.edgering_select', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.edgering_select', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.edgering_select', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.edgering_select', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi.properties.extend = True
 | 
			
		||||
kmi = km.items.add('mesh.select_shortest_path', 'SELECTMOUSE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.select_all', 'A', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.select_more', 'NUMPAD_PLUS', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.select_less', 'NUMPAD_MINUS', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.select_inverse', 'I', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.select_non_manifold', 'M', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.select_linked', 'L', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.select_linked_pick', 'L', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.select_linked_pick', 'L', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('mesh.select_shortest_path', 'SELECTMOUSE', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.select_all', 'A', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.select_more', 'NUMPAD_PLUS', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.select_less', 'NUMPAD_MINUS', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.select_inverse', 'I', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.select_non_manifold', 'M', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.select_linked', 'L', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.select_linked_pick', 'L', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.select_linked_pick', 'L', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.deselect = True
 | 
			
		||||
kmi = km.items.add('mesh.faces_select_linked_flat', 'F', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.faces_select_linked_flat', 'F', 'PRESS', shift=True, ctrl=True, alt=True)
 | 
			
		||||
kmi.properties.sharpness = 135.0
 | 
			
		||||
kmi = km.items.add('mesh.select_similar', 'G', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'TAB', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.select_similar', 'G', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'TAB', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_selection_mode'
 | 
			
		||||
kmi = km.items.add('mesh.hide', 'H', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.hide', 'H', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('mesh.hide', 'H', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.hide', 'H', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.unselected = True
 | 
			
		||||
kmi = km.items.add('mesh.reveal', 'H', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.normals_make_consistent', 'N', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.normals_make_consistent', 'N', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.reveal', 'H', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.normals_make_consistent', 'N', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.normals_make_consistent', 'N', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi.properties.inside = True
 | 
			
		||||
kmi = km.items.add('view3d.edit_mesh_extrude_move_normal', 'E', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('view3d.edit_mesh_extrude_individual_move', 'E', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'E', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('view3d.edit_mesh_extrude_move_normal', 'E', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('view3d.edit_mesh_extrude_individual_move', 'E', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'E', 'PRESS', alt=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_extrude'
 | 
			
		||||
kmi = km.items.add('mesh.spin', 'R', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.fill', 'F', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.beautify_fill', 'F', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.quads_convert_to_tris', 'T', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.tris_convert_to_quads', 'J', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.edge_flip', 'F', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.rip_move', 'V', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.merge', 'M', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.add('transform.shrink_fatten', 'S', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.add('mesh.edge_face_add', 'F', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.duplicate_move', 'D', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'A', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('mesh.spin', 'R', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.fill', 'F', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.beautify_fill', 'F', 'PRESS', shift=True, alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.quads_convert_to_tris', 'T', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.tris_convert_to_quads', 'J', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.edge_flip', 'F', 'PRESS', shift=True, ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.rip_move', 'V', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.merge', 'M', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('transform.shrink_fatten', 'S', 'PRESS', ctrl=True, alt=True)
 | 
			
		||||
kmi = km.items.new('mesh.edge_face_add', 'F', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.duplicate_move', 'D', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'A', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.name = 'INFO_MT_mesh_add'
 | 
			
		||||
kmi = km.items.add('mesh.separate', 'P', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.split', 'Y', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.dupli_extrude_cursor', 'ACTIONMOUSE', 'CLICK', ctrl=True)
 | 
			
		||||
kmi = km.items.add('mesh.delete', 'X', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.delete', 'DEL', 'PRESS')
 | 
			
		||||
kmi = km.items.add('mesh.knife_cut', 'LEFTMOUSE', 'PRESS', key_modifier='K')
 | 
			
		||||
kmi = km.items.add('mesh.knife_cut', 'LEFTMOUSE', 'PRESS', shift=True, key_modifier='K')
 | 
			
		||||
kmi = km.items.new('mesh.separate', 'P', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.split', 'Y', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.dupli_extrude_cursor', 'ACTIONMOUSE', 'CLICK', ctrl=True)
 | 
			
		||||
kmi = km.items.new('mesh.delete', 'X', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.delete', 'DEL', 'PRESS')
 | 
			
		||||
kmi = km.items.new('mesh.knife_cut', 'LEFTMOUSE', 'PRESS', key_modifier='K')
 | 
			
		||||
kmi = km.items.new('mesh.knife_cut', 'LEFTMOUSE', 'PRESS', shift=True, key_modifier='K')
 | 
			
		||||
kmi.properties.type = 'MIDPOINTS'
 | 
			
		||||
kmi = km.items.add('object.vertex_parent_set', 'P', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'W', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('object.vertex_parent_set', 'P', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'W', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_specials'
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'F', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'F', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_faces'
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'E', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'E', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_edges'
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'V', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'V', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_edit_mesh_vertices'
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'H', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'H', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_hook'
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'U', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'U', 'PRESS')
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_uv_map'
 | 
			
		||||
kmi = km.items.add('wm.call_menu', 'G', 'PRESS', ctrl=True)
 | 
			
		||||
kmi = km.items.new('wm.call_menu', 'G', 'PRESS', ctrl=True)
 | 
			
		||||
kmi.properties.name = 'VIEW3D_MT_vertex_group'
 | 
			
		||||
kmi = km.items.add('wm.context_cycle_enum', 'O', 'PRESS', shift=True)
 | 
			
		||||
kmi = km.items.new('wm.context_cycle_enum', 'O', 'PRESS', shift=True)
 | 
			
		||||
kmi.properties.data_path = 'tool_settings.proportional_edit_falloff'
 | 
			
		||||
kmi = km.items.add('wm.context_toggle_enum', 'O', 'PRESS')
 | 
			
		||||
kmi = km.items.new('wm.context_toggle_enum', 'O', 'PRESS')
 | 
			
		||||
kmi.properties.data_path = 'tool_settings.proportional_edit'
 | 
			
		||||
kmi.properties.value_1 = 'DISABLED'
 | 
			
		||||
kmi.properties.value_2 = 'ENABLED'
 | 
			
		||||
kmi = km.items.add('wm.context_toggle_enum', 'O', 'PRESS', alt=True)
 | 
			
		||||
kmi = km.items.new('wm.context_toggle_enum', 'O', 'PRESS', alt=True)
 | 
			
		||||
kmi.properties.data_path = 'tool_settings.proportional_edit'
 | 
			
		||||
kmi.properties.value_1 = 'DISABLED'
 | 
			
		||||
kmi.properties.value_2 = 'CONNECTED'
 | 
			
		||||
kmi = km.items.add('mesh.select_all', 'SELECTMOUSE', 'CLICK')
 | 
			
		||||
kmi = km.items.new('mesh.select_all', 'SELECTMOUSE', 'CLICK')
 | 
			
		||||
kmi.properties.action = 'DESELECT'
 | 
			
		||||
 | 
			
		||||
wm.keyconfigs.active = kc
 | 
			
		||||
 
 | 
			
		||||
@@ -138,10 +138,10 @@ class InputKeyMapPanel(bpy.types.Panel):
 | 
			
		||||
                self.draw_km(display_keymaps, kc, km, children, col, level)
 | 
			
		||||
 | 
			
		||||
        '''
 | 
			
		||||
        km = kc.find_keymap(idname, space_type=spaceid, region_type=regionid)
 | 
			
		||||
        km = kc.keymaps.find(idname, space_type=spaceid, region_type=regionid)
 | 
			
		||||
        if not km:
 | 
			
		||||
            kc = defkc
 | 
			
		||||
            km = kc.find_keymap(idname, space_type=spaceid, region_type=regionid)
 | 
			
		||||
            km = kc.keymaps.find(idname, space_type=spaceid, region_type=regionid)
 | 
			
		||||
 | 
			
		||||
        if km:
 | 
			
		||||
            self.draw_km(kc, km, children, col, level)
 | 
			
		||||
@@ -312,7 +312,7 @@ class InputKeyMapPanel(bpy.types.Panel):
 | 
			
		||||
 | 
			
		||||
            # Modal key maps attached to this operator
 | 
			
		||||
            if not km.is_modal:
 | 
			
		||||
                kmm = kc.find_keymap_modal(kmi.idname)
 | 
			
		||||
                kmm = kc.keymaps.find_modal(kmi.idname)
 | 
			
		||||
                if kmm:
 | 
			
		||||
                    self.draw_km(display_keymaps, kc, kmm, None, layout, level + 1)
 | 
			
		||||
                    layout.set_context_pointer("keymap", km)
 | 
			
		||||
@@ -386,7 +386,8 @@ def export_properties(prefix, properties, lines=None):
 | 
			
		||||
    if lines is None:
 | 
			
		||||
        lines = []
 | 
			
		||||
 | 
			
		||||
    for value, pname in properties.items():
 | 
			
		||||
    for pname, value in properties.items():
 | 
			
		||||
        print()
 | 
			
		||||
        if not properties.is_property_hidden(pname):
 | 
			
		||||
            if isinstance(value, bpy.types.OperatorProperties):
 | 
			
		||||
                export_properties(prefix + "." + pname, value, lines)
 | 
			
		||||
@@ -407,9 +408,9 @@ class WM_OT_keyconfig_test(bpy.types.Operator):
 | 
			
		||||
 | 
			
		||||
        def kmistr(kmi):
 | 
			
		||||
            if km.is_modal:
 | 
			
		||||
                s = ["kmi = km.items.add_modal(\'%s\', \'%s\', \'%s\'" % (kmi.propvalue, kmi.type, kmi.value)]
 | 
			
		||||
                s = ["kmi = km.items.new_modal(\'%s\', \'%s\', \'%s\'" % (kmi.propvalue, kmi.type, kmi.value)]
 | 
			
		||||
            else:
 | 
			
		||||
                s = ["kmi = km.items.add(\'%s\', \'%s\', \'%s\'" % (kmi.idname, kmi.type, kmi.value)]
 | 
			
		||||
                s = ["kmi = km.items.new(\'%s\', \'%s\', \'%s\'" % (kmi.idname, kmi.type, kmi.value)]
 | 
			
		||||
 | 
			
		||||
            if kmi.any:
 | 
			
		||||
                s.append(", any=True")
 | 
			
		||||
@@ -436,7 +437,7 @@ class WM_OT_keyconfig_test(bpy.types.Operator):
 | 
			
		||||
 | 
			
		||||
        idname, spaceid, regionid, children = entry
 | 
			
		||||
 | 
			
		||||
        km = kc.find_keymap(idname, space_type=spaceid, region_type=regionid)
 | 
			
		||||
        km = kc.keymaps.find(idname, space_type=spaceid, region_type=regionid)
 | 
			
		||||
 | 
			
		||||
        if km:
 | 
			
		||||
            km = km.active()
 | 
			
		||||
@@ -528,8 +529,8 @@ class WM_OT_keyconfig_import(bpy.types.Operator):
 | 
			
		||||
 | 
			
		||||
        config_name = None
 | 
			
		||||
        for line in f:
 | 
			
		||||
            if line.startswith("kc = wm.add_keyconfig("):
 | 
			
		||||
                config_name = line[23:-3]
 | 
			
		||||
            if line.startswith("kc = wm.keyconfigs.new("):
 | 
			
		||||
                config_name = line[24:-3]
 | 
			
		||||
                break
 | 
			
		||||
 | 
			
		||||
        if config_name is None:
 | 
			
		||||
@@ -553,7 +554,7 @@ class WM_OT_keyconfig_import(bpy.types.Operator):
 | 
			
		||||
        # sneaky way to check we're actually running the code.
 | 
			
		||||
        wm = context.manager
 | 
			
		||||
        while config_name in wm.keyconfigs:
 | 
			
		||||
            wm.remove_keyconfig(wm.keyconfigs[config_name])
 | 
			
		||||
            wm.keyconfigs.remove(wm.keyconfigs[config_name])
 | 
			
		||||
 | 
			
		||||
        wm = context.manager
 | 
			
		||||
        totmap = len(wm.keyconfigs)
 | 
			
		||||
@@ -607,7 +608,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator):
 | 
			
		||||
 | 
			
		||||
        f.write("import bpy\n\n")
 | 
			
		||||
        f.write("wm = bpy.context.manager\n")
 | 
			
		||||
        f.write("kc = wm.add_keyconfig('%s')\n\n" % name)
 | 
			
		||||
        f.write("kc = wm.keyconfigs.new('%s')\n\n" % name)
 | 
			
		||||
 | 
			
		||||
        # Generate a list of keymaps to export:
 | 
			
		||||
        #
 | 
			
		||||
@@ -633,12 +634,12 @@ class WM_OT_keyconfig_export(bpy.types.Operator):
 | 
			
		||||
            km = km.active()
 | 
			
		||||
 | 
			
		||||
            f.write("# Map %s\n" % km.name)
 | 
			
		||||
            f.write("km = kc.add_keymap('%s', space_type='%s', region_type='%s', modal=%s)\n\n" % (km.name, km.space_type, km.region_type, km.is_modal))
 | 
			
		||||
            f.write("km = kc.keymaps.new('%s', space_type='%s', region_type='%s', modal=%s)\n\n" % (km.name, km.space_type, km.region_type, km.is_modal))
 | 
			
		||||
            for kmi in km.items:
 | 
			
		||||
                if km.is_modal:
 | 
			
		||||
                    f.write("kmi = km.items.add_modal('%s', '%s', '%s'" % (kmi.propvalue, kmi.type, kmi.value))
 | 
			
		||||
                    f.write("kmi = km.items.new_modal('%s', '%s', '%s'" % (kmi.propvalue, kmi.type, kmi.value))
 | 
			
		||||
                else:
 | 
			
		||||
                    f.write("kmi = km.items.add('%s', '%s', '%s'" % (kmi.idname, kmi.type, kmi.value))
 | 
			
		||||
                    f.write("kmi = km.items.new('%s', '%s', '%s'" % (kmi.idname, kmi.type, kmi.value))
 | 
			
		||||
                if kmi.any:
 | 
			
		||||
                    f.write(", any=True")
 | 
			
		||||
                else:
 | 
			
		||||
@@ -731,9 +732,9 @@ class WM_OT_keyitem_add(bpy.types.Operator):
 | 
			
		||||
        kc = wm.keyconfigs.default
 | 
			
		||||
 | 
			
		||||
        if km.is_modal:
 | 
			
		||||
            km.items.add_modal("", 'A', 'PRESS') # kmi
 | 
			
		||||
            km.items.new_modal("", 'A', 'PRESS') # kmi
 | 
			
		||||
        else:
 | 
			
		||||
            km.items.add("none", 'A', 'PRESS') # kmi
 | 
			
		||||
            km.items.new("none", 'A', 'PRESS') # kmi
 | 
			
		||||
 | 
			
		||||
        # clear filter and expand keymap so we can see the newly added item
 | 
			
		||||
        if context.space_data.filter_text != "":
 | 
			
		||||
@@ -755,7 +756,7 @@ class WM_OT_keyitem_remove(bpy.types.Operator):
 | 
			
		||||
        wm = context.manager
 | 
			
		||||
        km = context.keymap
 | 
			
		||||
        kmi = km.item_from_id(self.properties.item_id)
 | 
			
		||||
        km.remove_item(kmi)
 | 
			
		||||
        km.items.remove(kmi)
 | 
			
		||||
        return {'FINISHED'}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -787,7 +788,7 @@ class WM_OT_keyconfig_remove(bpy.types.Operator):
 | 
			
		||||
            if os.path.exists(path):
 | 
			
		||||
                os.remove(path)
 | 
			
		||||
 | 
			
		||||
        wm.remove_keyconfig(keyconfig)
 | 
			
		||||
        wm.keyconfigs.remove(keyconfig)
 | 
			
		||||
        return {'FINISHED'}
 | 
			
		||||
 | 
			
		||||
def register():
 | 
			
		||||
 
 | 
			
		||||
@@ -851,7 +851,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
 | 
			
		||||
			km = WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
			km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
			RNA_string_set(km->ptr, "data_path", "tool_settings.snap");
 | 
			
		||||
			RNA_string_set(km->ptr, "data_path", "tool_settings.use_snap");
 | 
			
		||||
 | 
			
		||||
			km = WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
@@ -929,7 +929,7 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
 | 
			
		||||
			km = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
 | 
			
		||||
 | 
			
		||||
			km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
 | 
			
		||||
			RNA_string_set(km->ptr, "data_path", "tool_settings.snap");
 | 
			
		||||
			RNA_string_set(km->ptr, "data_path", "tool_settings.use_snap");
 | 
			
		||||
			break;
 | 
			
		||||
		default:
 | 
			
		||||
			break;
 | 
			
		||||
 
 | 
			
		||||
@@ -59,7 +59,7 @@ static void rna_ActionGroup_channels_next(CollectionPropertyIterator *iter)
 | 
			
		||||
	iter->valid= (internal->link != NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bActionGroup *rna_Action_groups_add(bAction *act, char name[])
 | 
			
		||||
static bActionGroup *rna_Action_groups_new(bAction *act, char name[])
 | 
			
		||||
{
 | 
			
		||||
	return action_groups_add_new(act, name);
 | 
			
		||||
}
 | 
			
		||||
@@ -149,6 +149,11 @@ static void rna_Action_pose_markers_remove(bAction *act, ReportList *reports, Ti
 | 
			
		||||
	MEM_freeN(marker);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rna_Action_frame_range_get(PointerRNA *ptr,float *values)
 | 
			
		||||
{
 | 
			
		||||
	calc_action_range(ptr->id.data, values, values+1, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
static void rna_def_dopesheet(BlenderRNA *brna)
 | 
			
		||||
@@ -361,7 +366,7 @@ static void rna_def_action_groups(BlenderRNA *brna, PropertyRNA *cprop)
 | 
			
		||||
	RNA_def_struct_sdna(srna, "bAction");
 | 
			
		||||
	RNA_def_struct_ui_text(srna, "Action Groups", "Collection of action groups");
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "add", "rna_Action_groups_add");
 | 
			
		||||
	func= RNA_def_function(srna, "new", "rna_Action_groups_new");
 | 
			
		||||
	RNA_def_function_ui_description(func, "Add a keyframe to the curve.");
 | 
			
		||||
	parm= RNA_def_string(func, "name", "Group", 0, "", "New name for the action group.");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
@@ -464,6 +469,10 @@ static void rna_def_action(BlenderRNA *brna)
 | 
			
		||||
	RNA_def_property_ui_text(prop, "Pose Markers", "Markers specific to this Action, for labeling poses");
 | 
			
		||||
	rna_def_action_pose_markers(brna, prop);
 | 
			
		||||
 | 
			
		||||
	prop= RNA_def_float_vector(srna, "frame_range" , 2 , NULL , 0, 0, "Frame Range" , "The final frame range of all fcurves within this action" , 0 , 0);
 | 
			
		||||
	RNA_def_property_float_funcs(prop, "rna_Action_frame_range_get" , NULL, NULL);
 | 
			
		||||
	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 | 
			
		||||
 | 
			
		||||
	RNA_api_action(srna);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,35 +40,11 @@
 | 
			
		||||
#include "DNA_anim_types.h"
 | 
			
		||||
#include "DNA_curve_types.h"
 | 
			
		||||
 | 
			
		||||
/* return frame range of all curves (min, max) or (0, 1) if there are no keys */
 | 
			
		||||
void rna_Action_get_frame_range(bAction *act, int **frame_range, int *length_r)
 | 
			
		||||
{
 | 
			
		||||
	int *ret;
 | 
			
		||||
	float start, end;
 | 
			
		||||
 | 
			
		||||
	calc_action_range(act, &start, &end, 1);
 | 
			
		||||
 | 
			
		||||
	*length_r= 2;
 | 
			
		||||
	ret= MEM_callocN(*length_r * sizeof(int), "rna_Action_get_frame_range");
 | 
			
		||||
 | 
			
		||||
	ret[0]= (int)start;
 | 
			
		||||
	ret[1]= (int)end;
 | 
			
		||||
 | 
			
		||||
	*frame_range= ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
void RNA_api_action(StructRNA *srna)
 | 
			
		||||
{
 | 
			
		||||
	FunctionRNA *func;
 | 
			
		||||
	PropertyRNA *parm;
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "get_frame_range", "rna_Action_get_frame_range");
 | 
			
		||||
	RNA_def_function_ui_description(func, "Get action frame range as a (min, max) tuple.");
 | 
			
		||||
	parm= RNA_def_int_array(func, "frame_range", 1, NULL, 0, 0, "", "Action frame range.", 0, 0);
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_DYNAMIC);
 | 
			
		||||
	RNA_def_function_output(func, parm);
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -2932,7 +2932,7 @@ static void rna_def_timeline_markers(BlenderRNA *brna, PropertyRNA *cprop)
 | 
			
		||||
	RNA_def_struct_sdna(srna, "Scene");
 | 
			
		||||
	RNA_def_struct_ui_text(srna, "Timeline Markers", "Collection of timeline markers");
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "add", "rna_TimeLine_add");
 | 
			
		||||
	func= RNA_def_function(srna, "new", "rna_TimeLine_add");
 | 
			
		||||
	RNA_def_function_ui_description(func, "Add a keyframe to the curve.");
 | 
			
		||||
	parm= RNA_def_string(func, "name", "Marker", 0, "", "New name for the marker (not unique).");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
 
 | 
			
		||||
@@ -928,7 +928,7 @@ static StructRNA* rna_MacroOperator_refine(PointerRNA *opr)
 | 
			
		||||
	return (op->type && op->type->ext.srna)? op->type->ext.srna: &RNA_Macro;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMapItem *rna_KeyMap_add_item(wmKeyMap *km, ReportList *reports, char *idname, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier)
 | 
			
		||||
static wmKeyMapItem *rna_KeyMap_item_new(wmKeyMap *km, ReportList *reports, char *idname, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier)
 | 
			
		||||
{
 | 
			
		||||
//	wmWindowManager *wm = CTX_wm_manager(C);
 | 
			
		||||
	int modifier= 0;
 | 
			
		||||
@@ -949,7 +949,7 @@ static wmKeyMapItem *rna_KeyMap_add_item(wmKeyMap *km, ReportList *reports, char
 | 
			
		||||
	return WM_keymap_add_item(km, idname, type, value, modifier, keymodifier);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMapItem *rna_KeyMap_add_modal_item(wmKeyMap *km, bContext *C, ReportList *reports, char* propvalue_str, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier)
 | 
			
		||||
static wmKeyMapItem *rna_KeyMap_item_new_modal(wmKeyMap *km, bContext *C, ReportList *reports, char* propvalue_str, int type, int value, int any, int shift, int ctrl, int alt, int oskey, int keymodifier)
 | 
			
		||||
{
 | 
			
		||||
	wmWindowManager *wm = CTX_wm_manager(C);
 | 
			
		||||
	int modifier= 0;
 | 
			
		||||
@@ -988,6 +988,30 @@ static wmKeyMapItem *rna_KeyMap_add_modal_item(wmKeyMap *km, bContext *C, Report
 | 
			
		||||
	return WM_modalkeymap_add_item(km, type, value, modifier, keymodifier, propvalue);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMap *rna_keymap_new(wmKeyConfig *keyconf, char *idname, int spaceid, int regionid, int modal)
 | 
			
		||||
{
 | 
			
		||||
	if (modal == 0) {
 | 
			
		||||
		return WM_keymap_find(keyconf, idname, spaceid, regionid);
 | 
			
		||||
	} else {
 | 
			
		||||
		return WM_modalkeymap_add(keyconf, idname, NULL); /* items will be lazy init */
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMap *rna_keymap_find(wmKeyConfig *keyconf, char *idname, int spaceid, int regionid)
 | 
			
		||||
{
 | 
			
		||||
	return WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMap *rna_keymap_find_modal(wmKeyConfig *keyconf, char *idname)
 | 
			
		||||
{
 | 
			
		||||
	wmOperatorType *ot = WM_operatortype_find(idname, 0);
 | 
			
		||||
 | 
			
		||||
	if (!ot)
 | 
			
		||||
		return NULL;
 | 
			
		||||
	else
 | 
			
		||||
		return ot->modalkeymap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#else /* RNA_RUNTIME */
 | 
			
		||||
 | 
			
		||||
static void rna_def_operator(BlenderRNA *brna)
 | 
			
		||||
@@ -1270,27 +1294,14 @@ static void rna_def_wm_keyconfigs(BlenderRNA *brna, PropertyRNA *cprop)
 | 
			
		||||
	StructRNA *srna;
 | 
			
		||||
	PropertyRNA *prop;
 | 
			
		||||
 | 
			
		||||
	//FunctionRNA *func;
 | 
			
		||||
	//PropertyRNA *parm;
 | 
			
		||||
	FunctionRNA *func;
 | 
			
		||||
	PropertyRNA *parm;
 | 
			
		||||
 | 
			
		||||
	RNA_def_property_srna(cprop, "KeyConfigurations");
 | 
			
		||||
	srna= RNA_def_struct(brna, "KeyConfigurations", NULL);
 | 
			
		||||
	RNA_def_struct_sdna(srna, "wmWindowManager");
 | 
			
		||||
	RNA_def_struct_ui_text(srna, "KeyConfigs", "Collection of KeyConfigs");
 | 
			
		||||
/*
 | 
			
		||||
	func= RNA_def_function(srna, "new", "rna_Curve_spline_new");
 | 
			
		||||
	RNA_def_function_ui_description(func, "Add a new spline to the curve.");
 | 
			
		||||
	parm= RNA_def_enum(func, "type", curve_type_items, CU_POLY, "", "type for the new spline.");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	parm= RNA_def_pointer(func, "spline", "Spline", "", "The newly created spline.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "remove", "rna_Curve_spline_remove");
 | 
			
		||||
	RNA_def_function_ui_description(func, "Remove a spline from a curve.");
 | 
			
		||||
	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 | 
			
		||||
	parm= RNA_def_pointer(func, "spline", "Spline", "", "The spline to remove.");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
 | 
			
		||||
*/
 | 
			
		||||
	prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
 | 
			
		||||
	RNA_def_property_struct_type(prop, "KeyConfig");
 | 
			
		||||
	RNA_def_property_pointer_funcs(prop, "rna_WindowManager_active_keyconfig_get", "rna_WindowManager_active_keyconfig_set", NULL, NULL);
 | 
			
		||||
@@ -1301,6 +1312,17 @@ static void rna_def_wm_keyconfigs(BlenderRNA *brna, PropertyRNA *cprop)
 | 
			
		||||
	RNA_def_property_pointer_sdna(prop, NULL, "defaultconf");
 | 
			
		||||
	RNA_def_property_struct_type(prop, "KeyConfig");
 | 
			
		||||
	RNA_def_property_ui_text(prop, "Default Key Configuration", "");
 | 
			
		||||
	
 | 
			
		||||
	/* funcs */
 | 
			
		||||
	func= RNA_def_function(srna, "new", "WM_keyconfig_new_user"); // add_keyconfig
 | 
			
		||||
	parm= RNA_def_string(func, "name", "", 0, "Name", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	parm= RNA_def_pointer(func, "keyconfig", "KeyConfig", "Key Configuration", "Added key configuration.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "remove", "WM_keyconfig_remove"); // remove_keyconfig
 | 
			
		||||
	parm= RNA_def_pointer(func, "keyconfig", "KeyConfig", "Key Configuration", "Removed key configuration.");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rna_def_windowmanager(BlenderRNA *brna)
 | 
			
		||||
@@ -1347,7 +1369,7 @@ static void rna_def_keymap_items(BlenderRNA *brna, PropertyRNA *cprop)
 | 
			
		||||
	RNA_def_struct_sdna(srna, "wmKeyMap");
 | 
			
		||||
	RNA_def_struct_ui_text(srna, "KeyMap Items", "Collection of keymap items");
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "add", "rna_KeyMap_add_item");
 | 
			
		||||
	func= RNA_def_function(srna, "new", "rna_KeyMap_item_new");
 | 
			
		||||
	RNA_def_function_flag(func, FUNC_USE_REPORTS);
 | 
			
		||||
	parm= RNA_def_string(func, "idname", "", 0, "Operator Identifier", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
@@ -1364,7 +1386,7 @@ static void rna_def_keymap_items(BlenderRNA *brna, PropertyRNA *cprop)
 | 
			
		||||
	parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", "Added key map item.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "add_modal", "rna_KeyMap_add_modal_item");
 | 
			
		||||
	func= RNA_def_function(srna, "new_modal", "rna_KeyMap_item_new_modal");
 | 
			
		||||
	RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS);
 | 
			
		||||
	parm= RNA_def_string(func, "propvalue", "", 0, "Property Value", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
@@ -1381,6 +1403,49 @@ static void rna_def_keymap_items(BlenderRNA *brna, PropertyRNA *cprop)
 | 
			
		||||
	parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", "Added key map item.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
	
 | 
			
		||||
	func= RNA_def_function(srna, "remove", "WM_keymap_remove_item");
 | 
			
		||||
	parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rna_def_wm_keymaps(BlenderRNA *brna, PropertyRNA *cprop)
 | 
			
		||||
{
 | 
			
		||||
	StructRNA *srna;
 | 
			
		||||
	//PropertyRNA *prop;
 | 
			
		||||
 | 
			
		||||
	FunctionRNA *func;
 | 
			
		||||
	PropertyRNA *parm;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	RNA_def_property_srna(cprop, "KeyMaps");
 | 
			
		||||
	srna= RNA_def_struct(brna, "KeyMaps", NULL);
 | 
			
		||||
	RNA_def_struct_sdna(srna, "wmKeyConfig");
 | 
			
		||||
	RNA_def_struct_ui_text(srna, "Key Maps", "Collection of keymaps");
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "new", "rna_keymap_new"); // add_keymap
 | 
			
		||||
	parm= RNA_def_string(func, "name", "", 0, "Name", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", "");
 | 
			
		||||
	RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", "");
 | 
			
		||||
	RNA_def_boolean(func, "modal", 0, "Modal", "");
 | 
			
		||||
	parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Added key map.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "find", "rna_keymap_find"); // find_keymap
 | 
			
		||||
	parm= RNA_def_string(func, "name", "", 0, "Name", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", "");
 | 
			
		||||
	RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", "");
 | 
			
		||||
	parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "find_modal", "rna_keymap_find_modal"); // find_keymap_modal
 | 
			
		||||
	parm= RNA_def_string(func, "name", "", 0, "Operator Name", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rna_def_keyconfig(BlenderRNA *brna)
 | 
			
		||||
@@ -1407,10 +1472,11 @@ static void rna_def_keyconfig(BlenderRNA *brna)
 | 
			
		||||
	RNA_def_property_string_sdna(prop, NULL, "idname");
 | 
			
		||||
	RNA_def_property_ui_text(prop, "Name", "Name of the key configuration");
 | 
			
		||||
	RNA_def_struct_name_property(srna, prop);
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	prop= RNA_def_property(srna, "keymaps", PROP_COLLECTION, PROP_NONE);
 | 
			
		||||
	RNA_def_property_struct_type(prop, "KeyMap");
 | 
			
		||||
	RNA_def_property_ui_text(prop, "Key Maps", "Key maps configured as part of this configuration");
 | 
			
		||||
	rna_def_wm_keymaps(brna, prop);
 | 
			
		||||
 | 
			
		||||
	prop= RNA_def_property(srna, "is_user_defined", PROP_BOOLEAN, PROP_NONE);
 | 
			
		||||
	RNA_def_property_boolean_sdna(prop, NULL, "flag", KEYCONF_USER);
 | 
			
		||||
 
 | 
			
		||||
@@ -39,31 +39,6 @@
 | 
			
		||||
 | 
			
		||||
#include "BKE_context.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static wmKeyMap *rna_keymap_add(wmKeyConfig *keyconf, char *idname, int spaceid, int regionid, int modal)
 | 
			
		||||
{
 | 
			
		||||
	if (modal == 0) {
 | 
			
		||||
		return WM_keymap_find(keyconf, idname, spaceid, regionid);
 | 
			
		||||
	} else {
 | 
			
		||||
		return WM_modalkeymap_add(keyconf, idname, NULL); /* items will be lazy init */
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMap *rna_keymap_find(wmKeyConfig *keyconf, char *idname, int spaceid, int regionid)
 | 
			
		||||
{
 | 
			
		||||
	return WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMap *rna_keymap_find_modal(wmKeyConfig *keyconf, char *idname)
 | 
			
		||||
{
 | 
			
		||||
	wmOperatorType *ot = WM_operatortype_find(idname, 0);
 | 
			
		||||
 | 
			
		||||
	if (!ot)
 | 
			
		||||
		return NULL;
 | 
			
		||||
	else
 | 
			
		||||
		return ot->modalkeymap;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static wmKeyMap *rna_keymap_active(wmKeyMap *km, bContext *C)
 | 
			
		||||
{
 | 
			
		||||
	wmWindowManager *wm = CTX_wm_manager(C);
 | 
			
		||||
@@ -132,16 +107,6 @@ void RNA_api_wm(StructRNA *srna)
 | 
			
		||||
	RNA_def_function_ui_description(func, "Show up the file selector.");
 | 
			
		||||
	rna_generic_op_invoke(func, 0);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "add_keyconfig", "WM_keyconfig_add_user");
 | 
			
		||||
	parm= RNA_def_string(func, "name", "", 0, "Name", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	parm= RNA_def_pointer(func, "keyconfig", "KeyConfig", "Key Configuration", "Added key configuration.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
	
 | 
			
		||||
	func= RNA_def_function(srna, "remove_keyconfig", "WM_keyconfig_remove");
 | 
			
		||||
	parm= RNA_def_pointer(func, "keyconfig", "KeyConfig", "Key Configuration", "Removed key configuration.");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "add_modal_handler", "rna_event_add_modal_handler");
 | 
			
		||||
	RNA_def_function_flag(func, FUNC_NO_SELF|FUNC_USE_CONTEXT);
 | 
			
		||||
	parm= RNA_def_pointer(func, "operator", "Operator", "", "Operator to call.");
 | 
			
		||||
@@ -259,31 +224,8 @@ void RNA_api_macro(StructRNA *srna)
 | 
			
		||||
 | 
			
		||||
void RNA_api_keyconfig(StructRNA *srna)
 | 
			
		||||
{
 | 
			
		||||
	FunctionRNA *func;
 | 
			
		||||
	PropertyRNA *parm;
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "add_keymap", "rna_keymap_add");
 | 
			
		||||
	parm= RNA_def_string(func, "name", "", 0, "Name", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", "");
 | 
			
		||||
	RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", "");
 | 
			
		||||
	RNA_def_boolean(func, "modal", 0, "Modal", "");
 | 
			
		||||
	parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Added key map.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "find_keymap", "rna_keymap_find");
 | 
			
		||||
	parm= RNA_def_string(func, "name", "", 0, "Name", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	RNA_def_enum(func, "space_type", space_type_items, SPACE_EMPTY, "Space Type", "");
 | 
			
		||||
	RNA_def_enum(func, "region_type", region_type_items, RGN_TYPE_WINDOW, "Region Type", "");
 | 
			
		||||
	parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "find_keymap_modal", "rna_keymap_find_modal");
 | 
			
		||||
	parm= RNA_def_string(func, "name", "", 0, "Operator Name", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
	parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Corresponding key map.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
	// FunctionRNA *func;
 | 
			
		||||
	// PropertyRNA *parm;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RNA_api_keymap(StructRNA *srna)
 | 
			
		||||
@@ -296,10 +238,6 @@ void RNA_api_keymap(StructRNA *srna)
 | 
			
		||||
	parm= RNA_def_pointer(func, "keymap", "KeyMap", "Key Map", "Active key map.");
 | 
			
		||||
	RNA_def_function_return(func, parm);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "remove_item", "WM_keymap_remove_item");
 | 
			
		||||
	parm= RNA_def_pointer(func, "item", "KeyMapItem", "Item", "");
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
 | 
			
		||||
	func= RNA_def_function(srna, "item_from_id", "WM_keymap_item_find_id");
 | 
			
		||||
	parm= RNA_def_property(func, "id", PROP_INT, PROP_NONE);
 | 
			
		||||
	RNA_def_property_flag(parm, PROP_REQUIRED);
 | 
			
		||||
 
 | 
			
		||||
@@ -97,8 +97,8 @@ void		WM_paint_cursor_end(struct wmWindowManager *wm, void *handle);
 | 
			
		||||
void		WM_cursor_warp		(struct wmWindow *win, int x, int y);
 | 
			
		||||
 | 
			
		||||
			/* keyconfig and keymap */
 | 
			
		||||
wmKeyConfig *WM_keyconfig_add	(struct wmWindowManager *wm, char *idname);
 | 
			
		||||
wmKeyConfig *WM_keyconfig_add_user(struct wmWindowManager *wm, char *idname);
 | 
			
		||||
wmKeyConfig *WM_keyconfig_new	(struct wmWindowManager *wm, char *idname);
 | 
			
		||||
wmKeyConfig *WM_keyconfig_new_user(struct wmWindowManager *wm, char *idname);
 | 
			
		||||
void 		WM_keyconfig_remove	(struct wmWindowManager *wm, struct wmKeyConfig *keyconf);
 | 
			
		||||
void 		WM_keyconfig_free	(struct wmKeyConfig *keyconf);
 | 
			
		||||
void		WM_keyconfig_userdef(struct wmWindowManager *wm);
 | 
			
		||||
 
 | 
			
		||||
@@ -195,7 +195,7 @@ void WM_keymap_init(bContext *C)
 | 
			
		||||
	wmWindowManager *wm= CTX_wm_manager(C);
 | 
			
		||||
 | 
			
		||||
	if(!wm->defaultconf)
 | 
			
		||||
		wm->defaultconf= WM_keyconfig_add(wm, "Blender");
 | 
			
		||||
		wm->defaultconf= WM_keyconfig_new(wm, "Blender");
 | 
			
		||||
	
 | 
			
		||||
	if(wm && CTX_py_init_get(C) && (wm->initialized & WM_INIT_KEYMAP) == 0) {
 | 
			
		||||
		/* create default key config */
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ void WM_keymap_properties_reset(wmKeyMapItem *kmi)
 | 
			
		||||
	keymap_properties_set(kmi);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wmKeyConfig *WM_keyconfig_add(wmWindowManager *wm, char *idname)
 | 
			
		||||
wmKeyConfig *WM_keyconfig_new(wmWindowManager *wm, char *idname)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyConfig *keyconf;
 | 
			
		||||
	
 | 
			
		||||
@@ -85,9 +85,9 @@ wmKeyConfig *WM_keyconfig_add(wmWindowManager *wm, char *idname)
 | 
			
		||||
	return keyconf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wmKeyConfig *WM_keyconfig_add_user(wmWindowManager *wm, char *idname)
 | 
			
		||||
wmKeyConfig *WM_keyconfig_new_user(wmWindowManager *wm, char *idname)
 | 
			
		||||
{
 | 
			
		||||
	wmKeyConfig *keyconf = WM_keyconfig_add(wm, idname);
 | 
			
		||||
	wmKeyConfig *keyconf = WM_keyconfig_new(wm, idname);
 | 
			
		||||
 | 
			
		||||
	keyconf->flag |= KEYCONF_USER;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user