/**************/ /* nappula3.h */ /**************/ #define MIN_X 1 /* Näytön koko */ #define MIN_Y 1 #define MAX_X 80 #define MAX_Y 25 #define MIN_H_X 0 /* Hiiren koordinaatin rajat */ #define MAX_H_X 639 #define MIN_H_Y 0 #define MAX_H_Y 199 /****************************************************************************/ /* Yleiset tyypit: */ typedef struct { int x; int y; } koord_tyyppi; typedef struct { koord_tyyppi vasen_yla; /* Laatikon vasemman yläkulman koordinaatit */ koord_tyyppi koko; /* Laatikon sisäkoko. Jos (0,0) niin pienin mah.*/ int muutettu; /* Koordinaatit skaalattu sisäiseen muotoon. */ } laatikko_tyyppi; /* Jos <0, niin ei raameja */ typedef struct { /* Tyyppi näppäimelle: */ char valinta_kirjain; /* Kirjain, jota painamalla komento tot. */ char *teksti; /* Näppäimeen tulostettava teksti. */ laatikko_tyyppi nappain; /* Näppäimen sijainti ja koko */ int komento; /* Mikä komento näppäimellä tehdään. */ int lisa_viesti; /* Jos halutaan välittää jokin lisätieto */ } nappain_tyyppi; /* esim. numeronäppäimen arvo tms. */ typedef struct { /* Tyypit laskurinäytöille: */ int tunnus; /* Laskurin tunniste */ long int arvo; /* Laskurin nykyinen arvo */ char *format; /* Tulostuksen formaatti C-muodossa */ laatikko_tyyppi tila; /* Laskurin tulostusalueen paikka ja koko*/ } laskuri_tyyppi; typedef enum { PIIRRA = -5, SYS_EXIT = -4, EI_KOMENTOA = -1 } systemi_komennot; int lue_komento(nappain_tyyppi *, laskuri_tyyppi *,int *); void nayta_laskuri(laskuri_tyyppi *); void piirra_nappula(nappain_tyyppi *); void piirra_laskuri(laskuri_tyyppi *); void nollaa_laskurit(laskuri_tyyppi *); void lisaa_laskuria(laskuri_tyyppi *, int); void alusta_nappulat(nappain_tyyppi *); void tyhjenna_ruutu(void); int laskin_main(void);