Older .cfg files in svn were saved incorrectly: the wrong size of chunk #5 (0x0101 instead of 0xE1) made it impossible to re-read the file in gfxcfg. gfxcfg can read and save gfx2.cfg. Upward compatibility is provided: - If new chunk types are added to the format, it only needs a re-compile. Older files can be read and saved. - If new keyboard shortcuts are added (134 currently), the older files can be read and the default shortcut will be used for missing keys. Fixed many endianness cases, hopefully Fixed LBM loading : bug in ASM->C conversion of Couleur_ILBM_line() Broke PCX loading : argh! git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@176 416bcca6-2ee7-4201-b75f-2eb2f807beb1
		
			
				
	
	
		
			455 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			455 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _CONST_H_
 | 
						|
#define _CONST_H_
 | 
						|
 | 
						|
 | 
						|
 | 
						|
// Déclaration des constantes ////////////////////////////////////////////////
 | 
						|
 | 
						|
#define M_2PI 6.28318530717958647692528676656
 | 
						|
 | 
						|
// Note: La taille du fichier GFX2.DAT est définie au début de INIT.C !
 | 
						|
#define POURCENTAGE_VERSION     "97.0%" // Libellé du pourcentage de la version ß
 | 
						|
#define VERSION1                  2     // |
 | 
						|
#define VERSION2                  0     // |_ Numéro de version découpé en
 | 
						|
#define BETA1                     97    // |  plusieurs parties => 2.0 ß95.5%
 | 
						|
#define BETA2                     0     // |
 | 
						|
#define ALPHA_BETA                "ß"   // Type de la version "Þ" ou "ß"
 | 
						|
#define TAILLE_FICHIER_CONFIG     10351 // Taille du fichier GFX2.CFG
 | 
						|
#define DAT_DEBUT_INI_PAR_DEFAUT  0xF385 // Dans gfx2.dat, début du fichier gfx2.ini standard
 | 
						|
#define NB_MODES_VIDEO            60    // Nombre de modes vidéo
 | 
						|
#define NB_BOUTONS                38    // Nombre de boutons à gérer
 | 
						|
#define NB_TOUCHES                134   // Nombre de combinaisons de touches
 | 
						|
#define NB_TOUCHES_SPECIALES      72    // Nombre de touches spéciales
 | 
						|
#define NB_OPERATIONS             32    // Nombre d'opérations gérées par le moteur
 | 
						|
#define NB_FACTEURS_DE_ZOOM       12    // Nombre de facteurs de zoom
 | 
						|
#define LARGEUR_MENU              254   // Largeur du menu en taille réelle
 | 
						|
#define HAUTEUR_MENU              44    // Hauteur du menu en taille réelle
 | 
						|
#define NB_SPRITES_CURSEUR        8     // Nombre de sprites de curseur
 | 
						|
#define LARGEUR_SPRITE_CURSEUR    15    // Largeur d'un sprite de curseur en pixels
 | 
						|
#define HAUTEUR_SPRITE_CURSEUR    15    // Hauteur d'un sprite de curseur en pixels
 | 
						|
#define NB_SPRITES_EFFETS         9     // Nombre de sprites d'effets
 | 
						|
#define NB_SPRITES_MENU           9     // Nombre de sprites de menu
 | 
						|
#define LARGEUR_SPRITE_MENU       14    // Largeur d'un sprite de menu en pixels
 | 
						|
#define HAUTEUR_SPRITE_MENU       14    // Hauteur d'un sprite de menu en pixels
 | 
						|
#define LARGEUR_PINCEAU           16    // Largeur d'un sprite de pinceau prédéfini
 | 
						|
#define HAUTEUR_PINCEAU           16    // Hauteur d'un sprite de pinceau prédéfini
 | 
						|
#define TAILLE_MAXI_PINCEAU       127   // Taille maxi des pinceaux
 | 
						|
#define NB_SPRITES_DRIVES         5     // Nombre de sprites de drives
 | 
						|
#define LARGEUR_SPRITE_DRIVE      7     // Largeur d'un sprite de drive en pixels
 | 
						|
#define HAUTEUR_SPRITE_DRIVE      7     // Hauteur d'un sprite de drive en pixels
 | 
						|
#define NB_SPRITES_PINCEAU        48    // Nombre de sprites de pinceau
 | 
						|
#define NB_TRAMES_PREDEFINIES     12    // Nombre de trames prédéfinies
 | 
						|
#define TAILLE_PILE_OPERATIONS    16    // Nombre maximum d'éléments utilisés par les opérations
 | 
						|
#define TAILLE_MAXI_PATH          37    // Taille maximum affichable du répertoire courant dans les fenêtres du fileselect
 | 
						|
#define TAILLE_COMMENTAIRE        32    // Taille maxi des commentaires pour le PKM
 | 
						|
#define TAILLE_NOM_CONSTRUCTEUR   24    // Taille maxi du nom de constructeur VESA dans la fenêtre de stats.
 | 
						|
#define NB_PAGES_UNDO_MAX         99    // Nombre maximal de pages d'undo
 | 
						|
#define FACTEUR_DE_ZOOM_PAR_DEFAUT 4    // Facteur de zoom initial
 | 
						|
#define NB_SECTIONS_AIDE          3     // Nombre de sections dans l'aide
 | 
						|
#define TAILLE_CHEMIN_FICHIER     260   // Le nombre de caractères maxi pour un nom de fichier avec chemin complet
 | 
						|
 | 
						|
// Caractères présents dans les deux fontes
 | 
						|
#define CARACTERE_TRIANGLE_DROIT  16
 | 
						|
#define CARACTERE_TRIANGLE_GAUCHE 17
 | 
						|
 | 
						|
// On impose à l'allocation dynamique des pages de backups de conserver un
 | 
						|
// minimum de 256 Ko pour que le reste du programme puisse continuer à
 | 
						|
// fonctionner.
 | 
						|
#define QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER (256*1024)
 | 
						|
 | 
						|
#define A_GAUCHE                  1     // Indique une direction (ou click) à gauche
 | 
						|
#define A_DROITE                  2     // Indique une direction (ou click) à droite
 | 
						|
 | 
						|
#define LARGEUR_BARRE_SPLIT       6     // [ Û±±° ]
 | 
						|
#define PROPORTION_SPLIT          0.3   // proportion de la zone non-zoomée en largeur par rapport à l'écran
 | 
						|
#define NB_PIXELS_ZOOMES_MIN      4     // Nombre minimal de pixels zoomés en largeur (Note: En dessous de 4, on ne peut plus scroller!)
 | 
						|
 | 
						|
  // Les différents formats de fichiers:
 | 
						|
 | 
						|
#define NB_FORMATS_CONNUS         12    // Nombre de formats connus (devrait être la valeur maximale de NB_FORMATS_LOAD et NB_FORMATS_SAVE, mais plus généralement: Card({NB_FORMATS_LOAD} UNION {NB_FORMATS_SAVE}))
 | 
						|
#define NB_FORMATS_LOAD           12    // Nombre de formats que l'on sait charger
 | 
						|
#define NB_FORMATS_SAVE           12    // Nombre de formats que l'on sait sauver
 | 
						|
 | 
						|
enum FORMATS_RECONNUS
 | 
						|
{
 | 
						|
  FORMAT_PKM=1,      // |
 | 
						|
  FORMAT_LBM,        // |
 | 
						|
  FORMAT_GIF,        // |    Il faudra penser à réordonner
 | 
						|
  FORMAT_BMP,        // |  les données sur les formats dans
 | 
						|
  FORMAT_PCX,        // |  GLOBAL.H si on modifie ces cons-
 | 
						|
  FORMAT_IMG,        // |_ tantes.
 | 
						|
  FORMAT_SCx,        // |
 | 
						|
  FORMAT_PI1,        // |    Elles représentent l'indice où
 | 
						|
  FORMAT_PC1,        // |  l'on doit aller piocher ces
 | 
						|
  FORMAT_CEL,        // |  données.
 | 
						|
  FORMAT_KCF,        // |
 | 
						|
  FORMAT_PAL         // |
 | 
						|
};
 | 
						|
 | 
						|
#define FORMAT_PAR_DEFAUT    FORMAT_PKM // Format par défaut (ah bon? oh!)
 | 
						|
 | 
						|
  // Les différentes erreurs:
 | 
						|
 | 
						|
enum CODES_D_ERREURS
 | 
						|
{
 | 
						|
  ERREUR_DAT_ABSENT=1,          // Le fichier GFX2.DAT est absent
 | 
						|
  ERREUR_DAT_CORROMPU,          // Mauvais fichier GFX2.DAT
 | 
						|
  ERREUR_CFG_ABSENT,            // Le fichier GFX2.CFG est absent
 | 
						|
  ERREUR_CFG_CORROMPU,          // Mauvais fichier GFX2.CFG
 | 
						|
  ERREUR_CFG_ANCIEN,            // Ancienne version du fichier GFX2.CFG
 | 
						|
  ERREUR_MEMOIRE,               // Plus de mémoire
 | 
						|
  ERREUR_LIGNE_COMMANDE,        // Erreur sur la ligne de commande
 | 
						|
  ERREUR_DRIVER_SOURIS,         // Pas de driver souris installé
 | 
						|
  ERREUR_MODE_VESA_INVALIDE,    // Mode VESA demandé sur la ligne de commande invalide
 | 
						|
  ERREUR_MODE_INTERDIT,         // Mode demandé sur la ligne de commande interdit (coché en noir)
 | 
						|
  ERREUR_NUMERO_MODE,           // Erreur de choix de mode sur la ligne de commande
 | 
						|
  ERREUR_SAUVEGARDE_CFG,        // Erreur en écriture pour GFX2.CFG
 | 
						|
  ERREUR_REPERTOIRE_DISPARU,    // Le répertoire de lancement n'existe plus
 | 
						|
  ERREUR_INI_CORROMPU,          // Le fichier GFX2.INI est corrompu
 | 
						|
  ERREUR_SAUVEGARDE_INI,        // Le fichier GFX2.INI n'est pas inscriptible
 | 
						|
  ERREUR_SORRY_SORRY_SORRY      // On le refera plus, promis
 | 
						|
};
 | 
						|
 | 
						|
  // Les différents types de modes vidéos
 | 
						|
 | 
						|
enum TYPES_DE_MODES_VIDEO
 | 
						|
{
 | 
						|
    MODE_SDL
 | 
						|
  /*MODE_MCGA,
 | 
						|
  MODE_X,
 | 
						|
  MODE_VESA,       // Attention! Si on change la numérotation, il faut
 | 
						|
  MODE_XVESA       // que les 2 plus grandes valeurs soient ces 2 modes!*/
 | 
						|
};
 | 
						|
 | 
						|
  // Les différents modes vidéos (avec leur nø d'ordre)
 | 
						|
 | 
						|
enum MODES_VIDEO
 | 
						|
{
 | 
						|
  MODE_320_200, // !!! MODE 0 !!!
 | 
						|
  MODE_320_224,
 | 
						|
  MODE_320_240,
 | 
						|
  MODE_320_256,
 | 
						|
  MODE_320_270,
 | 
						|
  MODE_320_282,
 | 
						|
  MODE_320_300,
 | 
						|
  MODE_320_360,
 | 
						|
  MODE_320_400,
 | 
						|
  MODE_320_448,
 | 
						|
  MODE_320_480,
 | 
						|
  MODE_320_512,
 | 
						|
  MODE_320_540,
 | 
						|
  MODE_320_564,
 | 
						|
  MODE_320_600,
 | 
						|
  MODE_360_200, // 15
 | 
						|
  MODE_360_224,
 | 
						|
  MODE_360_240,
 | 
						|
  MODE_360_256,
 | 
						|
  MODE_360_270,
 | 
						|
  MODE_360_282,
 | 
						|
  MODE_360_300,
 | 
						|
  MODE_360_360,
 | 
						|
  MODE_360_400,
 | 
						|
  MODE_360_448,
 | 
						|
  MODE_360_480,
 | 
						|
  MODE_360_512,
 | 
						|
  MODE_360_540,
 | 
						|
  MODE_360_564,
 | 
						|
  MODE_360_600,
 | 
						|
  MODE_400_200, // 30
 | 
						|
  MODE_400_224,
 | 
						|
  MODE_400_240,
 | 
						|
  MODE_400_256,
 | 
						|
  MODE_400_270,
 | 
						|
  MODE_400_282,
 | 
						|
  MODE_400_300,
 | 
						|
  MODE_400_360,
 | 
						|
  MODE_400_400,
 | 
						|
  MODE_400_448,
 | 
						|
  MODE_400_480,
 | 
						|
  MODE_400_512,
 | 
						|
  MODE_400_540,
 | 
						|
  MODE_400_564,
 | 
						|
  MODE_400_600,
 | 
						|
  MODE_640_224, // 45
 | 
						|
  MODE_640_240,
 | 
						|
  MODE_640_256,
 | 
						|
  MODE_640_270,
 | 
						|
  MODE_640_300,
 | 
						|
  MODE_640_350,
 | 
						|
  MODE_640_400,
 | 
						|
  MODE_640_448,
 | 
						|
  MODE_640_480,
 | 
						|
  MODE_640_512,
 | 
						|
  MODE_640_540,
 | 
						|
  MODE_640_564,
 | 
						|
  MODE_640_600,
 | 
						|
  MODE_800_600,
 | 
						|
  MODE_1024_768 // 59
 | 
						|
};
 | 
						|
 | 
						|
  // Les différentes catégories de bouton:
 | 
						|
 | 
						|
enum FAMILLES_DE_BOUTONS
 | 
						|
{
 | 
						|
  FAMILLE_OUTIL=1,          // Outils de dessin
 | 
						|
  FAMILLE_INTERRUPTION,     // Opération éphémère
 | 
						|
  FAMILLE_INSTANTANE,       // Pif paf
 | 
						|
  FAMILLE_TOOLBAR,          // Cache/Montre la barre d'outils
 | 
						|
  FAMILLE_EFFETS            // Effets
 | 
						|
};
 | 
						|
 | 
						|
  // Les différentes formes de bouton:
 | 
						|
 | 
						|
enum FORMES_DE_BOUTONS
 | 
						|
{
 | 
						|
  FORME_BOUTON_SANS_CADRE,            // Ex: la palette
 | 
						|
  FORME_BOUTON_RECTANGLE,             // Ex: la plupart
 | 
						|
  FORME_BOUTON_TRIANGLE_HAUT_GAUCHE,  // Ex: Rectangles vides
 | 
						|
  FORME_BOUTON_TRIANGLE_BAS_DROITE    // Ex: Rectangles pleins
 | 
						|
};
 | 
						|
 | 
						|
  // Les différentes formes de curseur:
 | 
						|
 | 
						|
enum FORMES_DE_CURSEUR
 | 
						|
{
 | 
						|
  FORME_CURSEUR_FLECHE,
 | 
						|
  FORME_CURSEUR_CIBLE,              // Utilise le pinceau
 | 
						|
  FORME_CURSEUR_CIBLE_PIPETTE,      // Utilise le pinceau
 | 
						|
  FORME_CURSEUR_SABLIER,
 | 
						|
  FORME_CURSEUR_MULTIDIRECTIONNEL,
 | 
						|
  FORME_CURSEUR_HORIZONTAL,
 | 
						|
  FORME_CURSEUR_CIBLE_FINE,         // Utilise le pinceau
 | 
						|
  FORME_CURSEUR_CIBLE_PIPETTE_FINE, // Utilise le pinceau
 | 
						|
  FORME_CURSEUR_CIBLE_XOR,
 | 
						|
  FORME_CURSEUR_RECTANGLE_XOR,
 | 
						|
  FORME_CURSEUR_ROTATE_XOR
 | 
						|
};
 | 
						|
 | 
						|
  // Les différentes formes de pinceaux (les types de pinceaux doivent être au début)
 | 
						|
 | 
						|
enum FORMES_DE_PINCEAUX
 | 
						|
{
 | 
						|
  FORME_PINCEAU_ROND,
 | 
						|
  FORME_PINCEAU_CARRE,
 | 
						|
  FORME_PINCEAU_BARRE_HORIZONTALE,
 | 
						|
  FORME_PINCEAU_BARRE_VERTICALE,
 | 
						|
  FORME_PINCEAU_SLASH,
 | 
						|
  FORME_PINCEAU_ANTISLASH,
 | 
						|
  FORME_PINCEAU_ALEATOIRE,
 | 
						|
  FORME_PINCEAU_X,
 | 
						|
  FORME_PINCEAU_PLUS,
 | 
						|
  FORME_PINCEAU_LOSANGE,
 | 
						|
  FORME_PINCEAU_ROND_TRAME,
 | 
						|
  FORME_PINCEAU_CARRE_TRAME,
 | 
						|
  FORME_PINCEAU_DIVERS,// Ce doit être le dernier des types de pinceaux, comme ça il indique le nombre de types de pinceaux (-1)
 | 
						|
  FORME_PINCEAU_POINT, // Utilisé pour réduire de pinceau à 1 point dans certaines opérations
 | 
						|
  FORME_PINCEAU_BROSSE_COULEUR,
 | 
						|
  FORME_PINCEAU_BROSSE_MONOCHROME
 | 
						|
};
 | 
						|
 | 
						|
  // Les différents états de bouton:
 | 
						|
 | 
						|
#define BOUTON_RELACHE 0
 | 
						|
#define BOUTON_ENFONCE 1
 | 
						|
 | 
						|
  // Les différents modes de Shade
 | 
						|
 | 
						|
enum MODES_DE_SHADE
 | 
						|
{
 | 
						|
  MODE_SHADE_NORMAL,
 | 
						|
  MODE_SHADE_BOUCLE,
 | 
						|
  MODE_SHADE_NOSAT
 | 
						|
};
 | 
						|
 | 
						|
  // Les différents chunks du fichier .CFG
 | 
						|
 | 
						|
enum CHUNKS_CFG
 | 
						|
{
 | 
						|
  CHUNK_TOUCHES            = 0,
 | 
						|
  CHUNK_MODES_VIDEO        = 1,
 | 
						|
  CHUNK_SHADE              = 2,
 | 
						|
  CHUNK_MASQUE             = 3,
 | 
						|
  CHUNK_STENCIL            = 4,
 | 
						|
  CHUNK_DEGRADES           = 5,
 | 
						|
  CHUNK_SMOOTH             = 6,
 | 
						|
  CHUNK_EXCLUDE_COLORS     = 7,
 | 
						|
  CHUNK_QUICK_SHADE        = 8,
 | 
						|
  CHUNK_MAX 
 | 
						|
};
 | 
						|
 | 
						|
  // Les différents types de lecteurs:
 | 
						|
 | 
						|
enum TYPES_DE_LECTEURS
 | 
						|
{
 | 
						|
  LECTEUR_FLOPPY_3_5,   // 0: Diskette 3"«
 | 
						|
  LECTEUR_FLOPPY_5_25,  // 1: Diskette 5"¬
 | 
						|
  LECTEUR_HDD,          // 2: HDD
 | 
						|
  LECTEUR_CDROM,        // 3: CD-ROM
 | 
						|
  LECTEUR_NETWORK       // 4: Logique (réseau?)
 | 
						|
};
 | 
						|
 | 
						|
  // Les différents boutons:
 | 
						|
 | 
						|
enum NUMEROS_DE_BOUTONS
 | 
						|
{
 | 
						|
  BOUTON_PINCEAUX,
 | 
						|
  BOUTON_AJUSTER,
 | 
						|
  BOUTON_DESSIN,
 | 
						|
  BOUTON_COURBES,
 | 
						|
  BOUTON_LIGNES,
 | 
						|
  BOUTON_SPRAY,
 | 
						|
  BOUTON_FLOODFILL,
 | 
						|
  BOUTON_POLYGONES,
 | 
						|
  BOUTON_POLYFILL,
 | 
						|
  BOUTON_RECTANGLES,
 | 
						|
  BOUTON_FILLRECT,
 | 
						|
  BOUTON_CERCLES,
 | 
						|
  BOUTON_FILLCERC,
 | 
						|
  BOUTON_GRADRECT,
 | 
						|
  BOUTON_GRADMENU,
 | 
						|
  BOUTON_SPHERES,
 | 
						|
  BOUTON_BROSSE,
 | 
						|
  BOUTON_POLYBROSSE,
 | 
						|
  BOUTON_EFFETS_BROSSE,
 | 
						|
  BOUTON_EFFETS,
 | 
						|
  BOUTON_TEXTE,
 | 
						|
  BOUTON_LOUPE,
 | 
						|
  BOUTON_PIPETTE,
 | 
						|
  BOUTON_RESOL,
 | 
						|
  BOUTON_PAGE,
 | 
						|
  BOUTON_SAUVER,
 | 
						|
  BOUTON_CHARGER,
 | 
						|
  BOUTON_PARAMETRES,
 | 
						|
  BOUTON_CLEAR,
 | 
						|
  BOUTON_AIDE,
 | 
						|
  BOUTON_UNDO,
 | 
						|
  BOUTON_KILL,
 | 
						|
  BOUTON_QUIT,
 | 
						|
  BOUTON_PALETTE,
 | 
						|
  BOUTON_PAL_LEFT,
 | 
						|
  BOUTON_PAL_RIGHT,
 | 
						|
  BOUTON_CHOIX_COL,
 | 
						|
  BOUTON_CACHER
 | 
						|
};
 | 
						|
 | 
						|
  // Les actions des touches spéciales
 | 
						|
 | 
						|
enum ACTIONS_SPECIALES
 | 
						|
{
 | 
						|
  SPECIAL_MOUSE_UP,                // |
 | 
						|
  SPECIAL_MOUSE_DOWN,              // |
 | 
						|
  SPECIAL_MOUSE_LEFT,              // |
 | 
						|
  SPECIAL_MOUSE_RIGHT,             // |
 | 
						|
  SPECIAL_CLICK_LEFT,              // |  Il faut garder
 | 
						|
  SPECIAL_CLICK_RIGHT,             // |  ces constantes
 | 
						|
  SPECIAL_NEXT_FORECOLOR,          // |  au début de la
 | 
						|
  SPECIAL_PREVIOUS_FORECOLOR,      // |_ liste car elles
 | 
						|
  SPECIAL_NEXT_BACKCOLOR,          // |  sont réutilisées
 | 
						|
  SPECIAL_PREVIOUS_BACKCOLOR,      // |  avec leurs valeurs
 | 
						|
  SPECIAL_RETRECIR_PINCEAU,        // |  brutes en ASM dans
 | 
						|
  SPECIAL_GROSSIR_PINCEAU,         // |  Get_input !!!
 | 
						|
  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_PINCEAU_POINT,
 | 
						|
  SPECIAL_DESSIN_CONTINU,
 | 
						|
  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, // |
 | 
						|
  SPECIAL_QUICK_SHADE_MENU, // |
 | 
						|
  SPECIAL_STENCIL_MODE,     // |
 | 
						|
  SPECIAL_STENCIL_MENU,     // |
 | 
						|
  SPECIAL_MASK_MODE,        // |  Il faut que le premier effet soit
 | 
						|
  SPECIAL_MASK_MENU,        // |  SPECIAL_SHADE_MODE, et que le
 | 
						|
  SPECIAL_GRID_MODE,        // |  dernier soit SPECIAL_TILING_MENU,
 | 
						|
  SPECIAL_GRID_MENU,        // |_ et que seuls des effets soient
 | 
						|
  SPECIAL_SIEVE_MODE,       // |  définis entre ces deux là car
 | 
						|
  SPECIAL_SIEVE_MENU,       // |  des tests sur cet intervalle sont
 | 
						|
  SPECIAL_COLORIZE_MODE,    // |  faits dans le moteur.
 | 
						|
  SPECIAL_COLORIZE_MENU,    // |
 | 
						|
  SPECIAL_SMOOTH_MODE,      // |
 | 
						|
  SPECIAL_SMOOTH_MENU,      // |
 | 
						|
  SPECIAL_SMEAR_MODE,       // |
 | 
						|
  SPECIAL_TILING_MODE,      // |
 | 
						|
  SPECIAL_TILING_MENU       // |
 | 
						|
};
 | 
						|
 | 
						|
  // Définition des opérations:
 | 
						|
 | 
						|
enum OPERATIONS
 | 
						|
{
 | 
						|
  OPERATION_DESSIN_CONTINU,     // Dessin à la main continu
 | 
						|
  OPERATION_DESSIN_DISCONTINU,  // Dessin à la main discontinu
 | 
						|
  OPERATION_DESSIN_POINT,       // Dessin à la main point par point
 | 
						|
  OPERATION_LIGNE,              // Lignes
 | 
						|
  OPERATION_K_LIGNE,            // Lignes reliées
 | 
						|
  OPERATION_LIGNES_CENTREES,    // Lignes concentriques
 | 
						|
  OPERATION_RECTANGLE_VIDE,     // Rectangle vide
 | 
						|
  OPERATION_RECTANGLE_PLEIN,    // Rectangle plein
 | 
						|
  OPERATION_CERCLE_VIDE,        // Cercle vide
 | 
						|
  OPERATION_CERCLE_PLEIN,       // Cercle plein
 | 
						|
  OPERATION_ELLIPSE_VIDE,       // Ellipse vide
 | 
						|
  OPERATION_ELLIPSE_PLEINE,     // Ellipse pleine
 | 
						|
  OPERATION_FILL,               // Fill
 | 
						|
  OPERATION_REMPLACER,          // Remplacer couleur
 | 
						|
  OPERATION_PRISE_BROSSE,       // Prise de brosse rectangulaire
 | 
						|
  OPERATION_POLYBROSSE,         // Prise d'une brosse multiforme
 | 
						|
  OPERATION_PIPETTE,            // Récupération d'une couleur
 | 
						|
  OPERATION_LOUPE,              // Positionnement de la fenêtre de loupe
 | 
						|
  OPERATION_COURBE_3_POINTS,    // Courbe à 3 points
 | 
						|
  OPERATION_COURBE_4_POINTS,    // Courbe à 4 points
 | 
						|
  OPERATION_SPRAY,              // Spray
 | 
						|
  OPERATION_POLYGONE,           // Polygone
 | 
						|
  OPERATION_POLYFORM,           // Polyforme
 | 
						|
  OPERATION_POLYFILL,           // Polyfill
 | 
						|
  OPERATION_FILLED_POLYFORM,    // Polyforme rempli
 | 
						|
  OPERATION_SCROLL,             // Scroll
 | 
						|
  OPERATION_CERCLE_DEGRADE,     // Cercles dégradés
 | 
						|
  OPERATION_ELLIPSE_DEGRADEE,   // Ellipses dégradées
 | 
						|
  OPERATION_TOURNER_BROSSE,     // Faire tourner brosse
 | 
						|
  OPERATION_ETIRER_BROSSE,      // Etirer brosse
 | 
						|
  OPERATION_DEFORMER_BROSSE,    // Deformer brosse
 | 
						|
 | 
						|
  OPERATION_AUCUNE
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#endif
 |