ftp.nice.ch/pub/next/unix/developer/slang0.99-34.NIHS.b.tar.gz#/local/include/slcurses.h

This is slcurses.h in view mode; [Download] [Up]

#include <stdio.h>

#ifndef SLANG_VERSION
# include <slang.h>
#endif

typedef struct
{
   unsigned int row, col, nrows, ncols;
   unsigned int crow, ccol;
   unsigned short *b;
   unsigned short *buf;
   unsigned short *bufmax;
   unsigned short color;
}
SLcurses_Window_Type;

extern int SLcurses_wclrtobot (SLcurses_Window_Type *);
extern int SLcurses_scroll (SLcurses_Window_Type *);
extern int SLcurses_wrefresh (SLcurses_Window_Type *);
extern int SLcurses_delwin (SLcurses_Window_Type *);
extern int SLcurses_waddch (SLcurses_Window_Type *, char);
extern int SLcurses_wmove (SLcurses_Window_Type *, unsigned int, unsigned int);
extern SLcurses_Window_Type *SLcurses_newwin (unsigned int, unsigned int,
					      unsigned int, unsigned int);

extern int SLcurses_wnoutrefresh (SLcurses_Window_Type *);
extern int SLcurses_wclrtoeol (SLcurses_Window_Type *);
extern int SLcurses_waddstr (SLcurses_Window_Type *, char *);

#define WINDOW SLcurses_Window_Type 
#define stdscr NULL

#define wclrtobot	SLcurses_wclrtobot
#define scroll		SLcurses_scroll
#define wrefresh	SLcurses_wrefresh
#define delwin		SLcurses_delwin
#define waddch		SLcurses_waddch
#define wmove		SLcurses_wmove
#define newwin		SLcurses_newwin
#define wnoutrefresh	SLcurses_wnoutrefresh
#define werase(w)	SLcurses_wmove((w),0,0); SLcurses_wclrtobot(w)

#define winch(w) \
  (((w) == NULL) ? SLsmg_char_at () \
    : (((w)->b < (w)->bufmax) ? *((w)->b) : 0))

#define doupdate	SLsmg_refresh
extern int SLcurses_mvprintw (int, int, char *, ...);
extern int SLcurses_has_colors(void);
extern int SLcurses_nil (void);
extern int SLcurses_getch (void);
extern int SLcurses_mvaddch (int, int, SLtt_Char_Type);
extern int SLcurses_addch (SLtt_Char_Type attr);
#define addch SLcurses_addch
#define mvaddch SLcurses_mvaddch

extern int SLcurses_attrset (SLtt_Char_Type);
extern int SLcurses_attron (SLtt_Char_Type);
extern int SLcurses_attroff (SLtt_Char_Type);
#define attrset SLcurses_attrset
#define attron SLcurses_attron
#define attroff SLcurses_attroff
#define COLOR_PAIR(x) ((x) << 8) 

extern int SLcurses_start_color (void);
#define start_color SLcurses_start_color

#define ERR 0xFFFF
#define wgetch(x) SLcurses_getch ()

extern int SLcurses_nodelay (SLcurses_Window_Type *, int);
extern int SLcurses_initscr (void);
#define initscr SLcurses_initscr

extern int SLcurses_cbreak (void);
extern int SLcurses_raw (void);
#define cbreak SLcurses_cbreak
#define crmode SLcurses_cbreak
#define raw SLcurses_raw
#define noraw SLang_reset_tty
#define nocbreak SLang_reset_tty


#define mvprintw SLcurses_mvprintw
#define has_colors SLcurses_has_colors
#define getch SLcurses_getch
#define nodelay SLcurses_nodelay

#define ungetch SLang_ungetkey

#define COLS SLtt_Screen_Cols
#define LINES SLtt_Screen_Rows

#define move SLsmg_gotorc
#define clrtoeol SLsmg_erase_eol


#define printw SLsmg_printf
#define mvprintw SLcurses_mvprintw
#define clrtobot SLsmg_erase_eos
#define clrtoeol SLsmg_erase_eol
#define standout SLsmg_reverse_video
#define standend  SLsmg_normal_video

#define addstr SLsmg_write_string
#define refresh SLsmg_refresh
#define clear SLsmg_cls
#define erase SLsmg_gotorc (0,0), SLsmg_erase_eos
#define mvaddstr(y, x, s) SLsmg_gotorc(y, x), SLsmg_write_string(s)
#define touchline SLsmg_touch_lines
#define inch SLsmg_char_at
#define endwin SLsmg_reset_smg(),SLang_reset_tty
#define resetterm SLang_reset_tty


/* Ugly Hacks that may not work */
#define ACS_ULCORNER '+'
#define ACS_URCORNER '+'
#define ACS_LRCORNER '+'
#define ACS_LLCORNER '+'
#define ACS_TTEE '+'
#define ACS_LTEE '+'
#define ACS_RTEE '+'
#define ACS_BTEE '+'
#define ACS_PLUS '+'
#define ACS_VLINE '|'
#define ACS_HLINE '-'

#define hline(x,y) SLsmg_draw_hline (y)
#define vline(x,y) SLsmg_draw_vline (y)

#define A_NORMAL 0
#define A_BOLD		0x1000
#define A_REVERSE	0x2000
#define A_STANDOUT	A_REVERSE
#define A_UNDERLINE	0x4000
#define A_BLINK		0
#define A_COLOR 0x7
#define A_ALTCHARSET	0x8000

#define COLOR_BLACK	SLSMG_COLOR_BLACK
#define COLOR_RED	SLSMG_COLOR_RED
#define COLOR_GREEN	SLSMG_COLOR_GREEN
#define COLOR_YELLOW	SLSMG_COLOR_BROWN
#define COLOR_BLUE	SLSMG_COLOR_BLUE
#define COLOR_MAGENTA	SLSMG_COLOR_MAGENTA
#define COLOR_CYAN	SLSMG_COLOR_CYAN
#define COLOR_WHITE	SLSMG_COLOR_LGRAY

#define init_pair(_x,_f,_b) SLtt_set_color_fgbg((_x), (_f), (_b))


#define scrollok(a,b) SLsmg_Newline_Moves = ((b) ? 1 : -1)
#define getyx(a,y,x)  y=SLsmg_get_row(), x=SLsmg_get_column()
#define napms(x) SLang_input_pending(-(x))
typedef SLtt_Char_Type chtype;
#define beep SLtt_beep
#define curs_set(x) SLtt_set_cursor_visibility(x)


/* These functions do nothing */
#define savetty SLcurses_nil
#define wscrl(a,b) SLcurses_nil()
#define nonl    SLcurses_nil
#define echo SLcurses_nil
#define noecho SLcurses_nil
#define saveterm SLcurses_nil
#define clearok(x,y) SLcurses_nil
#define box(x,y,z) SLcurses_nil()
#define leaveok(a,b) SLcurses_nil()
#define nl() SLcurses_nil()
#define trace(x) SLcurses_nil()

#define tigetstr(x) NULL

/* Fake keypad.  This can be fixed.... */
#define keypad(x,y) SLcurses_nil()
#define KEY_DOWN -1
#define KEY_UP -2
#define KEY_LEFT -3
#define KEY_RIGHT -4
#define KEY_A1	-5
#define KEY_B1	-6
#define KEY_C1	-7
#define KEY_A2	-8
#define KEY_B2	-9
#define KEY_C2	-10
#define KEY_A3	-11
#define KEY_B3	-12
#define KEY_C3	-13
#define KEY_REDO -14
#define KEY_UNDO -15
#define KEY_BACKSPACE -16



/* These have no place in C */
#define TRUE 1
#define FALSE 0
#define bool int

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.