Annotation of sbbs/conio/ciolib.h, revision 1.1

1.1     ! root        1: /* $Id: ciolib.h,v 1.20 2004/10/17 02:07:04 deuce Exp $ */
        !             2: 
        !             3: /****************************************************************************
        !             4:  * @format.tab-size 4          (Plain Text/Source Code File Header)                    *
        !             5:  * @format.use-tabs true       (see http://www.synchro.net/ptsc_hdr.html)              *
        !             6:  *                                                                                                                                                     *
        !             7:  * Copyright 2004 Rob Swindell - http://www.synchro.net/copyright.html         *
        !             8:  *                                                                                                                                                     *
        !             9:  * This library is free software; you can redistribute it and/or                       *
        !            10:  * modify it under the terms of the GNU Lesser General Public License          *
        !            11:  * as published by the Free Software Foundation; either version 2                      *
        !            12:  * of the License, or (at your option) any later version.                                      *
        !            13:  * See the GNU Lesser General Public License for more details: lgpl.txt or     *
        !            14:  * http://www.fsf.org/copyleft/lesser.html                                                                     *
        !            15:  *                                                                                                                                                     *
        !            16:  * Anonymous FTP access to the most recent released source is available at     *
        !            17:  * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net     *
        !            18:  *                                                                                                                                                     *
        !            19:  * Anonymous CVS access to the development source and modification history     *
        !            20:  * is available at cvs.synchro.net:/cvsroot/sbbs, example:                                     *
        !            21:  * cvs -d :pserver:[email protected]:/cvsroot/sbbs login                       *
        !            22:  *     (just hit return, no password is necessary)                                                     *
        !            23:  * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src                *
        !            24:  *                                                                                                                                                     *
        !            25:  * For Synchronet coding style and modification guidelines, see                                *
        !            26:  * http://www.synchro.net/source.html                                                                          *
        !            27:  *                                                                                                                                                     *
        !            28:  * You are encouraged to submit any modifications (preferably in Unix diff     *
        !            29:  * format) via e-mail to [email protected]                                                                      *
        !            30:  *                                                                                                                                                     *
        !            31:  * Note: If this box doesn't appear square, then you need to fix your tabs.    *
        !            32:  ****************************************************************************/
        !            33: 
        !            34: #ifndef _CIOLIB_H_
        !            35: #define _CIOLIB_H_
        !            36: 
        !            37: #include "mouse.h"
        !            38: 
        !            39: enum {
        !            40:         CIOLIB_MODE_AUTO
        !            41:        ,CIOLIB_MODE_CURSES
        !            42:        ,CIOLIB_MODE_CURSES_IBM
        !            43:        ,CIOLIB_MODE_ANSI
        !            44:        ,CIOLIB_MODE_X
        !            45:        ,CIOLIB_MODE_CONIO
        !            46: };
        !            47: 
        !            48: #if defined(_WIN32)    /* presumably, Win32 */
        !            49: 
        !            50:        #include <io.h>                 /* isatty */
        !            51: 
        !            52: #endif
        !            53: 
        !            54: enum {
        !            55:         BLACK
        !            56:        ,BLUE
        !            57:        ,GREEN
        !            58:        ,CYAN
        !            59:        ,RED
        !            60:        ,MAGENTA
        !            61:        ,BROWN  
        !            62:        ,LIGHTGRAY      
        !            63:        ,DARKGRAY
        !            64:        ,LIGHTBLUE      
        !            65:        ,LIGHTGREEN     
        !            66:        ,LIGHTCYAN
        !            67:        ,LIGHTRED
        !            68:        ,LIGHTMAGENTA
        !            69:        ,YELLOW
        !            70:        ,WHITE
        !            71: };
        !            72: #define BLINK 128
        !            73: 
        !            74: enum text_modes
        !            75: {
        !            76:     /* DOS-compatible modes */
        !            77: 
        !            78:     LASTMODE = -1,
        !            79:     BW40     = 0,
        !            80:     C40,
        !            81:     BW80,
        !            82:     C80,
        !            83:     MONO     = 7,
        !            84: 
        !            85:     /* New Color modes */
        !            86: 
        !            87:     C40X14   = 8,
        !            88:     C40X21,
        !            89:     C40X28,
        !            90:     C40X43,
        !            91:     C40X50,
        !            92:     C40X60,
        !            93: 
        !            94:     C80X14,
        !            95:     C80X21,
        !            96:     C80X28,
        !            97:     C80X43,
        !            98:     C80X50,
        !            99:     C80X60,
        !           100: 
        !           101:     /* New Black & White modes */
        !           102: 
        !           103:     BW40X14,
        !           104:     BW40X21,
        !           105:     BW40X28,
        !           106:     BW40X43,
        !           107:     BW40X50,
        !           108:     BW40X60,
        !           109: 
        !           110:     BW80X14,
        !           111:     BW80X21,
        !           112:     BW80X28,
        !           113:     BW80X43,
        !           114:     BW80X50,
        !           115:     BW80X60,
        !           116: 
        !           117:     /* New Monochrome modes */
        !           118: 
        !           119:     MONO14,             /* Invalid VGA mode */
        !           120:     MONO21,
        !           121:     MONO28,
        !           122:     MONO43,
        !           123:     MONO50,
        !           124:     MONO60,
        !           125: 
        !           126:     C4350    = C80X50, /* this is actually "64" in the "real" conio */
        !           127: 
        !           128:     _ORIGMODE = 65      /* original mode at program startup */
        !           129: };
        !           130: 
        !           131: #define COLOR_MODE     C80
        !           132: 
        !           133: enum
        !           134: {
        !           135:        _NOCURSOR,
        !           136:        _SOLIDCURSOR,
        !           137:        _NORMALCURSOR
        !           138: };
        !           139: 
        !           140: struct text_info {
        !           141:        unsigned char winleft;        /* left window coordinate */
        !           142:        unsigned char wintop;         /* top window coordinate */
        !           143:        unsigned char winright;       /* right window coordinate */
        !           144:        unsigned char winbottom;      /* bottom window coordinate */
        !           145:        unsigned char attribute;      /* text attribute */
        !           146:        unsigned char normattr;       /* normal attribute */
        !           147:        unsigned char currmode;       /* current video mode:
        !           148:                                         BW40, BW80, C40, C80, or C4350 */
        !           149:        unsigned char screenheight;   /* text screen's height */
        !           150:        unsigned char screenwidth;    /* text screen's width */
        !           151:        unsigned char curx;           /* x-coordinate in current window */
        !           152:        unsigned char cury;           /* y-coordinate in current window */
        !           153: };
        !           154: 
        !           155: typedef struct {
        !           156:        int             mode;
        !           157:        int             mouse;
        !           158:        void    (*clreol)               (void);
        !           159:        int             (*puttext)              (int,int,int,int,void *);
        !           160:        int             (*gettext)              (int,int,int,int,void *);
        !           161:        void    (*textattr)             (int);
        !           162:        int             (*kbhit)                (void);
        !           163:        void    (*delay)                (long);
        !           164:        int             (*wherex)               (void);
        !           165:        int             (*wherey)               (void);
        !           166:        int             (*putch)                (int);
        !           167:        void    (*gotoxy)               (int,int);
        !           168:        void    (*clrscr)               (void);
        !           169:        void    (*gettextinfo)  (struct text_info *);
        !           170:        void    (*setcursortype)(int);
        !           171:        int             (*getch)                (void);
        !           172:        int             (*getche)               (void);
        !           173:        int             (*beep)                 (void);
        !           174:        void    (*highvideo)    (void);
        !           175:        void    (*lowvideo)             (void);
        !           176:        void    (*normvideo)    (void);
        !           177:        void    (*textmode)             (int);
        !           178:        int             (*ungetch)              (int);
        !           179:        int             (*movetext)             (int,int,int,int,int,int);
        !           180:        char    *(*cgets)               (char *);
        !           181:        int             (*cscanf)               (char *,...);
        !           182:        char    *(*getpass)             (const char *);
        !           183:        void    (*wscroll)              (void);
        !           184:        void    (*window)               (int,int,int,int);
        !           185:        void    (*delline)              (void);
        !           186:        void    (*insline)              (void);
        !           187:        int             (*cprintf)              (char *,...);
        !           188:        int             (*cputs)                (char *);
        !           189:        void    (*textbackground)       (int);
        !           190:        void    (*textcolor)    (int);
        !           191:        int             (*getmouse)             (struct mouse_event *mevent);
        !           192:        int             (*ungetmouse)   (struct mouse_event *mevent);
        !           193:        int             (*hidemouse)    (void);
        !           194:        int             (*showmouse)    (void);
        !           195:        void    (*settitle)             (const char *);
        !           196: } cioapi_t;
        !           197: 
        !           198: extern cioapi_t cio_api;
        !           199: extern int _wscroll;
        !           200: extern int directvideo;
        !           201: extern int dont_move_cursor;
        !           202: 
        !           203: #define _conio_kbhit()         kbhit()
        !           204: 
        !           205: #ifdef __cplusplus
        !           206: extern "C" {
        !           207: #endif
        !           208: int initciolib(int mode);
        !           209: 
        !           210: int ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy);
        !           211: char *ciolib_cgets(char *str);
        !           212: int ciolib_cscanf (char *format , ...);
        !           213: int ciolib_kbhit(void);
        !           214: int ciolib_getch(void);
        !           215: int ciolib_getche(void);
        !           216: int ciolib_ungetch(int ch);
        !           217: void ciolib_gettextinfo(struct text_info *info);
        !           218: int ciolib_wherex(void);
        !           219: int ciolib_wherey(void);
        !           220: void ciolib_wscroll(void);
        !           221: void ciolib_gotoxy(int x, int y);
        !           222: void ciolib_clreol(void);
        !           223: void ciolib_clrscr(void);
        !           224: int ciolib_cputs(char *str);
        !           225: int    ciolib_cprintf(char *fmat, ...);
        !           226: void ciolib_textbackground(int colour);
        !           227: void ciolib_textcolor(int colour);
        !           228: void ciolib_highvideo(void);
        !           229: void ciolib_lowvideo(void);
        !           230: void ciolib_normvideo(void);
        !           231: int ciolib_puttext(int a,int b,int c,int d,unsigned char *e);
        !           232: int ciolib_gettext(int a,int b,int c,int d,unsigned char *e);
        !           233: void ciolib_textattr(int a);
        !           234: void ciolib_delay(long a);
        !           235: int ciolib_putch(int a);
        !           236: void ciolib_setcursortype(int a);
        !           237: void ciolib_textmode(int mode);
        !           238: void ciolib_window(int sx, int sy, int ex, int ey);
        !           239: void ciolib_delline(void);
        !           240: void ciolib_insline(void);
        !           241: char *ciolib_getpass(const char *prompt);
        !           242: void settitle(const char *title);
        !           243: int ciolib_showmouse(void);
        !           244: int ciolib_hidemouse(void);
        !           245: void ciolib_settitle(const char *title);
        !           246: #ifdef __cplusplus
        !           247: }
        !           248: #endif
        !           249: 
        !           250: #ifndef CIOLIB_NO_MACROS
        !           251:        #define cscanf                                  ciolib_cscanf
        !           252:        #define cprintf                                 ciolib_cprintf
        !           253: 
        !           254:        #define movetext(a,b,c,d,e,f)   ciolib_movetext(a,b,c,d,e,f)
        !           255:        #define cgets(a)                                ciolib_cgets(a)
        !           256:        #define kbhit()                                 ciolib_kbhit()
        !           257:        #define getch()                                 ciolib_getch()
        !           258:        #define getche()                                ciolib_getche()
        !           259:        #define ungetch(a)                              ciolib_ungetch(a)
        !           260:        #define gettextinfo(a)                  ciolib_gettextinfo(a)
        !           261:        #define wherex()                                ciolib_wherex()
        !           262:        #define wherey()                                ciolib_wherey()
        !           263:        #define wscroll()                               ciolib_wscroll()
        !           264:        #define gotoxy(a,b)                             ciolib_gotoxy(a,b)
        !           265:        #define clreol()                                ciolib_clreol()
        !           266:        #define clrscr()                                ciolib_clrscr()
        !           267:        #define cputs(a)                                ciolib_cputs(a)
        !           268:        #define textbackground(a)               ciolib_textbackground(a)
        !           269:        #define textcolor(a)                    ciolib_textcolor(a)
        !           270:        #define highvideo()                             ciolib_highvideo()
        !           271:        #define lowvideo()                              ciolib_lowvideo()
        !           272:        #define normvideo()                             ciolib_normvideo()
        !           273:        #define puttext(a,b,c,d,e)              ciolib_puttext(a,b,c,d,e)
        !           274:        #define gettext(a,b,c,d,e)              ciolib_gettext(a,b,c,d,e)
        !           275:        #define textattr(a)                             ciolib_textattr(a)
        !           276:        #define delay(a)                                ciolib_delay(a)
        !           277:        #define putch(a)                                ciolib_putch(a)
        !           278:        #define _setcursortype(a)               ciolib_setcursortype(a)
        !           279:        #define textmode(a)                             ciolib_textmode(a)
        !           280:        #define window(a,b,c,d)                 ciolib_window(a,b,c,d)
        !           281:        #define delline()                               ciolib_delline()
        !           282:        #define insline()                               ciolib_insline()
        !           283:        #define getpass(a)                              ciolib_getpass(a)
        !           284:        #define getmouse(a)                             ciolib_getmouse(a)
        !           285:        #define ungetmouse(a)                   ciolib_ungetmouse(a)
        !           286:        #define hidemouse()                             ciolib_hidemouse()
        !           287:        #define showmouse()                             ciolib_showmouse()
        !           288:        #define settitle(a)                             ciolib_settitle(a)
        !           289: #endif
        !           290: 
        !           291: #endif /* Do not add anything after this line */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.