diff --git a/hotkeys.h b/hotkeys.h new file mode 100644 index 00000000..a9bfc7c9 --- /dev/null +++ b/hotkeys.h @@ -0,0 +1,840 @@ +/* Grafx2 - The Ultimate 256-color bitmap paint program + + Copyright 2008 Yves Rizoud + Copyright 2008 Adrien Destugues + Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud) + + Grafx2 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; version 2 + of the License. + + Grafx2 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 Grafx2; if not, see or + write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ +#include + +/*** Types definitions and structs ***/ + +typedef struct{ + uint16_t Numero; + char Libelle[36]; + char Explic1[77]; + char Explic2[77]; + bool Suppr; // Raccourci facultatif + uint16_t Touche; +} S_ConfigTouche; + +S_ConfigTouche ConfigTouche[] = { + {0, + "Scroll up", + "Scrolls the picture up, both in magnify and normal mode.", + "This hotkey cannot be removed.", + false, + SDLK_UP}, // HAUT + {1, + "Scroll down", + "Scrolls the picture down, both in magnify and normal mode.", + "This hotkey cannot be removed.", + false, + SDLK_DOWN}, // BAS + {2, + "Scroll left", + "Scrolls the picture to the left, both in magnify and normal mode.", + "This hotkey cannot be removed.", + false, + SDLK_LEFT}, // GAUCHE + {3, + "Scroll right", + "Scrolls the picture to the right, both in magnify and normal mode.", + "This hotkey cannot be removed.", + false, + SDLK_RIGHT}, // DROITE + {4, + "Faster scroll up", + "Used to scroll upwards in the picture fast, either in magnify and normal", + "mode.", + true, + SDLK_UP|MOD_SHIFT}, // Shift + Haut + {5, + "Faster scroll down", + "Used to scroll downwards in the picture fast, either in magnify and normal", + "mode.", + true, + SDLK_DOWN|MOD_SHIFT}, // Shift + Bas + {6, + "Faster scroll left", + "Used to scroll to the left in the picture fast, either in magnify and normal", + "mode.", + true, + SDLK_LEFT|MOD_SHIFT}, // Shift + Gauche + {7, + "Faster scroll right", + "Used to scroll to the right in the picture fast, either in magnify and", + "normal mode.", + true, + SDLK_RIGHT|MOD_SHIFT}, // Shift + Droite + {8, + "Slower scroll up", + "Used to scroll upwards in the picture pixel by pixel, either in magnify and", + "normal mode.", + true, + SDLK_UP|MOD_ALT}, // Alt + Haut + {9, + "Slower scroll down", + "Used to scroll downwards in the picture pixel by pixel, either in magnify and", + "normal mode.", + true, + SDLK_DOWN|MOD_ALT}, // Alt + Bas + {10, + "Slower scroll left", + "Used to scroll to the left in the picture pixel by pixel, either in magnify", + "and normal mode.", + true, + SDLK_LEFT|MOD_ALT}, // Alt + Gauche + {11, + "Slower scroll right", + "Used to scroll to the right in the picture pixel by pixel, either in magnify", + "and normal mode.", + true, + SDLK_RIGHT|MOD_ALT}, // Alt + Droite + {12, + "Move mouse cursor 1 pixel up", + "Used to simulate a very small mouse deplacement upwards.", + "It""s very useful when you want a ultra-high precision.", + true, + SDLK_UP|MOD_CTRL}, // Ctrl + Haut + {13, + "Move mouse cursor 1 pixel down", + "Used to simulate a very small mouse deplacement downwards.", + "It""s very useful when you want a ultra-high precision.", + true, + SDLK_DOWN|MOD_CTRL}, // Ctrl + Bas + {14, + "Move mouse cursor 1 pixel left", + "Used to simulate a very small mouse deplacement to the left.", + "It""s very useful when you want a ultra-high precision.", + true, + SDLK_LEFT|MOD_CTRL}, // Ctrl + Gauche + {15, + "Move mouse cursor 1 pixel right", + "Used to simulate a very small mouse deplacement to the right.", + "It""s very useful when you want a ultra-high precision.", + true, + SDLK_RIGHT|MOD_CTRL}, // Ctrl + Droite + {16, + "Simulate left mouse click", + "Used to simulate a click with the left mouse button..", + "It""s very useful when you want a ultra-high precision.", + true, + SDLK_SPACE}, // Space + {17, + "Simulate right mouse click", + "Used to simulate a click with the right mouse button..", + "It""s very useful when you want a ultra-high precision.", + true, + SDLK_SPACE|MOD_SHIFT}, // Shift + Space + {18, + "Show/hide option menu", + "Switch the tool bar display on/off.", + "This hot-key cannot be removed.", + false, + SDLK_F10}, // F10 + {19, + "Show/hide cursor", + "Switch the cursor display on/off.", + "This only works on the \"small cross\" and \"hand\" cursors.", + true, + SDLK_F9}, // F9 + {20, + "Set paintbrush to 1 pixel", + "Useful when you want to use a \"single-pixel-brush\".", + "", + true, + SDLK_DELETE}, // Del + {21, + "Paintbrush choice", + "Opens a menu where you can choose a paintbrush out of 24 predefined ones.", + "", + true, + SDLK_F4}, // F4 + {22, + "Monochrome brush", + "Turn your current user-defined brush into a single colored one.", + "All non-transparent colors are set to current foreground color.", + true, + SDLK_F4|MOD_SHIFT}, // Shift + F4 + {23, + "Freehand drawing", + "Set the drawing mode to the classical freehand one.", + "", + true, + SDLK_d}, // D + {24, + "Switch freehand drawing mode", + "Switch between the 3 ways to use freehand drawing.", + "These modes are: continuous, discontinuous and point by point.", + true, + SDLK_d|MOD_SHIFT}, // Shift + D + {25, + "Continuous freehand drawing", + "Switch directly to continuous freehand drawing mode.", + "", + true, + SDLK_d|MOD_CTRL}, // Ctrl + D + {26, + "Line", + "Allows you to draw lines.", + "", + true, + SDLK_l}, // L + {27, + "Knotted lines", + "Allows you to draw linked lines.", + "This mode can also be called \"Polyline\".", + true, + SDLK_l|MOD_SHIFT}, // Shift + L + {28, + "Spray", + "Allows you to spray brushes randomly in the picture.", + "", + true, + SDLK_a}, // A (Q en AZERTY) + {29, + "Spray menu", + "Opens a menu in which you can configure the spray flow and size.", + "", + true, + SDLK_a|MOD_SHIFT}, // Shift + A + {30, + "Flood-fill", + "Allows you to fill an area of the picture made of pixels of the same color.", + "", + true, + SDLK_f}, // F + {124, + "Replace color", + "Allows you to replace all the pixels of the color pointed by the mouse with", + "the fore-color or the back-color.", + true, + SDLK_f|MOD_SHIFT}, // Shift + F + {31, + "Bezier""s curves", + "Allows you to draw Bezier""s curves.", + "", + true, + SDLK_i}, // I + {32, + "Bezier""s curve with 3 or 4 points", + "Allows you to choose whether you want to draw Bezier""s curves with 3 or 4", + "points.", + true, + SDLK_i|MOD_SHIFT}, // Shift + I + {33, + "Empty rectangle", + "Allows you to draw a rectangle using the brush.", + "", + true, + SDLK_r}, // R + {34, + "Filled rectangle", + "Allows you to draw a filled rectangle.", + "", + true, + SDLK_r|MOD_SHIFT}, // Shift + R + {35, + "Empty circle", + "Allows you to draw a circle using the brush.", + "", + true, + SDLK_c}, // C + {36, + "Empty ellipse", + "Allows you to draw an ellipse using the brush.", + "", + true, + SDLK_c|MOD_CTRL}, // Ctrl + C + {37, + "Filled circle", + "Allows you to draw a filled circle.", + "", + true, + SDLK_c|MOD_SHIFT}, // Shift + C + {38, + "Filled ellipse", + "Allows you to draw a filled ellipse.", + "", + true, + SDLK_c|MOD_SHIFT|MOD_CTRL}, // Shift + Ctrl + C + {39, + "Empty polygon", + "Allows you to draw a polygon using the brush.", + "", + true, + SDLK_n}, // N + {40, + "Empty \"polyform\"", + "Allows you to draw a freehand polygon using the brush.", + "", + true, + SDLK_n|MOD_CTRL}, // Ctrl + N + {41, + "Filled polygon", + "Allows you to draw a filled polygon.", + "", + true, + SDLK_n|MOD_SHIFT}, // Shift + N + {42, + "Filled \"polyform\"", + "Allows you to draw a filled freehand polygon.", + "", + true, + SDLK_n|MOD_SHIFT|MOD_CTRL}, // Shift + Ctrl + N + {43, + "Rectangle with gradation", + "Allows you to draw a rectangle with a color gradation.", + "", + true, + SDLK_r|MOD_ALT}, // Alt + R + {44, + "Gradation menu", + "Allows you to configure the way color gradations are calculated.", + "", + true, + SDLK_g|MOD_ALT}, // Alt + G + {45, + "Sphere with gradation", + "Allows you to draw a rectangle with a color gradation.", + "", + true, + SDLK_c|MOD_ALT}, // Alt + C + {46, + "Ellipse with gradation", + "Allows you to draw an ellipse filled with a color gradation.", + "", + true, + SDLK_c|MOD_SHIFT|MOD_ALT}, // Shift + Alt + C + {47, + "Adjust picture", + "Allows you to move the whole picture in order to re-center it.", + "Notice that what gets out from a side reappears on the other.", + true, + SDLK_KP5}, // Kpad5 + {48, + "Flip/shrink picture menu", + "Opens a menu which allows you to flip the picture horizontally/vertically or", + "to shrink it to half-scale horizontally and/or vertically.", + true, + SDLK_KP5|MOD_SHIFT}, // Shift + Kpad5 + {49, + "Drawing effects", + "Opens a menu where you can enable/disable and configure the drawing effects", + "listed below.", + true, + SDLK_e}, // E + {50, + "Shade mode", + "Allows you to shade or lighten some pixels of the picture belonging to a", + "color range, in addition of any drawing tool.", + true, + SDLK_F5}, // F5 + {51, + "Shade menu", + "Opens a menu where you can choose color ranges to use with the Shade mode.", + "This menu also contains parameters used both in Shade and Quick-shade modes.", + true, + SDLK_F5|MOD_SHIFT}, // Shift + F5 + {131, + "Quick-shade mode", + "Does the same thing as shade mode with a simpler method (faster to define", + "but a bit less powerful).", + true, + SDLK_F5|MOD_CTRL}, // Ctrl + F5 + {132, + "Quick-shade menu", + "Opens a menu where you can define the parameters of the quick-shade mode.", + "", + true, + SDLK_F5|MOD_SHIFT|MOD_CTRL}, // Shift + Ctrl + F5 + {52, + "Stencil mode", + "Allows you to mask colors that must not be affected when you are drawing.", + "", + true, + SDLK_F6}, // F6 + {53, + "Stencil menu", + "Opens a menu where you can choose colors masked by the Stencil mode.", + "", + true, + SDLK_F6|MOD_SHIFT}, // Shift + F6 + {54, + "Mask mode", + "Allows you to mask colors of the spare page that will keep you from ", + "drawing. This mode should be called \"True stencil\".", + true, + SDLK_F6|MOD_ALT}, // Alt + F6 + {55, + "Mask menu", + "Opens a menu where you can choose colors for the Mask mode.", + "", + true, + SDLK_F6|MOD_SHIFT|MOD_ALT}, // Shift + Alt + F6 + {56, + "Grid mode", + "Force the cursor to snap up grid points.", + "", + true, + SDLK_g}, // G + {57, + "Grid menu", + "Open a menu where you can configure the grid used by Grid mode.", + "", + true, + SDLK_g|MOD_SHIFT}, // Shift + G + {58, + "Sieve mode", + "Only draws pixels on certain positions matching with a sieve.", + "", + true, + SDLK_g|MOD_CTRL}, // Ctrl + G + {59, + "Sieve menu", + "Opens a menu where you can configure the sieve.", + "", + true, + SDLK_g|MOD_SHIFT|MOD_CTRL}, // Shift + Ctrl + G + {60, + "Invert sieve", + "Inverts the pattern defined in the Sieve menu.", + "", + true, + SDLK_g|MOD_CTRL|MOD_ALT}, // Ctrl + Alt + G + {61, + "Colorize mode", + "Allows you to colorize the pixels on which your brush is pasted.", + "This permits you to make transparency effects.", + true, + SDLK_F7}, // F7 + {62, + "Colorize menu", + "Opens a menu where you can give the opacity percentage for Colorize mode.", + "", + true, + SDLK_F7|MOD_SHIFT}, // Shift + F7 + {63, + "Smooth mode", + "Soften pixels on which your brush is pasted.", + "", + true, + SDLK_F8}, // F8 + {123, + "Smooth menu", + "Opens a menu where you can define the Smooth matrix.", + "", + true, + SDLK_F8|MOD_SHIFT}, // Shift + F8 + {64, + "Smear mode", + "Smears the pixels when you move your brush on the picture.", + "", + true, + SDLK_F8|MOD_ALT}, // Alt + F8 + {65, + "Tiling mode", + "Puts parts of the brush where you draw.", + "", + true, + SDLK_b|MOD_ALT}, // Alt + B + {66, + "Tiling menu", + "Opens a menu where you can configure the origin of the tiling.", + "", + true, + SDLK_b|MOD_SHIFT|MOD_ALT}, // Shift + Alt + B + {67, + "Classical brush grabbing", + "Allows you to pick a brush defined within a rectangle.", + "", + true, + SDLK_b}, // B + {68, + "\"Lasso\" brush grabbing", + "Allows you to pick a brush defined within a freehand polygon.", + "", + true, + SDLK_b|MOD_CTRL}, // Ctrl + B + {69, + "Get previous brush back", + "Restore the last user-defined brush.", + "", + true, + SDLK_b|MOD_SHIFT}, // Shift + B + {70, + "Horizontal brush flipping", + "Reverse brush horizontally.", + "", + true, + SDLK_x}, // X + {71, + "Vertical brush flipping", + "Reverse brush vertically.", + "", + true, + SDLK_y}, // Y + {72, + "90ø brush rotation", + "Rotate the user-defined brush by 90ø (counter-clockwise).", + "", + true, + SDLK_z}, // Z (W en AZERTY) + {73, + "180ø brush rotation", + "Rotate the user-defined brush by 180ø.", + "", + true, + SDLK_z|MOD_SHIFT}, // Shift + Z + {74, + "Strech brush", + "Allows you to resize the user-defined brush.", + "", + true, + SDLK_s}, // S + {75, + "Distort brush", + "Allows you to distort the user-defined brush.", + "", + true, + SDLK_s|MOD_SHIFT}, // Shift + S + {76, + "Outline brush", + "Outlines the user-defined brush with the fore color.", + "", + true, + SDLK_o}, // O + {77, + "Nibble brush", + "Deletes the borders of the user-defined brush.", + "This does the opposite of the Outline option.", + true, + SDLK_o|MOD_SHIFT}, // Shift + O + {78, + "Get colors from brush", + "Copy colors of the spare page that are used in the brush.", + "", + true, + SDLK_F11}, // F11 + {79, + "Recolorize brush", + "Recolorize pixels of the user-defined brush in order to get a brush which", + "looks like the one grabbed in the spare page.", + true, + SDLK_F12}, // F12 + {80, + "Rotate by any angle", + "Rotate the brush by an angle that you can define.", + "", + true, + SDLK_w}, // W (Z en AZERTY) + {81, + "Pipette", + "Allows you to copy the color of a pixel in the picture into the foreground", + "or background color.", + true, + SDLK_BACKQUOTE}, // `~ (Touche sous le Esc - ² en AZERTY) + {82, + "Swap foreground/background colors", + "Invert foreground and background colors.", + "", + true, + SDLK_BACKQUOTE|MOD_SHIFT}, // Shift + `~ + {83, + "Magnifier mode", + "Allows you to zoom into the picture.", + "", + true, + SDLK_m}, // M (, ? sur AZERTY) + {84, + "Zoom factor menu", + "Opens a menu where you can choose a magnifying factor.", + "", + true, + SDLK_m|MOD_SHIFT}, // Shift + M + {85, + "Zoom in", + "Increase magnifying factor.", + "", + true, + SDLK_KP_PLUS}, // Grey + + {86, + "Zoom out", + "Decrease magnifying factor.", + "", + true, + SDLK_KP_MINUS}, // Grey - + {87, + "Brush effects menu", + "Opens a menu which proposes different effects on the user-defined brush.", + "", + true, + SDLK_b|MOD_CTRL|MOD_ALT}, // Ctrl + Alt + B + {88, + "Text", + "Opens a menu which permits you to type in a character string and to choose a", + "font, and then creates a new user-defined brush fitting to your choices.", + true, + SDLK_t}, // T + {89, + "Screen resolution menu", + "Opens a menu where you can choose the dimensions of the screen in which you", + "want to draw among the numerous X and SVGA proposed modes.", + true, + SDLK_RETURN}, // Enter + {90, + "\"Safety\" resolution", + "Set resolution to 320x200. This can be useful if you choosed a resolution", + "that is not supported by your monitor and video card. Cannot be removed.", + false, + SDLK_RETURN|MOD_SHIFT}, // Shift + Enter + {91, + "Help and credits", + "Opens a window where you can get information about the program.", + "", + true, + SDLK_F1}, // F1 + {92, + "Statistics", + "Displays miscellaneous more or less useful information.", + "", + true, + SDLK_F1|MOD_SHIFT}, // Shift + F1 + {93, + "Jump to spare page", + "Swap current page and spare page.", + "", + true, + SDLK_TAB}, // Tab + {94, + "Copy current page to spare page", + "Copy current page to spare page.", + "", + true, + SDLK_TAB|MOD_SHIFT}, // Shift + Tab + {95, + "Save picture as...", + "Opens a file-selector that allows you to save your picture with a new", + "path-name.", + true, + SDLK_F2}, // F2 + {96, + "Save picture", + "Saves your picture with the last name you gave it.", + "", + true, + SDLK_F2|MOD_SHIFT}, // Shift + F2 + {97, + "Load picture", + "Opens a file-selector that allows you to load a new picture.", + "", + true, + SDLK_F3}, // F3 + {98, + "Re-load picture", + "Re-load the current picture.", + "This allows you to cancel modifications made since last saving.", + true, + SDLK_F3|MOD_SHIFT}, // Shift + F3 + {99, + "Save brush", + "Opens a file-selector that allows you to save your current user-defined", + "brush.", + true, + SDLK_F2|MOD_CTRL}, // Ctrl + F2 + {100, + "Load brush", + "Opens a file-selector that allows you to load a brush.", + "", + true, + SDLK_F3|MOD_CTRL}, // Ctrl + F3 + {101, + "Settings", + "Opens a menu which permits you to set the dimension of your picture, and to", + "modify some parameters of the program.", + true, + SDLK_F10|MOD_SHIFT}, // Shift + F10 + {102, + "Undo (Oops!)", + "Cancel the last action which modified the picture. This has no effect after", + "a jump to the spare page, loading a picture or modifying its size.", + true, + SDLK_u}, // U + {103, + "Redo", + "Redo the last undone action. This has no effect after a jump to the spare", + "page, loading a picture or modifying its size.", + true, + SDLK_u|MOD_SHIFT}, // Shift + U + {133, + "Kill", + "Kills the current page. It actually removes the current page from the list", + "of \"Undo\" pages.", + true, + SDLK_DELETE|MOD_SHIFT}, // Shift + Suppr + {104, + "Clear page", + "Clears the picture with the first color of the palette (usually black).", + "", + true, + SDLK_BACKSPACE}, // BackSpace + {105, + "Clear page with backcolor", + "Clears the picture with the backcolor.", + "", + true, + SDLK_BACKSPACE|MOD_SHIFT}, // Shift + BackSpace + {106, + "Quit program", + "Allows you to leave the program.", + "If modifications were not saved, confirmation is asked.", + false, + SDLK_q}, // Q (A en AZERTY) + {107, + "Palette menu", + "Opens a menu which allows you to modify the current palette.", + "", + true, + SDLK_p}, // P + {125, + "Secondary palette menu", + "Opens a menu which allows you to define color series and some tagged colors.", + "", + true, + SDLK_p|MOD_SHIFT}, // Shift + P + {130, + "Exclude colors menu", + "Opens a menu which allows you to define the colors you don""t want to use in", + "modes such as Smooth and Transparency, or when remapping a brush.", + true, + SDLK_p|MOD_CTRL}, // Ctrl + P + {108, + "Scroll palette to the left", + "Scroll palette in the tool bar to the left, column by column.", + "", + true, + SDLK_PAGEUP}, // PgUp + {109, + "Scroll palette to the right", + "Scroll palette in the tool bar to the right, column by column.", + "", + true, + SDLK_PAGEDOWN}, // PgDn + {110, + "Scroll palette to the left faster", + "Scroll palette in the tool bar to the left, 8 columns by 8 columns.", + "", + true, + SDLK_PAGEUP|MOD_SHIFT}, // Shift + PgUp + {111, + "Scroll palette to the right faster", + "Scroll palette in the tool bar to the right, 8 columns by 8 columns.", + "", + true, + SDLK_PAGEDOWN|MOD_SHIFT}, // Shift + PgDn + {112, + "Center brush attachment point", + "Set the attachement of the user-defined brush to its center.", + "", + true, + SDLK_KP5|MOD_CTRL}, // Ctrl + 5 (pavé numérique) + {113, + "Top-left brush attachment point", + "Set the attachement of the user-defined brush to its top-left corner.", + "", + true, + SDLK_HOME|MOD_CTRL}, // Ctrl + 7 + {114, + "Top-right brush attachment point", + "Set the attachement of the user-defined brush to its top-right corner.", + "", + true, + SDLK_PAGEUP|MOD_CTRL}, // Ctrl + 9 + {115, + "Bottom-left brush attachment point", + "Set the attachement of the user-defined brush to its bottom-left corner.", + "", + true, + SDLK_END|MOD_CTRL}, // Ctrl + 1 + {116, + "Bottom-right brush attachment point", + "Set the attachement of the user-defined brush to its bottom-right corner.", + "", + true, + SDLK_PAGEDOWN|MOD_CTRL}, // Ctrl + 3 + {117, + "Next foreground color", + "Set the foreground color to the next in the palette.", + "", + true, + SDLK_RIGHTBRACKET}, // ] (0x en AZERTY) + {118, + "Previous foreground color", + "Set the foreground color to the previous in the palette.", + "", + true, + SDLK_LEFTBRACKET}, // [ (^ en AZERTY) + {119, + "Next background color", + "Set the background color to the next in the palette.", + "", + true, + SDLK_RIGHTBRACKET|MOD_SHIFT}, // Shift + ] + {120, + "Previous background color", + "Set the background color to the previous in the palette.", + "", + true, + SDLK_LEFTBRACKET|MOD_SHIFT}, // Shift + [ + {126, + "Next user-defined forecolor", + "Set the foreground color to the next in the user-defined color series.", + "", + true, + SDLK_EQUALS}, // "=+" + {127, + "Previous user-defined forecolor", + "Set the foreground color to the previous in the user-defined color series.", + "", + true, + SDLK_MINUS}, // "-_" (")ø" en AZERTY + {128, + "Next user-defined backcolor", + "Set the background color to the next in the user-defined color series.", + "", + true, + SDLK_EQUALS|MOD_SHIFT}, // Shift + "=+" + {129, + "Previous user-defined backcolor", + "Set the background color to the previous in the user-defined color series.", + "", + true, + SDLK_MINUS|MOD_SHIFT}, // Shift + "-_" (")ø" en AZERTY + {121, + "Shrink paintbrush", + "Decrease the width of the paintbrush if it is special circle or square.", + "", + true, + SDLK_COMMA}, // , < (;. en AZERTY) + {122, + "Enlarge paintbrush", + "Increase the width of the paintbrush if it is special circle or square.", + "", + true, + SDLK_PERIOD}, // .> (:/ en AZERTY) +};