/* 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) };