roo_e/thirdparty/grx249/test/gfaz.h
2022-05-16 17:59:47 -05:00

137 lines
3.9 KiB
C

/**
** gfaz.h ---- gfaz headers
**
** Copyright (C) 2000,2001 Mariano Alvarez Fernandez
** [e-mail: malfer@teleline.es]
**
** This is a test/demo file of the GRX graphics library.
** You can use GRX test/demo files as you want.
**
** The GRX graphics library is free software; you can redistribute it
** and/or modify it under some conditions; see the "copying.grx" file
** for details.
**
** This library 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.
**
**/
extern GrColor *egacolors;
#define BLACK egacolors[0]
#define BLUE egacolors[1]
#define GREEN egacolors[2]
#define CYAN egacolors[3]
#define RED egacolors[4]
#define MAGENTA egacolors[5]
#define BROWN egacolors[6]
#define LIGHTGRAY egacolors[7]
#define DARKGRAY egacolors[8]
#define LIGHTBLUE egacolors[9]
#define LIGHTGREEN egacolors[10]
#define LIGHTCYAN egacolors[11]
#define LIGHTRED egacolors[12]
#define LIGHTMAGENTA egacolors[13]
#define YELLOW egacolors[14]
#define WHITE egacolors[15]
#define IND_BLACK 0
#define IND_BLUE 1
#define IND_GREEN 2
#define IND_CYAN 3
#define IND_RED 4
#define IND_MAGENTA 5
#define IND_BROWN 6
#define IND_LIGHTGRAY 7
#define IND_DARKGRAY 8
#define IND_LIGHTBLUE 9
#define IND_LIGHTGREEN 10
#define IND_LIGHTCYAN 11
#define IND_LIGHTRED 12
#define IND_LIGHTMAGENTA 13
#define IND_YELLOW 14
#define IND_WHITE 15
#define EV_NULL 0
#define EV_KEY 1
#define EV_MOUSE 2
#define EV_COMMAND 3
#define EV_SELECT 4
#define EV_END 5
#define MOUSE_LB_PRESSED 1
#define MOUSE_RB_PRESSED 2
#define MOUSE_LB_RELEASED 3
#define MOUSE_RB_RELEASED 4
typedef struct{
int type;
long p1;
long p2;
long p3;
} Event;
int gfaz_ini( int width, int height, int bpp );
int gfaz_fin( void );
void event_read( Event *ev );
void event_wait( Event *ev );
void event_queue( Event *ev );
void par_event_queue( int type, long p1, long p2, long p3 );
void set_hook_input_event( void (*fn)( Event * ) );
void show_mouse( void );
void hide_mouse( void );
#define BSTATUS_PRESSED 1
#define BSTATUS_SELECTED 2
typedef struct{
int x, y; // left upper coordinates
int wide, high; // what do you mean
int tbcolor, tfcolor; // text background, foreground, ind colors
char *text; // the text
int status; // see BSTATUS defs
int bid; // button id
} Button;
void paint_button( int x, int y, Button *b );
typedef struct{
int x, y; // left upper coordinates
Button *b; // button array
int nb; // button number
int pb; // point actual button
int abp; // actual button pressed
} Button_Group;
void paint_button_group( Button_Group *bg );
int pev_button_group( Event *ev, Button_Group *bg );
typedef struct{
int x, y; // left upper coordinates
int wide, high; // what do you mean
int aid; // area id
int divx, divy; // x, y divisors
int inip1, inip2; // par1, par2 initial values
int incrp1, incrp2; // par1, par2 increments
int invert; // x,y -> par1,par2 or inverted if 1
} Area;
typedef struct{
int x, y; // left upper coordinates
Area *a; // area array
} Area_Group;
int pev_area_group( Event *ev, Area_Group *ag );
typedef struct{
int x, y; // left upper coordinates
int wide, high; // what do you mean
int lcolor, bcolor, color; // line, border, normal ind color
int border; //
} Board;
void paint_board( Board *b );