482 lines
18 KiB
C
482 lines
18 KiB
C
/* vim:expandtab:ts=2 sw=2:
|
||
*/
|
||
/* Grafx2 - The Ultimate 256-color bitmap paint program
|
||
|
||
Copyright 2008 Yves Rizoud
|
||
Copyright 2007 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 <http://www.gnu.org/licenses/>
|
||
*/
|
||
|
||
//////////////////////////////////////////////////////////////////////////////
|
||
///@file const.h
|
||
/// Constants (preprocessor defines) and enumerations used anywhere.
|
||
//////////////////////////////////////////////////////////////////////////////
|
||
|
||
#ifndef _CONST_H_
|
||
#define _CONST_H_
|
||
|
||
#define M_2PI 6.28318530717958647692528676656 ///< Hmm, pie...
|
||
|
||
#define VERSION1 2 ///< Version number for gfx2.cfg (1/4)
|
||
#define VERSION2 0 ///< Version number for gfx2.cfg (2/4)
|
||
#define BETA1 98 ///< Version number for gfx2.cfg (3/4)
|
||
#define BETA2 0 ///< Version number for gfx2.cfg (4/4)
|
||
#define MAX_VIDEO_MODES 100 ///< Maximum number of video modes Grafx2 can propose.
|
||
#define NB_SHORTCUTS 181 ///< Number of actions that can have a key combination associated to it.
|
||
#define NB_ZOOM_FACTORS 12 ///< Number of zoom levels available in the magnifier.
|
||
#define MENU_WIDTH 254 ///< Width of the menu (not counting the palette)
|
||
#define MENU_HEIGHT 44 ///< Height of the menu.
|
||
#define NB_CURSOR_SPRITES 8 ///< Number of available mouse cursor sprites.
|
||
#define CURSOR_SPRITE_WIDTH 15 ///< Width of a mouse cursor sprite.
|
||
#define CURSOR_SPRITE_HEIGHT 15 ///< Height of a mouse cursor sprite.
|
||
#define NB_EFFECTS_SPRITES 9 ///< Number of effect sprites.
|
||
#define NB_MENU_SPRITES 20 ///< Number of menu sprites.
|
||
#define MENU_SPRITE_WIDTH 14 ///< Width of a menu sprite in pixels
|
||
#define MENU_SPRITE_HEIGHT 14 ///< Height of a menu sprite in pixels
|
||
#define LAYER_SPRITE_WIDTH 14 ///< Width of a layer button in pixels
|
||
#define LAYER_SPRITE_HEIGHT 10 ///< Height of a layer button in pixels
|
||
#define PAINTBRUSH_WIDTH 16 ///< Width of a preset paintbrush sprite
|
||
#define PAINTBRUSH_HEIGHT 16 ///< Height of a preset paintbrush sprite
|
||
#define MAX_PAINTBRUSH_SIZE 127 ///< Max size for a resizable paintbrush
|
||
#define ICON_SPRITE_WIDTH 8 ///< Width of an icon in pixels
|
||
#define ICON_SPRITE_HEIGHT 8 ///< Height of an icon in pixels
|
||
#define NB_PAINTBRUSH_SPRITES 48 ///< Number of preset paintbrushes
|
||
#define NB_PRESET_SIEVE 12 ///< Number of preset sieve patterns
|
||
#define OPERATION_STACK_SIZE 16 ///< Max number of parameters in the operation stack.
|
||
#define MAX_DISPLAYABLE_PATH 37 ///< Max number of characters to display directory name, in Save/Load screens.
|
||
#define COMMENT_SIZE 32 ///< Max number of characters for a comment in PKM or PNG file.
|
||
#define NB_MAX_PAGES_UNDO 99 ///< Max number of undo pages
|
||
#define DEFAULT_ZOOM_FACTOR 4 ///< Initial zoom factor for the magnifier.
|
||
#define MAX_PATH_CHARACTERS 260 ///< Number of characters for a file+complete path. Adapt to your OS...
|
||
#define NB_BOOKMARKS 4 ///< Number of bookmark buttons in Save/Load screen.
|
||
// Character to show a right arrow, used when editing long strings. It's present in ::Gfx->System_font
|
||
#define RIGHT_TRIANGLE_CHARACTER 16
|
||
// Character to show a left arrow, used when editing long strings. It's present in ::Gfx->System_font
|
||
#define LEFT_TRIANGLE_CHARACTER 17
|
||
/// Character to display in menus for an ellipsis.
|
||
#define ELLIPSIS_CHARACTER '<27>'
|
||
#define NB_LAYERS 1 ///< Initial number of layers for a new image
|
||
#define BRUSH_CONTAINER_PREVIEW_WIDTH 16 ///< Size for preview of a brush in Brush container
|
||
#define BRUSH_CONTAINER_PREVIEW_HEIGHT 16 ///< Size for preview of a brush in Brush container
|
||
#define BRUSH_CONTAINER_COLUMNS 4 ///< Number of columns in the Brush container
|
||
#define BRUSH_CONTAINER_ROWS 3 ///< Number of rows in the Brush container
|
||
|
||
///
|
||
/// We force the dynamic backup page allocation to leave a minimum of
|
||
/// 256Kb of free memory, to allow the rest of the program to work safely.
|
||
/// Note: This is a remainder of the DOS version. This system might not work
|
||
/// so well on other OSes, where the "available memory" changes due to external
|
||
/// factors.
|
||
#define MINIMAL_MEMORY_TO_RESERVE (256*1024)
|
||
|
||
#define LEFT_SIDE 1 ///< Indicates a left side or left-click
|
||
#define RIGHT_SIDE 2 ///< Indicates a right side or right-click
|
||
|
||
#define SEPARATOR_WIDTH 6 ///< Width of the separator between the normal and the zoomed view
|
||
#define INITIAL_SEPARATOR_PROPORTION 0.3 ///< Proportion of the normal view width, relative to the whole screen width.
|
||
#define NB_ZOOMED_PIXELS_MIN 4 ///< Minimal number of pixel shown (in width) by the zoomed view. (Note: below 4, you can't scroll!)
|
||
|
||
#if defined(__MORPHOS__) || defined(__amigaos4__) || defined(__amigaos__)
|
||
#define PARENT_DIR "/"
|
||
#else
|
||
/// Filename that means "parent directory" for your operating system.
|
||
#define PARENT_DIR ".."
|
||
#endif
|
||
|
||
/// List of file formats recognized by grafx2
|
||
enum FILE_FORMATS
|
||
{
|
||
FORMAT_ALL_IMAGES=0, ///< This is not really a file format, it's reserverd for a compilation of all file extensions
|
||
FORMAT_ALL_FILES=1, ///< This is not really a file format, it's reserverd for the "*.*" filter option.
|
||
FORMAT_PNG,
|
||
FORMAT_GIF,
|
||
FORMAT_BMP,
|
||
FORMAT_PCX,
|
||
FORMAT_PKM,
|
||
FORMAT_LBM,
|
||
FORMAT_IMG,
|
||
FORMAT_SCx,
|
||
FORMAT_PI1,
|
||
FORMAT_PC1,
|
||
FORMAT_CEL,
|
||
FORMAT_NEO,
|
||
FORMAT_C64,
|
||
FORMAT_KCF,
|
||
FORMAT_PAL,
|
||
FORMAT_SCR,
|
||
FORMAT_MISC, ///< Must be last of enum: others formats recognized by SDL_image
|
||
};
|
||
|
||
/// Default format for 'save as'
|
||
#define DEFAULT_FILEFORMAT FORMAT_GIF
|
||
|
||
/// Error codes for ::Error()
|
||
enum ERROR_CODES
|
||
{
|
||
ERROR_WARNING=0, ///< Red flash on screen, non-fatal error
|
||
ERROR_GUI_MISSING, ///< The graphics file is missing
|
||
ERROR_GUI_CORRUPTED, ///< The graphics file cannot be parsed for GUI elements
|
||
ERROR_INI_MISSING, ///< File gfx2def.ini is missing
|
||
ERROR_CFG_MISSING, ///< File gfx2.cfg is missing (non-fatal)
|
||
ERROR_CFG_CORRUPTED, ///< File gfx2.cfg couldn't be parsed (non-fatal)
|
||
ERROR_CFG_OLD, ///< Unknown version of gfx2.cfg : either VERY old or wrong file (non-fatal)
|
||
ERROR_MEMORY, ///< Out of memory
|
||
ERROR_COMMAND_LINE, ///< Error in command-line arguments (syntax, or couldn't find the file to open)
|
||
ERROR_FORBIDDEN_MODE, ///< Graphics mode requested is not supported
|
||
ERROR_SAVING_CFG, ///< Error while writing gfx2.cfg
|
||
ERROR_MISSING_DIRECTORY, ///< Unable to return to the original "current directory" on program exit
|
||
ERROR_INI_CORRUPTED, ///< File gfx2.ini couldn't be parsed
|
||
ERROR_SAVING_INI, ///< Error while writing gfx2.ini
|
||
ERROR_SORRY_SORRY_SORRY ///< (Page allocation error that shouldn't ever happen, now)
|
||
};
|
||
|
||
/// Available pixel scalers
|
||
enum PIXEL_RATIO
|
||
{
|
||
PIXEL_SIMPLE=0, ///< Use real pixels
|
||
PIXEL_WIDE, ///< Use wide pixels (2x1) like on Amstrad CPC mode 0
|
||
PIXEL_TALL, ///< Use tall pixels (1x2) like on Amstrad CPC mode 2
|
||
PIXEL_DOUBLE, ///< Use big pixels (2x2) if your LCD screen can't do lowres by itself
|
||
PIXEL_TRIPLE, ///< Use really big pixels (3x3)
|
||
PIXEL_WIDE2, ///< Use big wide pixels (4x2)
|
||
PIXEL_TALL2, ///< Use big tall pixels (2x4)
|
||
PIXEL_QUAD, ///< Use really giant pixels (4x4). You need to have a screen resolution at least 1280x800 to use this one
|
||
PIXEL_MAX ///< Number of elements in enum
|
||
};
|
||
|
||
/// Different kinds of menu button behavior.
|
||
enum FAMILY_OF_BUTTONS
|
||
{
|
||
FAMILY_TOOL=1, ///< Drawing tools (example : Freehand draw)
|
||
FAMILY_INTERRUPTION, ///< Temporary operation (example : choosing paintbrush) > Interrupts the current operation to do something, then come back.
|
||
FAMILY_INSTANT, ///< Single-click action (example : choose a color in palette) > It will be over as soon as we exit the called function.
|
||
FAMILY_TOOLBAR, ///< Hide/show the menu
|
||
FAMILY_EFFECTS ///< Effects
|
||
};
|
||
|
||
/// The different kinds of buttons in menus or windows.
|
||
enum BUTTON_SHAPES
|
||
{
|
||
BUTTON_SHAPE_NO_FRAME, ///< Ex: the palette
|
||
BUTTON_SHAPE_RECTANGLE, ///< Ex: Most buttons.
|
||
BUTTON_SHAPE_TRIANGLE_TOP_LEFT, ///< Ex: Empty rectangles.
|
||
BUTTON_SHAPE_TRIANGLE_BOTTOM_RIGHT ///< Ex: Filled rectangles.
|
||
};
|
||
|
||
/// The different "mouse cursor" shapes
|
||
enum CURSOR_SHAPES
|
||
{
|
||
CURSOR_SHAPE_ARROW,
|
||
CURSOR_SHAPE_TARGET, ///< This one uses the paintbrush
|
||
CURSOR_SHAPE_COLORPICKER, ///< This one uses the paintbrush
|
||
CURSOR_SHAPE_HOURGLASS,
|
||
CURSOR_SHAPE_MULTIDIRECTIONAL,
|
||
CURSOR_SHAPE_HORIZONTAL,
|
||
CURSOR_SHAPE_THIN_TARGET, ///< This one uses the paintbrush
|
||
CURSOR_SHAPE_THIN_COLORPICKER, ///< This one uses the paintbrush
|
||
CURSOR_SHAPE_XOR_TARGET,
|
||
CURSOR_SHAPE_XOR_RECTANGLE,
|
||
CURSOR_SHAPE_XOR_ROTATION
|
||
};
|
||
|
||
/// The different shapes that can be used as a paintbrush (paintbrush types go in the beginning)
|
||
enum PAINTBRUSH_SHAPES
|
||
{
|
||
PAINTBRUSH_SHAPE_ROUND,
|
||
PAINTBRUSH_SHAPE_SQUARE,
|
||
PAINTBRUSH_SHAPE_HORIZONTAL_BAR,
|
||
PAINTBRUSH_SHAPE_VERTICAL_BAR,
|
||
PAINTBRUSH_SHAPE_SLASH,
|
||
PAINTBRUSH_SHAPE_ANTISLASH,
|
||
PAINTBRUSH_SHAPE_RANDOM, ///< Random pixels in a circle shape, like an airbrush.
|
||
PAINTBRUSH_SHAPE_CROSS,
|
||
PAINTBRUSH_SHAPE_PLUS,
|
||
PAINTBRUSH_SHAPE_DIAMOND,
|
||
PAINTBRUSH_SHAPE_SIEVE_ROUND,
|
||
PAINTBRUSH_SHAPE_SIEVE_SQUARE,
|
||
PAINTBRUSH_SHAPE_MISC, ///< A raw monochrome bitmap, can't be resized. This must be the last of the preset paintbrush types.
|
||
PAINTBRUSH_SHAPE_POINT, ///< Used to reduce the paintbrush to a single pixel, during operations like colorpicker.
|
||
PAINTBRUSH_SHAPE_COLOR_BRUSH, ///< User's brush, in color mode
|
||
PAINTBRUSH_SHAPE_MONO_BRUSH, ///< User's brush, in mono mode
|
||
PAINTBRUSH_SHAPE_MAX ///< Upper limit.
|
||
};
|
||
|
||
/// Normal resting state for a menu button.
|
||
#define BUTTON_RELEASED 0
|
||
/// State of a menu button that is being pressed.
|
||
#define BUTTON_PRESSED 1
|
||
|
||
/// The different modes of the Shade
|
||
enum SHADE_MODES
|
||
{
|
||
SHADE_MODE_NORMAL,
|
||
SHADE_MODE_LOOP,
|
||
SHADE_MODE_NOSAT
|
||
};
|
||
|
||
/// Identifiers for the chunks (data blocks) of gfx2.cfg
|
||
enum CHUNKS_CFG
|
||
{
|
||
CHUNK_KEYS = 0, ///< Shortcut keys definitions
|
||
CHUNK_VIDEO_MODES = 1, ///< List of video modes
|
||
CHUNK_SHADE = 2, ///< Shade settings
|
||
CHUNK_MASK = 3, ///< Mask settings
|
||
CHUNK_STENCIL = 4, ///< Stencil settings
|
||
CHUNK_GRADIENTS = 5, ///< Gradients
|
||
CHUNK_SMOOTH = 6, ///< Smooth effect settings
|
||
CHUNK_EXCLUDE_COLORS = 7, ///< List of excluded colors
|
||
CHUNK_QUICK_SHADE = 8, ///< QShade effect settings
|
||
CHUNK_GRID = 9,
|
||
CHUNK_MAX
|
||
};
|
||
|
||
/// Identifiers for the 8x8 icons of ::Gfx->Icon_sprite (most are unused now)
|
||
enum ICON_TYPES
|
||
{
|
||
ICON_FLOPPY_3_5=0, ///< 3.5 Floppy disk
|
||
ICON_FLOPPY_5_25, ///< 5.25 Floppy disk
|
||
ICON_HDD, ///< Hard disk drive
|
||
ICON_CDROM, ///< CD-ROM
|
||
ICON_NETWORK, ///< "Network" drive
|
||
ICON_STAR, ///< Star (favorite)
|
||
ICON_DROPDOWN, ///< Dropdown arrow
|
||
NB_ICON_SPRITES ///< Number of 8x8 icons
|
||
};
|
||
|
||
/// Identifiers for the buttons in the menu.
|
||
enum BUTTON_NUMBERS
|
||
{
|
||
// Status bar
|
||
BUTTON_HIDE = 0,
|
||
|
||
// Layer bar
|
||
BUTTON_LAYER_MENU,
|
||
BUTTON_LAYER_COLOR,
|
||
BUTTON_LAYER_MERGE,
|
||
BUTTON_LAYER_ADD,
|
||
BUTTON_LAYER_REMOVE,
|
||
BUTTON_LAYER_UP,
|
||
BUTTON_LAYER_DOWN,
|
||
|
||
// Main menu
|
||
BUTTON_PAINTBRUSHES,
|
||
BUTTON_ADJUST,
|
||
BUTTON_DRAW,
|
||
BUTTON_CURVES,
|
||
BUTTON_LINES,
|
||
BUTTON_AIRBRUSH,
|
||
BUTTON_FLOODFILL,
|
||
BUTTON_POLYGONS,
|
||
BUTTON_POLYFILL,
|
||
BUTTON_RECTANGLES,
|
||
BUTTON_FILLRECT,
|
||
BUTTON_CIRCLES,
|
||
BUTTON_FILLCIRC,
|
||
BUTTON_GRADRECT,
|
||
BUTTON_SPHERES,
|
||
BUTTON_BRUSH,
|
||
BUTTON_POLYBRUSH,
|
||
BUTTON_BRUSH_EFFECTS,
|
||
BUTTON_EFFECTS,
|
||
BUTTON_TEXT,
|
||
BUTTON_MAGNIFIER,
|
||
BUTTON_COLORPICKER,
|
||
BUTTON_RESOL,
|
||
BUTTON_PAGE,
|
||
BUTTON_SAVE,
|
||
BUTTON_LOAD,
|
||
BUTTON_SETTINGS,
|
||
BUTTON_CLEAR,
|
||
BUTTON_HELP,
|
||
BUTTON_UNDO,
|
||
BUTTON_KILL,
|
||
BUTTON_QUIT,
|
||
BUTTON_PALETTE,
|
||
BUTTON_PAL_LEFT,
|
||
BUTTON_PAL_RIGHT,
|
||
BUTTON_CHOOSE_COL,
|
||
NB_BUTTONS ///< Number of buttons in the menu bar.
|
||
};
|
||
|
||
///
|
||
/// Identifiers of special actions that can have a keyboard shortcut.
|
||
/// They are special in the sense that there's no button in the menu for them,
|
||
/// so it requires a specific handling.
|
||
enum SPECIAL_ACTIONS
|
||
{
|
||
SPECIAL_MOUSE_UP=0,
|
||
SPECIAL_MOUSE_DOWN,
|
||
SPECIAL_MOUSE_LEFT,
|
||
SPECIAL_MOUSE_RIGHT,
|
||
SPECIAL_CLICK_LEFT,
|
||
SPECIAL_CLICK_RIGHT,
|
||
SPECIAL_NEXT_FORECOLOR,
|
||
SPECIAL_PREVIOUS_FORECOLOR,
|
||
SPECIAL_NEXT_BACKCOLOR,
|
||
SPECIAL_PREVIOUS_BACKCOLOR,
|
||
SPECIAL_SMALLER_PAINTBRUSH,
|
||
SPECIAL_BIGGER_PAINTBRUSH,
|
||
SPECIAL_NEXT_USER_FORECOLOR,
|
||
SPECIAL_PREVIOUS_USER_FORECOLOR,
|
||
SPECIAL_NEXT_USER_BACKCOLOR,
|
||
SPECIAL_PREVIOUS_USER_BACKCOLOR,
|
||
SPECIAL_SCROLL_UP,
|
||
SPECIAL_SCROLL_DOWN,
|
||
SPECIAL_SCROLL_LEFT,
|
||
SPECIAL_SCROLL_RIGHT,
|
||
SPECIAL_SCROLL_UP_FAST,
|
||
SPECIAL_SCROLL_DOWN_FAST,
|
||
SPECIAL_SCROLL_LEFT_FAST,
|
||
SPECIAL_SCROLL_RIGHT_FAST,
|
||
SPECIAL_SCROLL_UP_SLOW,
|
||
SPECIAL_SCROLL_DOWN_SLOW,
|
||
SPECIAL_SCROLL_LEFT_SLOW,
|
||
SPECIAL_SCROLL_RIGHT_SLOW,
|
||
SPECIAL_SHOW_HIDE_CURSOR,
|
||
SPECIAL_DOT_PAINTBRUSH,
|
||
SPECIAL_CONTINUOUS_DRAW,
|
||
SPECIAL_FLIP_X,
|
||
SPECIAL_FLIP_Y,
|
||
SPECIAL_ROTATE_90,
|
||
SPECIAL_ROTATE_180,
|
||
SPECIAL_STRETCH,
|
||
SPECIAL_DISTORT,
|
||
SPECIAL_OUTLINE,
|
||
SPECIAL_NIBBLE,
|
||
SPECIAL_GET_BRUSH_COLORS,
|
||
SPECIAL_RECOLORIZE_BRUSH,
|
||
SPECIAL_ROTATE_ANY_ANGLE,
|
||
SPECIAL_LOAD_BRUSH,
|
||
SPECIAL_SAVE_BRUSH,
|
||
SPECIAL_INVERT_SIEVE,
|
||
SPECIAL_ZOOM_IN,
|
||
SPECIAL_ZOOM_OUT,
|
||
SPECIAL_CENTER_ATTACHMENT,
|
||
SPECIAL_TOP_LEFT_ATTACHMENT,
|
||
SPECIAL_TOP_RIGHT_ATTACHMENT,
|
||
SPECIAL_BOTTOM_LEFT_ATTACHMENT,
|
||
SPECIAL_BOTTOM_RIGHT_ATTACHMENT,
|
||
SPECIAL_EXCLUDE_COLORS_MENU,
|
||
SPECIAL_SHADE_MODE,
|
||
SPECIAL_SHADE_MENU,
|
||
SPECIAL_QUICK_SHADE_MODE, ///< This must be the first of the "effects" family
|
||
SPECIAL_QUICK_SHADE_MENU,
|
||
SPECIAL_STENCIL_MODE,
|
||
SPECIAL_STENCIL_MENU,
|
||
SPECIAL_MASK_MODE,
|
||
SPECIAL_MASK_MENU,
|
||
SPECIAL_GRID_MODE,
|
||
SPECIAL_GRID_MENU,
|
||
SPECIAL_SIEVE_MODE,
|
||
SPECIAL_SIEVE_MENU,
|
||
SPECIAL_COLORIZE_MODE,
|
||
SPECIAL_COLORIZE_MENU,
|
||
SPECIAL_SMOOTH_MODE,
|
||
SPECIAL_SMOOTH_MENU,
|
||
SPECIAL_SMEAR_MODE,
|
||
SPECIAL_EFFECTS_OFF,
|
||
SPECIAL_TILING_MODE,
|
||
SPECIAL_TRANSPARENCY_1,
|
||
SPECIAL_TRANSPARENCY_2,
|
||
SPECIAL_TRANSPARENCY_3,
|
||
SPECIAL_TRANSPARENCY_4,
|
||
SPECIAL_TRANSPARENCY_5,
|
||
SPECIAL_TRANSPARENCY_6,
|
||
SPECIAL_TRANSPARENCY_7,
|
||
SPECIAL_TRANSPARENCY_8,
|
||
SPECIAL_TRANSPARENCY_9,
|
||
SPECIAL_TRANSPARENCY_0,
|
||
SPECIAL_TILING_MENU, ///< This must be the last of the "effects" family
|
||
SPECIAL_ZOOM_1,
|
||
SPECIAL_ZOOM_2,
|
||
SPECIAL_ZOOM_3,
|
||
SPECIAL_ZOOM_4,
|
||
SPECIAL_ZOOM_5,
|
||
SPECIAL_ZOOM_6,
|
||
SPECIAL_ZOOM_8,
|
||
SPECIAL_ZOOM_10,
|
||
SPECIAL_ZOOM_12,
|
||
SPECIAL_ZOOM_14,
|
||
SPECIAL_ZOOM_16,
|
||
SPECIAL_ZOOM_18,
|
||
SPECIAL_ZOOM_20,
|
||
SPECIAL_SHOW_GRID,
|
||
SPECIAL_LAYER1_SELECT,
|
||
SPECIAL_LAYER1_TOGGLE,
|
||
SPECIAL_LAYER2_SELECT,
|
||
SPECIAL_LAYER2_TOGGLE,
|
||
SPECIAL_LAYER3_SELECT,
|
||
SPECIAL_LAYER3_TOGGLE,
|
||
SPECIAL_LAYER4_SELECT,
|
||
SPECIAL_LAYER4_TOGGLE,
|
||
SPECIAL_LAYER5_SELECT,
|
||
SPECIAL_LAYER5_TOGGLE,
|
||
SPECIAL_LAYER6_SELECT,
|
||
SPECIAL_LAYER6_TOGGLE,
|
||
SPECIAL_LAYER7_SELECT,
|
||
SPECIAL_LAYER7_TOGGLE,
|
||
SPECIAL_LAYER8_SELECT,
|
||
SPECIAL_LAYER8_TOGGLE,
|
||
SPECIAL_LAYER_ADD,
|
||
SPECIAL_LAYER_DELETE,
|
||
SPECIAL_LAYER_MERGE,
|
||
SPECIAL_LAYER_SWAP_UP,
|
||
SPECIAL_LAYER_SWAP_DOWN,
|
||
SPECIAL_LAYER_MENU,
|
||
NB_SPECIAL_SHORTCUTS ///< Number of special shortcuts
|
||
};
|
||
|
||
/// Identifiers of the operations, ie tools you use on the image.
|
||
enum OPERATIONS
|
||
{
|
||
OPERATION_CONTINUOUS_DRAW=0, ///< Freehand continuous draw
|
||
OPERATION_DISCONTINUOUS_DRAW,///< Freehand discontinuous draw
|
||
OPERATION_POINT_DRAW, ///< Freehand point-by-point draw
|
||
OPERATION_FILLED_CONTOUR, ///< Filled contour
|
||
OPERATION_LINE, ///< Lines
|
||
OPERATION_K_LIGNE, ///< Linked lines
|
||
OPERATION_CENTERED_LINES, ///< Centered lines
|
||
OPERATION_EMPTY_RECTANGLE, ///< Empty rectangle
|
||
OPERATION_FILLED_RECTANGLE, ///< Filled rectangle
|
||
OPERATION_EMPTY_CIRCLE, ///< Empty circle
|
||
OPERATION_FILLED_CIRCLE, ///< Filled circle
|
||
OPERATION_EMPTY_ELLIPSE, ///< Empty ellipse
|
||
OPERATION_FILLED_ELLIPSE, ///< Filled ellipse
|
||
OPERATION_FILL, ///< Fill
|
||
OPERATION_REPLACE, ///< Color replacer
|
||
OPERATION_GRAB_BRUSH, ///< Rectangular brush grabbing
|
||
OPERATION_POLYBRUSH, ///< Polygonal brush grabbing
|
||
OPERATION_COLORPICK, ///< Colorpicker
|
||
OPERATION_MAGNIFY, ///< Position the magnify window
|
||
OPERATION_3_POINTS_CURVE, ///< Curve with 3 control points
|
||
OPERATION_4_POINTS_CURVE, ///< Curve with 4 control points
|
||
OPERATION_AIRBRUSH, ///< Airbrush
|
||
OPERATION_POLYGON, ///< Polygon
|
||
OPERATION_POLYFORM, ///< Polyform
|
||
OPERATION_POLYFILL, ///< Filled polygon
|
||
OPERATION_FILLED_POLYFORM, ///< Filled polyform
|
||
OPERATION_SCROLL, ///< Scroll (pan)
|
||
OPERATION_GRAD_CIRCLE, ///< Gradient-filled circle
|
||
OPERATION_GRAD_ELLIPSE, ///< Gradient-filled ellipse
|
||
OPERATION_ROTATE_BRUSH, ///< Rotate brush
|
||
OPERATION_STRETCH_BRUSH, ///< Stretch brush
|
||
OPERATION_DISTORT_BRUSH, ///< Distort brush
|
||
OPERATION_GRAD_RECTANGLE, ///< Gradient-filled rectangle
|
||
NB_OPERATIONS ///< Number of operations handled by the engine
|
||
};
|
||
|
||
#endif
|