/* 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 #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; uint16_t Touche2; } 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 0}, {1, "Scroll down", "Scrolls the picture down, both in magnify and normal mode.", "This hotkey cannot be removed.", false, SDLK_DOWN, // BAS 0}, {2, "Scroll left", "Scrolls the picture to the left, both in magnify and normal mode.", "This hotkey cannot be removed.", false, SDLK_LEFT, // GAUCHE 0}, {3, "Scroll right", "Scrolls the picture to the right, both in magnify and normal mode.", "This hotkey cannot be removed.", false, SDLK_RIGHT, // DROITE 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {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 0}, {18, "Show/hide option menu", "Switch the tool bar display on/off.", "This hot-key cannot be removed.", false, SDLK_F10, // F10 0}, {19, "Show/hide cursor", "Switch the cursor display on/off.", "This only works on the \"small cross\" and \"hand\" cursors.", true, SDLK_F9, // F9 0}, {20, "Set paintbrush to 1 pixel", "Useful when you want to use a \"single-pixel-brush\".", "", true, SDLK_DELETE, // Del 0}, {21, "Paintbrush choice", "Opens a menu where you can choose a paintbrush out of 24 predefined ones.", "", true, SDLK_F4, // F4 0}, {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 0}, {23, "Freehand drawing", "Set the drawing mode to the classical freehand one.", "", true, SDLK_d, // D 0}, {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 0}, {25, "Continuous freehand drawing", "Switch directly to continuous freehand drawing mode.", "", true, SDLK_d|MOD_CTRL, // Ctrl + D 0}, {26, "Line", "Allows you to draw lines.", "", true, SDLK_l, // L 0}, {27, "Knotted lines", "Allows you to draw linked lines.", "This mode can also be called \"Polyline\".", true, SDLK_l|MOD_SHIFT, // Shift + L 0}, {28, "Spray", "Allows you to spray brushes randomly in the picture.", "", true, SDLK_a, // A (Q en AZERTY) 0}, {29, "Spray menu", "Opens a menu in which you can configure the spray flow and size.", "", true, SDLK_a|MOD_SHIFT, // Shift + A 0}, {30, "Flood-fill", "Allows you to fill an area of the picture made of pixels of the same color.", "", true, SDLK_f, // F 0}, {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 0}, {31, "Bezier""s curves", "Allows you to draw Bezier""s curves.", "", true, SDLK_i, // I 0}, {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 0}, {33, "Empty rectangle", "Allows you to draw a rectangle using the brush.", "", true, SDLK_r, // R 0}, {34, "Filled rectangle", "Allows you to draw a filled rectangle.", "", true, SDLK_r|MOD_SHIFT, // Shift + R 0}, {35, "Empty circle", "Allows you to draw a circle using the brush.", "", true, SDLK_c, // C 0}, {36, "Empty ellipse", "Allows you to draw an ellipse using the brush.", "", true, SDLK_c|MOD_CTRL, // Ctrl + C 0}, {37, "Filled circle", "Allows you to draw a filled circle.", "", true, SDLK_c|MOD_SHIFT, // Shift + C 0}, {38, "Filled ellipse", "Allows you to draw a filled ellipse.", "", true, SDLK_c|MOD_SHIFT|MOD_CTRL, // Shift + Ctrl + C 0}, {39, "Empty polygon", "Allows you to draw a polygon using the brush.", "", true, SDLK_n, // N 0}, {40, "Empty \"polyform\"", "Allows you to draw a freehand polygon using the brush.", "", true, SDLK_n|MOD_CTRL, // Ctrl + N 0}, {41, "Filled polygon", "Allows you to draw a filled polygon.", "", true, SDLK_n|MOD_SHIFT, // Shift + N 0}, {42, "Filled \"polyform\"", "Allows you to draw a filled freehand polygon.", "", true, SDLK_n|MOD_SHIFT|MOD_CTRL, // Shift + Ctrl + N 0}, {43, "Rectangle with gradation", "Allows you to draw a rectangle with a color gradation.", "", true, SDLK_r|MOD_ALT, // Alt + R 0}, {44, "Gradation menu", "Allows you to configure the way color gradations are calculated.", "", true, SDLK_g|MOD_ALT, // Alt + G 0}, {45, "Sphere with gradation", "Allows you to draw a rectangle with a color gradation.", "", true, SDLK_c|MOD_ALT, // Alt + C 0}, {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 0}, {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 0}, {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 0}, {49, "Drawing effects", "Opens a menu where you can enable/disable and configure the drawing effects", "listed below.", true, SDLK_e, // E 0}, {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 0}, {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 0}, {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 0}, {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 0}, {52, "Stencil mode", "Allows you to mask colors that must not be affected when you are drawing.", "", true, SDLK_F6, // F6 0}, {53, "Stencil menu", "Opens a menu where you can choose colors masked by the Stencil mode.", "", true, SDLK_F6|MOD_SHIFT, // Shift + F6 0}, {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 0}, {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 0}, {56, "Grid mode", "Force the cursor to snap up grid points.", "", true, SDLK_g, // G 0}, {57, "Grid menu", "Open a menu where you can configure the grid used by Grid mode.", "", true, SDLK_g|MOD_SHIFT, // Shift + G 0}, {58, "Sieve mode", "Only draws pixels on certain positions matching with a sieve.", "", true, SDLK_g|MOD_CTRL, // Ctrl + G 0}, {59, "Sieve menu", "Opens a menu where you can configure the sieve.", "", true, SDLK_g|MOD_SHIFT|MOD_CTRL, // Shift + Ctrl + G 0}, {60, "Invert sieve", "Inverts the pattern defined in the Sieve menu.", "", true, SDLK_g|MOD_CTRL|MOD_ALT, // Ctrl + Alt + G 0}, {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 0}, {62, "Colorize menu", "Opens a menu where you can give the opacity percentage for Colorize mode.", "", true, SDLK_F7|MOD_SHIFT, // Shift + F7 0}, {63, "Smooth mode", "Soften pixels on which your brush is pasted.", "", true, SDLK_F8, // F8 0}, {123, "Smooth menu", "Opens a menu where you can define the Smooth matrix.", "", true, SDLK_F8|MOD_SHIFT, // Shift + F8 0}, {64, "Smear mode", "Smears the pixels when you move your brush on the picture.", "", true, SDLK_F8|MOD_ALT, // Alt + F8 0}, {65, "Tiling mode", "Puts parts of the brush where you draw.", "", true, SDLK_b|MOD_ALT, // Alt + B 0}, {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 0}, {67, "Classical brush grabbing", "Allows you to pick a brush defined within a rectangle.", "", true, SDLK_b, // B 0}, {68, "\"Lasso\" brush grabbing", "Allows you to pick a brush defined within a freehand polygon.", "", true, SDLK_b|MOD_CTRL, // Ctrl + B 0}, {69, "Get previous brush back", "Restore the last user-defined brush.", "", true, SDLK_b|MOD_SHIFT, // Shift + B 0}, {70, "Horizontal brush flipping", "Reverse brush horizontally.", "", true, SDLK_x, // X 0}, {71, "Vertical brush flipping", "Reverse brush vertically.", "", true, SDLK_y, // Y 0}, {72, "90ø brush rotation", "Rotate the user-defined brush by 90ø (counter-clockwise).", "", true, SDLK_z, // Z (W en AZERTY) 0}, {73, "180ø brush rotation", "Rotate the user-defined brush by 180ø.", "", true, SDLK_z|MOD_SHIFT, // Shift + Z 0}, {74, "Strech brush", "Allows you to resize the user-defined brush.", "", true, SDLK_s, // S 0}, {75, "Distort brush", "Allows you to distort the user-defined brush.", "", true, SDLK_s|MOD_SHIFT, // Shift + S 0}, {76, "Outline brush", "Outlines the user-defined brush with the fore color.", "", true, SDLK_o, // O 0}, {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 0}, {78, "Get colors from brush", "Copy colors of the spare page that are used in the brush.", "", true, SDLK_F11, // F11 0}, {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 0}, {80, "Rotate by any angle", "Rotate the brush by an angle that you can define.", "", true, SDLK_w, // W (Z en AZERTY) 0}, {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) 0}, {82, "Swap foreground/background colors", "Invert foreground and background colors.", "", true, SDLK_BACKQUOTE|MOD_SHIFT, // Shift + `~ 0}, {83, "Magnifier mode", "Allows you to zoom into the picture.", "", true, SDLK_m, // M (, ? sur AZERTY) TOUCHE_MOUSEMIDDLE}, {84, "Zoom factor menu", "Opens a menu where you can choose a magnifying factor.", "", true, SDLK_m|MOD_SHIFT, // Shift + M 0}, {85, "Zoom in", "Increase magnifying factor.", "", true, SDLK_KP_PLUS, // Grey + TOUCHE_MOUSEWHEELUP}, {86, "Zoom out", "Decrease magnifying factor.", "", true, SDLK_KP_MINUS, // Grey - TOUCHE_MOUSEWHEELDOWN}, {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 0}, {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 0}, {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 0}, {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 0}, {91, "Help and credits", "Opens a window where you can get information about the program.", "", true, SDLK_F1, // F1 0}, {92, "Statistics", "Displays miscellaneous more or less useful information.", "", true, SDLK_F1|MOD_SHIFT, // Shift + F1 0}, {93, "Jump to spare page", "Swap current page and spare page.", "", true, SDLK_TAB, // Tab 0}, {94, "Copy current page to spare page", "Copy current page to spare page.", "", true, SDLK_TAB|MOD_SHIFT, // Shift + Tab 0}, {95, "Save picture as...", "Opens a file-selector that allows you to save your picture with a new", "path-name.", true, SDLK_F2, // F2 0}, {96, "Save picture", "Saves your picture with the last name you gave it.", "", true, SDLK_F2|MOD_SHIFT, // Shift + F2 0}, {97, "Load picture", "Opens a file-selector that allows you to load a new picture.", "", true, SDLK_F3, // F3 0}, {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 0}, {99, "Save brush", "Opens a file-selector that allows you to save your current user-defined", "brush.", true, SDLK_F2|MOD_CTRL, // Ctrl + F2 0}, {100, "Load brush", "Opens a file-selector that allows you to load a brush.", "", true, SDLK_F3|MOD_CTRL, // Ctrl + F3 0}, {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 0}, {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 0}, {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 0}, {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 0}, {104, "Clear page", "Clears the picture with the first color of the palette (usually black).", "", true, SDLK_BACKSPACE, // BackSpace 0}, {105, "Clear page with backcolor", "Clears the picture with the backcolor.", "", true, SDLK_BACKSPACE|MOD_SHIFT, // Shift + BackSpace 0}, {106, "Quit program", "Allows you to leave the program.", "If modifications were not saved, confirmation is asked.", false, SDLK_q, // Q (A en AZERTY) 0}, {107, "Palette menu", "Opens a menu which allows you to modify the current palette.", "", true, SDLK_p, // P 0}, {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 0}, {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 0}, {108, "Scroll palette to the left", "Scroll palette in the tool bar to the left, column by column.", "", true, SDLK_PAGEUP, // PgUp 0}, {109, "Scroll palette to the right", "Scroll palette in the tool bar to the right, column by column.", "", true, SDLK_PAGEDOWN, // PgDn 0}, {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 0}, {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 0}, {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) 0}, {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 0}, {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 0}, {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 0}, {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 0}, {117, "Next foreground color", "Set the foreground color to the next in the palette.", "", true, SDLK_RIGHTBRACKET, // ] (0x en AZERTY) 0}, {118, "Previous foreground color", "Set the foreground color to the previous in the palette.", "", true, SDLK_LEFTBRACKET, // [ (^ en AZERTY) 0}, {119, "Next background color", "Set the background color to the next in the palette.", "", true, SDLK_RIGHTBRACKET|MOD_SHIFT, // Shift + ] 0}, {120, "Previous background color", "Set the background color to the previous in the palette.", "", true, SDLK_LEFTBRACKET|MOD_SHIFT, // Shift + [ 0}, {126, "Next user-defined forecolor", "Set the foreground color to the next in the user-defined color series.", "", true, SDLK_EQUALS, // "=+" 0}, {127, "Previous user-defined forecolor", "Set the foreground color to the previous in the user-defined color series.", "", true, SDLK_MINUS, // "-_" (")ø" en AZERTY 0}, {128, "Next user-defined backcolor", "Set the background color to the next in the user-defined color series.", "", true, SDLK_EQUALS|MOD_SHIFT, // Shift + "=+" 0}, {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 0}, {121, "Shrink paintbrush", "Decrease the width of the paintbrush if it is special circle or square.", "", true, SDLK_COMMA, // , < (;. en AZERTY) 0}, {122, "Enlarge paintbrush", "Increase the width of the paintbrush if it is special circle or square.", "", true, SDLK_PERIOD, // .> (:/ en AZERTY) 0}, };