5#ifndef __AALIB_INCLUDED__
6#define __AALIB_INCLUDED__
11#define AA_LIB_VERSION 1
12#define AA_LIB_MINNOR 2
13#define AA_LIB_VERSIONCODE 102000
25#define AA_BACKSPACE 304
28#define AA_RELEASE 65536
31#define AA_NORMAL_MASK 1
34#define AA_BOLDFONT_MASK 8
35#define AA_REVERSE_MASK 16
38#define AA_EXTENDED (AA_ALL|AA_EIGHT)
47#define AA_ERRORDISTRIB 1
49#define AA_DITHERTYPES 3
54#define AA_MOUSEMOVEMASK 1
55#define AA_MOUSEPRESSMASK 2
56#define AA_PRESSEDMOVEMASK 4
57#define AA_MOUSEALLMASK 7
58#define AA_HIDECURSOR 8
60#define AA_SENDRELEASE 1
61#define AA_KBDALLMASK 1
64#define AA_NORMAL_SPACES 8
70 int minwidth, minheight;
71 int maxwidth, maxheight;
72 int recwidth, recheight;
73 int mmwidth, mmheight;
75 double dimmul, boldmul;
84 int imgwidth, imgheight;
85 unsigned char *imagebuffer;
86 unsigned char *textbuffer;
87 unsigned char *attrbuffer;
88 unsigned short *table;
89 unsigned short *filltable;
90 struct parameters *parameters;
91 int cursorx, cursory, cursorstate;
92 int mousex, mousey, buttons,mousemode;
96 void *mousedriverdata;
100 char *shortname, *name;
103 void (*getsize) (
struct aa_context *,
int *,
int *);
106 void (*gotoxy) (
struct aa_context *, int, int);
108 void (*cursormode) (
struct aa_context *, int);
112 char *shortname, *name;
120 char *shortname, *name;
124 void (*getmouse) (
struct aa_context *,
int *,
int *,
int *);
129 int bright, contrast;
147 unsigned int p[AA_NPARAMS];
159 int pagewidth, pageheight;
169 char *prints[AA_NATTRS];
170 char *begin[AA_NATTRS];
171 char *ends[AA_NATTRS];
195typedef int aa_palette[256];
199extern struct aa_format aa_htmlk_format, *aa_formats[];
200extern struct aa_format aa_nhtml_format, aa_html_format, aa_html_alt_format,
201 aa_ansi_format, aa_text_format, aa_more_format, aa_hp_format,
202 aa_hp2_format, aa_irc_format, aa_zephyr_format;
203extern struct aa_font *aa_fonts[];
205extern struct aa_font aa_font8, aa_font14, aa_font16, aa_font9, aa_fontline, aa_fontgl,
206 aa_fontX13, aa_fontX16, aa_fontX13B, aa_fontcourier, aa_fontvyhen;
207extern char *aa_dithernames[];
210extern struct aa_driver *aa_drivers[], curses_d, dos_d, linux_d, slang_d,
211 stdout_d, stderr_d, X11_d, os2vio_d;
212extern struct aa_kbddriver *aa_kbddrivers[], kbd_curses_d, kbd_slang_d,
213 kbd_stdin_d, kbd_dos_d, kbd_X11_d, kbd_os2_d;
214extern struct aa_mousedriver *aa_mousedrivers[], mouse_curses_d, mouse_gpm_d,
215 mouse_X11_d, mouse_dos_d, mouse_os2_d;
216extern aa_linkedlist *aa_kbdrecommended, *aa_mouserecommended, *aa_displayrecommended;
219#define aa_callnonull(c,x) ((x)!=NULL?((x)(c)):0)
220#define aa_scrwidth(a) ((a)->params.width)
221#define aa_scrheight(a) ((a)->params.height)
222#define aa_mmwidth(a) ((a)->params.mmwidth)
223#define aa_mmheight(a) ((a)->params.mmheight)
224#define aa_imgwidth(a) ((a)->imgwidth)
225#define aa_imgheight(a) ((a)->imgheight)
226#define aa_putpixel(c,x,y,color) ((c)->imagebuffer[(x)+(y)*(aa_imgwidth(c))]=(color))
227#define aa_image(c) ((c)->imagebuffer)
228#define aa_text(c) ((c)->textbuffer)
229#define aa_attrs(c) ((c)->attrbuffer)
230#define aa_setpalette(palette,index,r,g,b) ((palette)[index]=(((r)*30+(g)*59+(b)*11)>>8))
231#define aa_recommendhikbd(t) aa_recommendhi(&aa_kbdrecommended,t);
232#define aa_recommendhimouse(t) aa_recommendhi(&aa_mouserecommended,t);
233#define aa_recommendhidisplay(t) aa_recommendhi(&aa_displayrecommended,t);
234#define aa_recommendlowkbd(t) aa_recommendlow(&aa_kbdrecommended,t);
235#define aa_recommendlowmouse(t) aa_recommendlow(&aa_mouserecommended,t);
236#define aa_recommendlowdisplay(t) aa_recommendlow(&aa_displayrecommended,t);
240int aa_autoinitkbd(
struct aa_context *context,
int mode);
241int aa_autoinitmouse(
struct aa_context *c,
int mode);
254void aa_uninitmouse(
struct aa_context *context);
257void aa_fastrender(
aa_context * c,
int x1,
int y1,
int x2,
int y2);
264void aa_puts(
aa_context * c,
int x,
int y,
int attr,
char *s);
265int aa_printf(
aa_context *c,
int x,
int y,
int attr,
char *fmt, ...);
269void aa_getmouse(
aa_context * c,
int *x,
int *y,
int *b);
274int aa_registerfont(
struct aa_font *f);
275void aa_setsupported(
aa_context * c,
int supported);
289struct aa_edit *aa_createedit(
aa_context * c,
int x,
int y,
int size,
char *s,
int maxsize);
290void aa_editkey(
struct aa_edit *e,
int c);