# DEFAULT BIND FILE TEMPLATE, DO NOT MODIFY
# user keybinds file
# accepted modifiers: ctrl, alt, shift
# keys must be equivalent to output of sdl2.SDL_GetKeyName(),
# eg return, tab, backspace

self.edit_bind_src = {
    'ctrl q'   : 'quit',
    '`'        : 'toggle_console',
    'ctrl m'   : 'import_file',
    'ctrl e'   : ('export_file_last', 'edit_art_for_selected_objects'),
    'ctrl -'   : 'decrease_ui_scale',
    'ctrl ='   : 'increase_ui_scale',
    'alt return': 'toggle_fullscreen',
    '1'        : 'decrease_brush_size',
    '2'        : 'increase_brush_size',
    '3'        : 'cycle_char_forward',
    'shift 3'  : 'cycle_char_backward',
    '4'        : 'cycle_fg_forward',
    'shift 4'  : 'cycle_fg_backward',
    '5'        : 'cycle_bg_forward',
    'shift 5'  : 'cycle_bg_backward',
    '6'        : 'cycle_xform_forward',
    'shift 6'  : 'cycle_xform_backward',
    'c'        : 'toggle_affects_char',
    'f'        : 'toggle_affects_fg',
    'b'        : 'toggle_affects_bg',
    # bind can also be a tuple of function names
    'x'        : ('toggle_affects_xform', 'game_frob'),
    'z'        : ('toggle_zoom_extents', 'game_grab'),
    'shift r'  : 'toggle_crt',
    'a'        : 'select_pencil_tool',
    'e'        : 'select_erase_tool',
    'r'        : 'select_rotate_tool',
    't'        : 'select_text_tool',
    's'        : 'select_select_tool',
    'ctrl x'   : 'cut_selection',
    'ctrl c'   : 'copy_selection',
    'v'        : 'select_paste_tool',
    'ctrl v'   : 'select_paste_tool',
    'i'        : 'select_fill_tool',
    'escape'   : 'cancel',
    'ctrl d'   : 'select_none',
    'ctrl a'   : 'select_all',
    'ctrl i'   : 'select_invert',
    'delete'   : 'erase_selection_or_art',
    'backspace': 'erase_selection_or_art',
    'g'        : 'toggle_game_mode',
    'shift e'  : 'toggle_game_edit_ui',
    'ctrl shift g': 'set_game_dir',
    'ctrl g'   : 'load_game_state',
    'f2'       : 'reset_game',
    'space'    : 'toggle_picker',
    'w'        : 'swap_fg_bg_colors',
    'ctrl s'   : 'save_current',
    'shift u'  : 'toggle_ui_visibility',
    'shift g'  : 'toggle_grid_visibility',
    ','        : 'previous_frame',
    '.'        : 'next_frame',
    'p'        : 'toggle_anim_playback',
    '['        : 'previous_layer',
    ']'        : 'next_layer',
    'shift ctrl tab': 'previous_art',
    'ctrl tab' : 'next_art',
    'ctrl z'   : 'undo',
    'shift ctrl z': 'redo',
    'q'        : 'quick_grab',
    'shift t'  : 'toggle_camera_tilt',
    'shift i'  : 'toggle_overlay_image',
    '='        : 'camera_zoom_in_proportional',
    '-'        : 'camera_zoom_out_proportional',
    'return'   : 'select_or_paint',
    'shift return': 'add_to_list_selection',
    'ctrl return': 'remove_from_list_selection',
    'f12'      : 'screenshot',
    'ctrl shift m'   : 'run_test_mutate',
    'up'       : 'arrow_up',
    'down'     : 'arrow_down',
    'left'     : 'arrow_left',
    'right'    : 'arrow_right',
    'home'     : 'center_cursor_in_art',
    'l'        : 'cycle_inactive_layer_visibility',
    'alt f'    : 'open_file_menu',
    'alt e'    : 'open_edit_menu',
    'alt t'    : 'open_tool_menu',
    'alt v'    : 'open_view_menu',
    'alt a'    : 'open_art_menu',
    'alt r'    : 'open_frame_menu',
    'alt l'    : 'open_layer_menu',
    'alt c'    : 'open_char_color_menu',
    'alt g'    : 'open_game_menu',
    'alt h'    : 'open_help_menu',
    'alt s'    : 'open_state_menu',
    'alt w'    : 'open_world_menu',
    'alt o'    : 'open_object_menu',
    'ctrl o'   : 'open_art',
    'ctrl n'   : 'new_art',
    'ctrl w'   : 'close_art',
    'f1'       : 'open_help_docs',
    'ctrl k'   : 'crop_to_selection',
    'ctrl r'   : 'resize_art',
    'ctrl t'   : 'run_art_script_last',
    'ctrl f'   : 'add_frame',
    'ctrl l'   : ('add_layer', 'select_objects'),
    'ctrl h'   : 'choose_charset',
    'ctrl p'   : ('choose_palette', 'choose_spawn_object_class'),
    'o'        : 'toggle_onion_visibility',
    'f5'       : 'toggle_all_origin_viz',
    'f6'       : 'toggle_all_bounds_viz',
    'f7'       : 'toggle_all_collision_viz',
    'f8'       : 'toggle_debug_text',
    'f9'       : 'toggle_fps_counter',
    'f3'       : 'toggle_collision_on_selected',
    'tab'      : 'switch_edit_panel_focus',
    'shift tab': 'switch_edit_panel_focus_reverse',
    # commands that don't have a shortcut still need to be declared
    # bind strings preceded by a _ will not be displayed
    '_saveas'       : 'save_art_as',
    '_grab'         : 'select_grab_tool',
    '_switch_art'   : 'art_switch_to',
    '_switch_layer' : 'layer_switch_to',
    '_layer_viz'    : 'toggle_layer_visibility',
    '_hidden_layers': 'toggle_hidden_layers_visible',
    '_website'      : 'open_website',
    '_docs'         : 'generate_docs',
    '_dup_frame'    : 'duplicate_frame',
    '_frame_delay'  : 'change_frame_delay',
    '_frame_delay_all': 'change_frame_delay_all',
    '_frame_index'  : 'change_frame_index',
    '_delete_frame' : 'delete_frame',
    '_dup_layer'    : 'duplicate_layer',
    '_layer_name'   : 'change_layer_name',
    '_layer_z'      : 'change_layer_z',
    '_delete_layer' : 'delete_layer',
    '_pal_from_file': 'palette_from_file',
    '_cycle_onion_frames': 'cycle_onion_frames',
    '_cycle_onion_display': 'cycle_onion_ahead_behind',
    '_open_game_assets' : 'open_all_game_assets',
    '_export_file'  : 'export_file',
    '_import_file': 'import_file',
    '_revert'   : 'revert_art',
    '_new_game'     : 'new_game_dir',
    '_duplicate_objects': 'duplicate_selected_objects',
    '_edit_world'   : 'edit_world_properties',
    '_save_game'    : 'save_game_state',
    '_change_room'  : 'change_current_room',
    '_change_room_to': 'change_current_room_to',
    '_add_room'     : 'add_room',
    '_remove_room'  : 'remove_current_room',
    '_room_objects' : 'set_room_objects',
    '_object_rooms' : 'set_object_rooms',
    '_show_all_rooms': 'toggle_all_rooms_visible',
    '_set_room_cam' : 'set_room_camera_marker',
    '_obj_to_cam'   : 'objects_to_camera',
    '_cam_to_obj'   : 'camera_to_objects',
    '_add_to_room'  : 'add_selected_to_room',
    '_remove_from_room': 'remove_selected_from_room',
    '_room_edge_warps': 'set_room_edge_warps',
    '_room_bounds'  : 'set_room_bounds_obj',
    '_room_cameras' : 'toggle_room_camera_changes',
    '_list_room_objs': 'toggle_list_only_room_objects',
    '_rename_room'  : 'rename_current_room',
    '_toggle_debug_objects': 'toggle_debug_objects',
    '_toggle_picker_hold': 'toggle_picker_hold',
    '_set_camera_zoom': 'set_camera_zoom',
    '_toggle_bg_texture': 'toggle_bg_texture',
    '_run_art_script': 'run_art_script',
    '_art_flip_horizontal': 'art_flip_horizontal',
    '_art_flip_vertical': 'art_flip_vertical',
    '_art_toggle_flip_affects_xforms': 'art_toggle_flip_affects_xforms',
    '_edit_cfg': 'edit_cfg',
    '_select_overlay_image': 'select_overlay_image',
    '_set_overlay_image_opacity': 'set_overlay_image_opacity',
    '_set_overlay_image_scaling': 'set_overlay_image_scaling',
    '_toggle_art_toolbar': 'toggle_art_toolbar',
    '_cycle_fill_boundary_mode': 'cycle_fill_boundary_mode'
}
