piskel/src/js/service/keyboard/Shortcuts.js

95 lines
5.2 KiB
JavaScript

(function () {
var ns = $.namespace('pskl.service.keyboard');
var createShortcut = function (id, description, defaultKey, displayKey) {
return new ns.Shortcut(id, description, defaultKey, displayKey);
};
ns.Shortcuts = {
/**
* List of keys that cannot be remapped. Either alternate keys, which are not displayed.
* Or really custom shortcuts such as the 1-9 for color palette shorctus
*/
FORBIDDEN_KEYS : ['1', '2', '3', '4', '5', '6', '7', '8', '9', '?', 'shift+?',
'DEL', 'BACK', 'ENTER', 'ctrl+Y', 'ctrl+shift+Z'],
/**
* Syntax : createShortcut(id, description, default key(s))
*/
TOOL : {
PEN : createShortcut('tool-pen', 'Pen tool', 'P'),
MIRROR_PEN : createShortcut('tool-vertical-mirror-pen', 'Vertical mirror pen tool', 'V'),
PAINT_BUCKET : createShortcut('tool-paint-bucket', 'Paint bucket tool', 'B'),
COLORSWAP : createShortcut('tool-colorswap', 'Magic bucket tool', 'A'),
ERASER : createShortcut('tool-eraser', 'Eraser pen tool', 'E'),
STROKE : createShortcut('tool-stroke', 'Stroke tool', 'L'),
RECTANGLE : createShortcut('tool-rectangle', 'Rectangle tool', 'R'),
CIRCLE : createShortcut('tool-circle', 'Circle tool', 'C'),
MOVE : createShortcut('tool-move', 'Move tool', 'M'),
SHAPE_SELECT : createShortcut('tool-shape-select', 'Shape selection', 'Z'),
RECTANGLE_SELECT : createShortcut('tool-rectangle-select', 'Rectangle selection', 'S'),
LASSO_SELECT : createShortcut('tool-lasso-select', 'Lasso selection', 'H'),
LIGHTEN : createShortcut('tool-lighten', 'Lighten tool', 'U'),
DITHERING : createShortcut('tool-dithering', 'Dithering tool', 'T'),
COLORPICKER : createShortcut('tool-colorpicker', 'Color picker', 'O')
},
SELECTION : {
CUT : createShortcut('selection-cut', 'Cut selection', 'ctrl+X'),
COPY : createShortcut('selection-copy', 'Copy selection', 'ctrl+C'),
PASTE : createShortcut('selection-paste', 'Paste selection', 'ctrl+V'),
DELETE : createShortcut('selection-delete', 'Delete selection', ['DEL', 'BACK']),
COMMIT : createShortcut('selection-commit', 'Commit selection', ['ENTER'])
},
MISC : {
RESET_ZOOM : createShortcut('reset-zoom', 'Reset zoom level', '0'),
INCREASE_ZOOM : createShortcut('increase-zoom', 'Increase zoom level', '+'),
DECREASE_ZOOM : createShortcut('decrease-zoom', 'Decrease zoom level', '-'),
INCREASE_PENSIZE : createShortcut('increase-pensize', 'Increase pen size', ']'),
DECREASE_PENSIZE : createShortcut('decrease-pensize', 'Decrease pen size', '['),
UNDO : createShortcut('undo', 'Undo', 'ctrl+Z'),
REDO : createShortcut('redo', 'Redo', ['ctrl+Y', 'ctrl+shift+Z']),
PREVIOUS_FRAME : createShortcut('previous-frame', 'Select previous frame', 'up'),
NEXT_FRAME : createShortcut('next-frame', 'Select next frame', 'down'),
NEW_FRAME : createShortcut('new-frame', 'Create new empty frame', 'N'),
DUPLICATE_FRAME : createShortcut('duplicate-frame', 'Duplicate selected frame', 'shift+N'),
CHEATSHEET : createShortcut('cheatsheet', 'Open the keyboard shortcut cheatsheet', ['?', 'shift+?']),
X1_PREVIEW : createShortcut('x1-preview', 'Select original size preview', 'alt+1'),
BEST_PREVIEW : createShortcut('best-preview', 'Select best size preview', 'alt+2'),
FULL_PREVIEW : createShortcut('full-preview', 'Select full size preview', 'alt+3'),
ONION_SKIN : createShortcut('onion-skin', 'Toggle onion skin', 'alt+O'),
TOGGLE_GRID : createShortcut('toggle-grid', 'Show/Hide grid', 'alt+G'),
LAYER_PREVIEW : createShortcut('layer-preview', 'Toggle layer preview', 'alt+L'),
MERGE_ANIMATION : createShortcut('import-animation', 'Open merge animation popup', 'ctrl+shift+M'),
CLOSE_POPUP : createShortcut('close-popup', 'Close an opened popup', 'ESC'),
OFFSET_UP : createShortcut('move-up', 'Move viewport up', 'shift+up'),
OFFSET_RIGHT : createShortcut('move-right', 'Move viewport right', 'shift+right'),
OFFSET_DOWN : createShortcut('move-down', 'Move viewport down', 'shift+down'),
OFFSET_LEFT : createShortcut('move-left', 'Move viewport left', 'shift+left'),
},
STORAGE : {
SAVE : createShortcut('save', 'Save the current sprite', 'ctrl+S'),
OPEN : createShortcut('open', '(desktop) Open a .piskel file', 'ctrl+O'),
SAVE_AS : createShortcut('save-as', '(desktop) Save as new', 'ctrl+shift+S')
},
COLOR : {
SWAP : createShortcut('swap-colors', 'Swap primary/secondary colors', 'X'),
RESET : createShortcut('reset-colors', 'Reset default colors', 'D'),
CREATE_PALETTE : createShortcut('create-palette', 'Open the palette creation popup', 'alt+P'),
PREVIOUS_COLOR : createShortcut('previous-color', 'Select the previous color in the current palette', '<'),
NEXT_COLOR : createShortcut('next-color', 'Select the next color in the current palette', '>'),
SELECT_COLOR : createShortcut('select-color', 'Select a palette color in the current palette',
'123456789'.split(''), '1 to 9')
},
DEBUG : {
RELOAD_STYLES : createShortcut('move-left', 'Move viewport left', 'ctrl+alt+R'),
},
CATEGORIES : ['TOOL', 'SELECTION', 'MISC', 'STORAGE', 'COLOR']
};
})();