grafX2/struct.h
Adrien Destugues 306a004e36 First upload of the code.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@2 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2007-04-14 20:18:30 +00:00

214 lines
5.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _STRUCT_H_
#define _STRUCT_H_
#include "const.h"
// Dclaration des types de base /////////////////////////////////////////////
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned long dword;
typedef void (* fonction_action) (void);
typedef void (* fonction_afficheur) (word,word,byte);
typedef byte (* fonction_lecteur) (word,word);
typedef void (* fonction_effaceur) (byte);
typedef void (* fonction_display) (word,word,word);
typedef byte (* fonction_effet) (word,word,byte);
typedef void (* fonction_block) (word,word,word,word,byte);
typedef byte (* fonction_test_sign) (void);
typedef void (* fonction_Ligne_XOR) (word,word,word);
typedef void (* fonction_display_brush_Color) (word,word,word,word,word,word,byte,word);
typedef void (* fonction_display_brush_Mono) (word,word,word,word,word,word,byte,byte,word);
typedef void (* fonction_degrade) (long,short,short);
typedef void (* fonction_remap) (word,word,word,word,byte *);
typedef void (* fonction_procsline) (word,word,word,byte *);
typedef void (* fonction_display_zoom) (word,word,word,byte *);
typedef void (* fonction_display_brush_Color_zoom) (word,word,word,word,word,word,byte,word,byte *);
typedef void (* fonction_display_brush_Mono_zoom) (word,word,word,word,word,word,byte,byte,word,byte *);
struct Composantes
{
byte R;
byte V;
byte B;
};
typedef struct Composantes T_Palette[256];
struct Fenetre_Bouton_normal
{
short Numero;
word Pos_X;
word Pos_Y;
word Largeur;
word Hauteur;
byte Clickable;
word Raccourci;
struct Fenetre_Bouton_normal * Next;
};
struct Fenetre_Bouton_palette
{
short Numero;
word Pos_X;
word Pos_Y;
struct Fenetre_Bouton_palette * Next;
};
struct Fenetre_Bouton_scroller
{
short Numero;
word Pos_X;
word Pos_Y;
word Hauteur;
word Nb_elements;
word Nb_visibles;
word Position;
word Hauteur_curseur;
struct Fenetre_Bouton_scroller * Next;
};
struct Fenetre_Bouton_special
{
short Numero;
word Pos_X;
word Pos_Y;
word Largeur;
word Hauteur;
struct Fenetre_Bouton_special * Next;
};
struct T_Drive
{
char Lettre;
byte Type; // 0: Diskette 3"« / 1: Diskette 5"¬ / 2: HDD / 3: CD-ROM / 4: Logique
word Touche;
};
// Dclaration du type d'lment qu'on va mmoriser dans la liste:
struct Element_de_liste_de_fileselect
{
char Nom[13]; // Le nom du fichier ou du rpertoire
byte Type; // Type d'lment : 0 = Fichier, 1 = Rpertoire
// donnes de chaŒnage de la liste
struct Element_de_liste_de_fileselect * Suivant;
struct Element_de_liste_de_fileselect * Precedent;
};
// Dclaration d'une section d'aide:
struct Section_d_aide
{
word Nombre_de_lignes;
byte * Debut_de_la_liste; // PremiŠre ligne de la liste
};
// Dclaration d'une info sur un dgrad
struct T_Degrade_Tableau
{
byte Debut; // PremiŠre couleur du dgrad
byte Fin; // DerniŠre couleur du dgrad
int Inverse; // "Le dgrad va de Fin … Debut"
long Melange; // Valeur de mlange du dgrad (0-255)
int Technique; // Technique … utiliser (0-2)
};
// Dclaration d'une info de shade
struct T_Shade
{
word Liste[512]; // Liste de couleurs
byte Pas; // Pas d'incrmentation/dcrmentation
byte Mode; // Mode d'utilisation (Normal/Boucle/Non-satur)
};
// Structure des donnes dans le fichier de config.
struct Config_Mode_video
{
byte Etat;
word Largeur;
word Hauteur;
};
struct Config_Header
{
char Signature[3];
byte Version1;
byte Version2;
byte Beta1;
byte Beta2;
};
struct Config_Chunk
{
byte Numero;
word Taille;
};
struct Config_Infos_touche
{
word Numero;
word Touche;
word Touche2;
};
// Structures utilises pour les descriptions de pages et de liste de pages.
// Lorsqu'on gŠrera les animations, il faudra aussi des listes de listes de
// pages.
// Ces structures sont manipules … travers des fonctions de gestion du
// backup dans "graph.c".
typedef struct
{
byte * Image; // Bitmap de l'image
int Largeur; // Largeur du bitmap
int Hauteur; // Hauteur du bitmap
T_Palette Palette; // Palette de l'image
char Commentaire[TAILLE_COMMENTAIRE+1]; // Commentaire de l'image
char Repertoire_fichier[256]; // |_ Nom complet =
char Nom_fichier[13]; // | Repertoire_fichier+"\"+Nom_fichier
byte Format_fichier; // Format auquel il faut lire et crire le fichier
/*
short Decalage_X; // Dcalage en X de l'cran par rapport au dbut de l'image
short Decalage_Y; // Dcalage en Y de l'cran par rapport au dbut de l'image
short Ancien_Decalage_X; // Le mˆme avant le passage en mode loupe
short Ancien_Decalage_Y; // Le mˆme avant le passage en mode loupe
short Split; // Position en X du bord gauche du split de la loupe
short X_Zoom; // (Menu_Facteur_X) + Position en X du bord droit du split de la loupe
float Proportion_split; // Proportion de la zone non-zoome par rapport … l'cran
byte Loupe_Mode; // On est en mode loupe
word Loupe_Facteur; // Facteur de zoom
word Loupe_Hauteur; // Largeur de la fenˆtre de zoom
word Loupe_Largeur; // Hauteur de la fenˆtre de zoom
short Loupe_Decalage_X; // Decalage horizontal de la fenˆtre de zoom
short Loupe_Decalage_Y; // Decalage vertical de la fenˆtre de zoom
*/
} S_Page;
typedef struct
{
int Taille_liste; // Nb de S_Page dans le vecteur "Pages"
int Nb_pages_allouees; // Nb de S_Page dsignant des pages alloues
S_Page * Pages; // Liste de pages (Taille_liste lments)
} S_Liste_de_pages;
#endif