static void mc_tty_color_pair_init_special (tty_color_pair_t * mc_color_pair, const char *fg1, const char *bg1, const char *fg2, const char *bg2, SLtt_Char_Type mask) { if (SLtt_Use_Ansi_Colors != 0) { if (!mc_tty_color_disable) { SLtt_set_color (mc_color_pair->pair_index, (char *) "", (char *) fg1, (char *) bg1); } else { SLtt_set_color (mc_color_pair->pair_index, (char *) "", (char *) fg2, (char *) bg2); } } else { SLtt_set_mono (mc_color_pair->pair_index, NULL, mask); } }
void tty_color_try_alloc_pair_lib (tty_color_pair_t * mc_color_pair) { const char *fg, *bg; if (mc_color_pair->ifg <= (int) SPEC_A_REVERSE) { switch (mc_color_pair->ifg) { case SPEC_A_REVERSE: mc_tty_color_pair_init_special (mc_color_pair, "black", "white", "black", "lightgray", SLTT_REV_MASK); break; case SPEC_A_BOLD: mc_tty_color_pair_init_special (mc_color_pair, "white", "black", "white", "black", SLTT_BOLD_MASK); break; case SPEC_A_BOLD_REVERSE: mc_tty_color_pair_init_special (mc_color_pair, "white", "white", "white", "white", SLTT_BOLD_MASK | SLTT_REV_MASK); break; case SPEC_A_UNDERLINE: mc_tty_color_pair_init_special (mc_color_pair, "white", "black", "white", "black", SLTT_ULINE_MASK); break; } } else { fg = (mc_color_pair->cfg) ? mc_color_pair->cfg : "default"; bg = (mc_color_pair->cbg) ? mc_color_pair->cbg : "default"; SLtt_set_color (mc_color_pair->pair_index, (char *) "", (char *) fg, (char *) bg); } }
void newtSetColor(int colorset, char *fg, char *bg) { if (colorset < NEWT_COLORSET_ROOT || (colorset > NEWT_COLORSET_SELLISTBOX && colorset < NEWT_COLORSET_CUSTOM(0)) || !SLtt_Use_Ansi_Colors) return; SLtt_set_color(colorset, "", fg, bg); }
void c11_draw_background(void) { SLtt_set_color(255,NULL,confdb.background,confdb.background); SLsmg_set_color(255); SLsmg_gotorc(0,0); SLsmg_erase_eos(); SLsmg_refresh(); return; }
static void slang_init_palette(void) { /* See SLang ref., 5.4.4. */ static char *slang_colors[16] = { /* Standard colours */ "black", "blue", "green", "cyan", "red", "magenta", "brown", "lightgray", /* Bright colours */ "gray", "brightblue", "brightgreen", "brightcyan", "brightred", "brightmagenta", "yellow", "white", }; #if defined(OPTIMISE_SLANG_PALETTE) int i; for(i = 0; i < 16 * 16; i++) SLtt_set_color(i, NULL, slang_colors[slang_palette[i * 2]], slang_colors[slang_palette[i * 2 + 1]]); #else int fg, bg; for(bg = 0; bg < 16; bg++) for(fg = 0; fg < 16; fg++) { int i = fg + 16 * bg; SLtt_set_color(i, NULL, slang_colors[fg], slang_colors[bg]); } #endif }
void init_disp_state() { int i; /* initialize the display state */ disp.first_visible = 0; disp.highlighted = 0; SLtt_set_color(0, NULL, "lightgray", "default"); SLtt_set_color(1, NULL, "black", "lightgray"); SLtt_set_color(2, NULL, "lightgray", "blue"); SLtt_set_color(3, NULL, "red", "blue"); SLtt_set_cursor_visibility(0); for(i = 0; i < 10; i++) { disp.fkey_cmd[i] = NULL; } load_rc_file(); }
static void slang_getsize(aa_context * c, int *width, int *height) { SLtt_get_screen_size(); SLsmg_reset_smg(); if (SLsmg_init_smg() != 0) printf("Internal error!\n"); SLtt_set_mono(AA_NORMAL, "normal", 0); SLtt_set_mono(AA_BOLD, "bold", SLTT_BOLD_MASK); SLtt_set_mono(AA_DIM, "dim", SLTT_ALTC_MASK); SLtt_set_mono(AA_REVERSE, "reverse", SLTT_REV_MASK); SLtt_set_mono(AA_SPECIAL, "special", 0); SLtt_set_mono(AA_BOLDFONT, "boldfont", SLTT_BOLD_MASK); SLtt_set_color(AA_NORMAL, "normal", "lightgray", "black"); SLtt_set_color(AA_BOLD, "bold", "white", "black"); SLtt_set_color(AA_DIM, "dim", "gray", "black"); SLtt_set_color(AA_REVERSE, "bold", "black", "lightgray"); SLtt_set_color(AA_SPECIAL, "dim", "lightgray", "blue"); SLtt_set_color(AA_BOLDFONT, "bold", "white", "black"); *width = SLtt_Screen_Cols; *height = SLtt_Screen_Rows; /*if(i==2) exit(1); */ #ifdef GPM_MOUSEDRIVER gpm_mx = *width; gpm_my = *height; #endif }
void most_setup_colors (void) { Color_Handle_Type *h; int i; int fg, bg, at; for (i = 1; i < 128; i++) { SLtt_set_color (i, NULL, "default", "default"); SLtt_set_mono (i, NULL, 0); } for (at = 0; at < 9; at++) { for (fg = 0; fg < 9; fg++) { for (bg = 0; bg < 9; bg++) { i = fg + 9*(bg + 9*at); if (i == 0) continue; i += MOST_EMBEDDED_COLOR_OFFSET; SLtt_set_color (i, NULL, Ansi_Color_Map[fg], Ansi_Color_Map[bg]); } } } h = Color_Handles; while (h->name != NULL) { /* if (h->value != 0)*/ /* Let COLORFGBG apply to initial color */ SLtt_set_color (h->value, NULL, h->fg, h->bg); SLtt_set_color (h->value+MOST_EMBEDDED_COLOR_OFFSET, NULL, h->fg, h->bg); SLtt_set_mono (h->value, NULL, h->mono); SLtt_set_mono (h->value+MOST_EMBEDDED_COLOR_OFFSET, NULL, h->mono); h++; } }
static int set_object_color (char *name, char *fg, char *bg) { Color_Handle_Type *ct = Color_Handles; while (ct->name != NULL) { if (!strcmp (ct->name, name)) { SLtt_set_color (ct->value, name, fg, bg); return 0; } ct++; } parse_error ("Undefined color object"); return -1; }
void mode_util_set_slang_color (char *mode, char *color_id, int sl_color_id, char *def_fg, char *def_bg) { char *fg, *bg; fg = cfg_get_option_string_with_default (mode, "color", color_id, def_fg); bg = cfg_get_option_string_with_default (mode, "background", color_id, def_bg); if (fg && !strcmp (fg, "transparent")) fg = NULL; if (bg && !strcmp (bg, "transparent")) bg = NULL; SLtt_set_color (sl_color_id, NULL, fg, bg); }
void display_define_colour(int colour, int fg, int bg, int reverse) { static char *colours[16] = { "black", "red", "green", "brown", "blue", "magenta", "cyan", "lightgray", "gray", "brightred", "brightgreen", "yellow", "brightblue", "brightmagenta", "brightcyan", "white", }; char cname[40]; if (fg < 0 && bg < 0) { /* FIXME: not sure how to support terminal default fg+bg */ fg = 7; bg = 0; } sprintf(cname, "colour%d", colour); SLtt_set_color(colour, cname, colours[fg], colours[bg]); }
void tty_color_try_alloc_pair_lib (tty_color_pair_t * mc_color_pair) { if (mc_color_pair->ifg <= (int) SPEC_A_REVERSE) { switch (mc_color_pair->ifg) { case SPEC_A_REVERSE: mc_tty_color_pair_init_special (mc_color_pair, "black", "white", "black", "lightgray", SLTT_REV_MASK); break; case SPEC_A_BOLD: mc_tty_color_pair_init_special (mc_color_pair, "white", "black", "white", "black", SLTT_BOLD_MASK); break; case SPEC_A_BOLD_REVERSE: mc_tty_color_pair_init_special (mc_color_pair, "white", "white", "white", "white", SLTT_BOLD_MASK | SLTT_REV_MASK); break; case SPEC_A_UNDERLINE: mc_tty_color_pair_init_special (mc_color_pair, "white", "black", "white", "black", SLTT_ULINE_MASK); break; } } else { const char *fg, *bg; fg = tty_color_get_name_by_index (mc_color_pair->ifg); bg = tty_color_get_name_by_index (mc_color_pair->ibg); SLtt_set_color (mc_color_pair->pair_index, (char *) "", (char *) fg, (char *) bg); SLtt_add_color_attribute (mc_color_pair->pair_index, mc_color_pair->attr); } }
int mutt_alloc_color (int fg, int bg) { COLOR_LIST *p = ColorList; int i; #if defined (USE_SLANG_CURSES) char fgc[SHORT_STRING], bgc[SHORT_STRING]; #endif /* check to see if this color is already allocated to save space */ while (p) { if (p->fg == fg && p->bg == bg) { (p->count)++; return (COLOR_PAIR (p->index)); } p = p->next; } /* check to see if there are colors left */ if (++UserColors > COLOR_PAIRS) return (A_NORMAL); /* find the smallest available index (object) */ i = 1; FOREVER { p = ColorList; while (p) { if (p->index == i) break; p = p->next; } if (p == NULL) break; i++; } p = (COLOR_LIST *) safe_malloc (sizeof (COLOR_LIST)); p->next = ColorList; ColorList = p; p->index = i; p->count = 1; p->bg = bg; p->fg = fg; #if defined (USE_SLANG_CURSES) if (fg == COLOR_DEFAULT || bg == COLOR_DEFAULT) SLtt_set_color (i, NULL, get_color_name (fgc, sizeof (fgc), fg), get_color_name (bgc, sizeof (bgc), bg)); else #elif defined (HAVE_USE_DEFAULT_COLORS) if (fg == COLOR_DEFAULT) fg = -1; if (bg == COLOR_DEFAULT) bg = -1; #endif init_pair(i, fg, bg); dprint (3, (debugfile,"mutt_alloc_color(): Color pairs used so far: %d\n", UserColors)); return (COLOR_PAIR (p->index)); }
bool SLangConsole::init() { setenv("TERM","xterm-color",0); SLtt_get_terminfo(); if( -1 == SLkp_init() ) { // keyboard interface error("failure in SLkp_init()"); return false; } SLang_init_tty(-1, 0, 0); SLsmg_init_smg(); // screen manager // SLutf8_enable(1); // enable UTF8 character set // this is a mess ... screen_size_changed = false; // register signals SLsignal (SIGWINCH, sigwinch_handler); SLang_set_abort_signal(sigint_handler); SLkp_set_getkey_function(getkey_handler); // SLsmg_Tab_Width = 8; // SLsmg_Display_Eight_Bit = 1; // SLtt_Use_Ansi_Colors = 0; // SLtt_Term_Cannot_Scroll = 0; // set sizes of the whole console w = SLtt_Screen_Cols; h = SLtt_Screen_Rows; /* setup colors with the palette scheme: n = normal; n+10 = highlight; n+20 = reverse normal; n+30 = reverse highlight; */ // crazy casting for crazy slang SLtt_set_color(1,NULL,(char *)"lightgray",(char *)"black"); SLtt_set_color(11,NULL,(char *)"white",(char *)"black"); SLtt_set_color(21,NULL,(char *)"black",(char *)"lightgray"); SLtt_set_color(31,NULL,(char *)"black",(char *)"white"); SLtt_set_color(2,NULL,(char *)"red",(char *)"black"); SLtt_set_color(12,NULL,(char *)"brightred",(char *)"black"); SLtt_set_color(22,NULL,(char *)"black",(char *)"red"); SLtt_set_color(32,NULL,(char *)"black",(char *)"brightred"); SLtt_set_color(3,NULL,(char *)"green",(char *)"black"); SLtt_set_color(13,NULL,(char *)"brightgreen",(char *)"black"); SLtt_set_color(23,NULL,(char *)"black",(char *)"green"); SLtt_set_color(33,NULL,(char *)"black",(char *)"brightgreen"); SLtt_set_color(4,NULL,(char *)"brown",(char *)"black"); SLtt_set_color(14,NULL,(char *)"yellow",(char *)"black"); SLtt_set_color(24,NULL,(char *)"black",(char *)"brown"); SLtt_set_color(34,NULL,(char *)"black",(char *)"yellow"); SLtt_set_color(5,NULL,(char *)"blue",(char *)"black"); SLtt_set_color(15,NULL,(char *)"brightblue",(char *)"black"); SLtt_set_color(25,NULL,(char *)"black",(char *)"blue"); SLtt_set_color(35,NULL,(char *)"black",(char *)"brightblue"); SLtt_set_color(6,NULL,(char *)"magenta",(char *)"black"); SLtt_set_color(16,NULL,(char *)"brightmagenta",(char *)"black"); SLtt_set_color(26,NULL,(char *)"black",(char *)"magenta"); SLtt_set_color(36,NULL,(char *)"black",(char *)"brightmagenta"); SLtt_set_color(7,NULL,(char *)"cyan",(char *)"black"); SLtt_set_color(17,NULL,(char *)"brightcyan",(char *)"black"); SLtt_set_color(27,NULL,(char *)"black",(char *)"cyan"); SLtt_set_color(37,NULL,(char *)"black",(char *)"brightcyan"); refresh(); return true; }
static void smg_define_color (int *obj, char *fg, char *bg) { SLtt_set_color (*obj, NULL, fg, bg); }
/*ARGSUSED*/ static int ctl_open(int using_stdin, int using_stdout) { #ifdef TIOCGWINSZ struct winsize size; #endif int i; int save_lines, save_cols; SLtt_get_terminfo(); /* * Save the terminfo values for lines and cols * then detect the real values. */ save_lines = SLtt_Screen_Rows; save_cols = SLtt_Screen_Cols; #ifdef TIOCGWINSZ if (!ioctl(0, TIOCGWINSZ, &size)) { SLtt_Screen_Cols=size.ws_col; SLtt_Screen_Rows=size.ws_row; } else #endif { SLtt_Screen_Cols=atoi(getenv("COLUMNS")); SLtt_Screen_Rows=atoi(getenv("LINES")); } if (!SLtt_Screen_Cols || !SLtt_Screen_Rows) { SLtt_Screen_Rows = save_lines; SLtt_Screen_Cols = save_cols; } SLang_init_tty(7, 0, 0); SLsmg_init_smg(); SLtt_set_color (20, "Normal", "lightgray", "black"); SLtt_set_color (21, "HighLight", "white", "black"); SLtt_set_color (22, "Reverse", "black", "white"); SLtt_Use_Ansi_Colors = 1; SLtt_Term_Cannot_Scroll = 1; ctl.opened=1; SLsmg_cls(); ctl_head(); SLsmg_printfrc(3,0, "File:"); if (ctl.trace_playing) { SLsmg_printfrc(4,0, "Time:"); SLsmg_gotorc(4,6+6+1); SLsmg_write_char('/'); SLsmg_gotorc(4,40); SLsmg_printf("Voices: / %d", voices); } else { SLsmg_printfrc(4,0, "Time:"); SLsmg_printfrc(4,13, "/"); } SLsmg_printfrc(4,SLtt_Screen_Cols-20, "Master volume:"); SLsmg_gotorc(5,0); for (i=0; i<SLtt_Screen_Cols; i++) SLsmg_write_char('_'); if (ctl.trace_playing) { SLsmg_printfrc(6,0, "Ch"); SLsmg_printfrc(6,SLtt_Screen_Cols-20, "Prg Vol Exp Pan S B"); SLsmg_gotorc(7,0); for (i=0; i<SLtt_Screen_Cols; i++) SLsmg_write_char('-'); for (i=0; i<16; i++) { SLsmg_printfrc(8+i, 0, "%02d", i+1); } set_trace_loop_hook(update_indicator); indicator_width=SLtt_Screen_Cols-2; if(indicator_width<40) indicator_width=40; lyric_row=2; } else msg_row = 6; memset(comment_indicator_buffer = (char *)safe_malloc(indicator_width), 0, indicator_width); memset(current_indicator_message = (char *)safe_malloc(indicator_width), 0, indicator_width); _ctl_refresh(); return 0; }
/** * @brief Set the colors used. * @param colors - newtColor struct used. */ void newtSetColors(struct newtColors colors) { if (!SLtt_Use_Ansi_Colors) { int i; for (i = 2; i < 25; i++) SLtt_set_mono(i, NULL, 0); SLtt_set_mono(NEWT_COLORSET_SELLISTBOX, NULL, SLTT_BOLD_MASK); SLtt_set_mono(NEWT_COLORSET_ACTBUTTON, NULL, SLTT_REV_MASK); SLtt_set_mono(NEWT_COLORSET_ACTCHECKBOX, NULL, SLTT_REV_MASK); SLtt_set_mono(NEWT_COLORSET_ACTLISTBOX, NULL, SLTT_REV_MASK); SLtt_set_mono(NEWT_COLORSET_ACTTEXTBOX, NULL, SLTT_REV_MASK); SLtt_set_mono(NEWT_COLORSET_ACTSELLISTBOX, NULL, SLTT_REV_MASK | SLTT_BOLD_MASK); SLtt_set_mono(NEWT_COLORSET_DISENTRY, NULL, 0); // FIXME SLtt_set_mono(NEWT_COLORSET_FULLSCALE, NULL, SLTT_ULINE_MASK | SLTT_REV_MASK); SLtt_set_mono(NEWT_COLORSET_EMPTYSCALE, NULL, SLTT_ULINE_MASK); return; } SLtt_set_color(NEWT_COLORSET_ROOT, "", colors.rootFg, colors.rootBg); SLtt_set_color(NEWT_COLORSET_BORDER, "", colors.borderFg, colors.borderBg); SLtt_set_color(NEWT_COLORSET_WINDOW, "", colors.windowFg, colors.windowBg); SLtt_set_color(NEWT_COLORSET_SHADOW, "", colors.shadowFg, colors.shadowBg); SLtt_set_color(NEWT_COLORSET_TITLE, "", colors.titleFg, colors.titleBg); SLtt_set_color(NEWT_COLORSET_BUTTON, "", colors.buttonFg, colors.buttonBg); SLtt_set_color(NEWT_COLORSET_ACTBUTTON, "", colors.actButtonFg, colors.actButtonBg); SLtt_set_color(NEWT_COLORSET_CHECKBOX, "", colors.checkboxFg, colors.checkboxBg); SLtt_set_color(NEWT_COLORSET_ACTCHECKBOX, "", colors.actCheckboxFg, colors.actCheckboxBg); SLtt_set_color(NEWT_COLORSET_ENTRY, "", colors.entryFg, colors.entryBg); SLtt_set_color(NEWT_COLORSET_LABEL, "", colors.labelFg, colors.labelBg); SLtt_set_color(NEWT_COLORSET_LISTBOX, "", colors.listboxFg, colors.listboxBg); SLtt_set_color(NEWT_COLORSET_ACTLISTBOX, "", colors.actListboxFg, colors.actListboxBg); SLtt_set_color(NEWT_COLORSET_TEXTBOX, "", colors.textboxFg, colors.textboxBg); SLtt_set_color(NEWT_COLORSET_ACTTEXTBOX, "", colors.actTextboxFg, colors.actTextboxBg); SLtt_set_color(NEWT_COLORSET_HELPLINE, "", colors.helpLineFg, colors.helpLineBg); SLtt_set_color(NEWT_COLORSET_ROOTTEXT, "", colors.rootTextFg, colors.rootTextBg); SLtt_set_color(NEWT_COLORSET_EMPTYSCALE, "", "white", colors.emptyScale); SLtt_set_color(NEWT_COLORSET_FULLSCALE, "", "white", colors.fullScale); SLtt_set_color(NEWT_COLORSET_DISENTRY, "", colors.disabledEntryFg, colors.disabledEntryBg); SLtt_set_color(NEWT_COLORSET_COMPACTBUTTON, "", colors.compactButtonFg, colors.compactButtonBg); SLtt_set_color(NEWT_COLORSET_ACTSELLISTBOX, "", colors.actSelListboxFg, colors.actSelListboxBg); SLtt_set_color(NEWT_COLORSET_SELLISTBOX, "", colors.selListboxFg, colors.selListboxBg); }
static int sl_output(int port, char *buf, int len) { int x,y,z,v,w; char *str, *t1, *t2, *t3; int ret; char ch; /* check for signals */ if (signal_cought != 0) { /* async out signal */ char xxx[5]; xxx[0] = 0; put_int32(signal_cought, xxx+1); driver_output(port, xxx, 5); signal_cought = 0; } switch (*buf++) { case INIT_TTY: { int abort_char, flow_ctl, opost; abort_char = get_int32(buf); buf+=4; flow_ctl = get_int32(buf); buf+= 4; opost = get_int32(buf); buf+= 4; ret = SLang_init_tty (abort_char,flow_ctl, opost); return ret_int(port, ret); } case SET_ABORT_FUNCTION: { SLang_set_abort_signal (NULL); return ret_int(port, 0); } case GETKEY: { unsigned int key; if (SLang_input_pending (0) == 0) { wait_for = GETKEY; driver_select(port, 0, DO_READ, 1); return 0; } x = SLang_getkey (); return ret_int(port, x); } /* read a symbol */ case KP_GETKEY: { if (SLang_input_pending (0) == 0) { wait_for = KP_GETKEY; driver_select(port, 0, DO_READ, 1); return 0; } x = SLkp_getkey (); return ret_int(port, x); } case UNGETKEY: { unsigned char key = (unsigned char) *buf; SLang_ungetkey (key); return 0; } case RESET_TTY: { SLang_reset_tty(); return 0; } case KP_INIT: { return ret_int(port, SLkp_init ()); } case SETVAR: { x = get_int32(buf);buf+= 4; y = get_int32(buf); switch (x) { case esl_baud_rate: SLang_TT_Baud_Rate = y; return 0; case esl_read_fd: return 0; case esl_abort_char: SLang_Abort_Char = y; return 0; case esl_ignore_user_abort: SLang_Ignore_User_Abort=y; return 0; case esl_input_buffer_len : SLang_Input_Buffer_Len=y; return 0; case esl_keyboard_quit: SLKeyBoard_Quit=y; return 0; case esl_last_key_char: SLang_Last_Key_Char=y; return 0; case esl_rl_eof_char: SLang_RL_EOF_Char=y; return 0; case esl_rline_quit: SLang_Rline_Quit=y; return 0; case esl_screen_rows: case esl_screen_cols : return 0; case esl_tab_width: SLsmg_Tab_Width=y; return 0; case esl_newline_behaviour: SLsmg_Newline_Behavior=y; return 0; case esl_error: SLang_Error=y; return 0; case esl_version: return 0; case esl_backspace_moves : SLsmg_Backspace_Moves=y; return 0; case esl_display_eight_bit: SLsmg_Display_Eight_Bit=y; return 0; default: return 0; } } case GETVAR: { x = get_int32(buf); switch (x) { case esl_baud_rate: return ret_int(port, SLang_TT_Baud_Rate); case esl_read_fd: return ret_int(port, SLang_TT_Read_FD); case esl_abort_char: return (ret_int(port, SLang_Abort_Char)); case esl_ignore_user_abort: return ret_int(port, SLang_Ignore_User_Abort); case esl_input_buffer_len : return ret_int(port, SLang_Input_Buffer_Len); case esl_keyboard_quit: return ret_int(port, SLKeyBoard_Quit); case esl_last_key_char: return ret_int(port, SLang_Last_Key_Char); case esl_rl_eof_char: return ret_int(port, SLang_RL_EOF_Char); case esl_rline_quit: return ret_int(port, SLang_Rline_Quit); case esl_screen_rows: return ret_int(port, SLtt_Screen_Rows); case esl_screen_cols : return ret_int(port, SLtt_Screen_Cols); case esl_tab_width: return ret_int(port, SLsmg_Tab_Width); case esl_newline_behaviour: return ret_int(port, SLsmg_Newline_Behavior); case esl_error: return ret_int(port, SLang_Error); case esl_version: return ret_int(port, SLang_Version); case esl_backspace_moves : return ret_int(port, SLsmg_Backspace_Moves); case esl_display_eight_bit: return ret_int(port, SLsmg_Display_Eight_Bit); default: return ret_int(port, -1); } } /*{{{ SLsmg Screen Management Functions */ case SMG_FILL_REGION: { x = get_int32(buf); buf+= 4; y = get_int32(buf); buf+= 4; z = get_int32(buf); buf+= 4; v = get_int32(buf); buf+= 4; ch = *buf; SLsmg_fill_region(x, y,z,v,ch); return 0; } case SMG_SET_CHAR_SET: { x = get_int32(buf); buf+= 4; SLsmg_set_char_set(x); return 0; } case SMG_SUSPEND_SMG: { return ret_int(port, SLsmg_suspend_smg()); } case SMG_RESUME_SMG: { ret_int(port, SLsmg_resume_smg()); } case SMG_ERASE_EOL: { SLsmg_erase_eol(); return 0; } case SMG_GOTORC: { x = get_int32(buf); buf+= 4; y = get_int32(buf); buf+= 4; SLsmg_gotorc(x, y); return 0; } case SMG_ERASE_EOS: { SLsmg_erase_eos(); return 0; } case SMG_REVERSE_VIDEO: { SLsmg_reverse_video(); return 0; } case SMG_SET_COLOR: { x = get_int32(buf); buf+= 4; SLsmg_set_color(x); return 0; } case SMG_NORMAL_VIDEO: { SLsmg_normal_video(); return 0; } case SMG_WRITE_STRING: { SLsmg_write_string(buf); return 0; } case SMG_WRITE_CHAR: { ch = *buf; SLsmg_write_char(ch); return 0; } case SMG_WRITE_WRAPPED_STRING: { t1 = buf; buf += strlen(t1) + 1; x = get_int32(buf); buf+= 4; y = get_int32(buf); buf+= 4; z = get_int32(buf); buf+= 4; v = get_int32(buf); buf+= 4; w = get_int32(buf); buf+= 4; SLsmg_write_wrapped_string(t1, x,y,z,v,w); return 0; } case SMG_CLS: { SLsmg_cls(); return 0; } case SMG_REFRESH: { SLsmg_refresh(); return 0; } case SMG_TOUCH_LINES: { x = get_int32(buf); buf+= 4; y = get_int32(buf); buf+= 4; SLsmg_touch_lines(x, y); return 0; } case SMG_TOUCH_SCREEN: { #if (SLANG_VERSION < 10400 ) return ret_int(port, -1); #else SLsmg_touch_screen(); #endif return 0; } case SMG_INIT_SMG: { return ret_int(port, SLsmg_init_smg()); } case SMG_REINIT_SMG: { #if (SLANG_VERSION < 10400 ) return ret_int(port, -1); #else return ret_int(port, SLsmg_reinit_smg()); #endif } case SMG_RESET_SMG: { SLsmg_reset_smg(); return 0; } case SMG_CHAR_AT: { return ret_int(port, SLsmg_char_at()); } case SMG_SET_SCREEN_START: { int *ip1, *ip2; *ip1 = get_int32(buf); buf+= 4; *ip2 = get_int32(buf); buf+= 4; SLsmg_set_screen_start(ip1, ip2); return ret_int_int(port, *ip1, *ip2); } case SMG_DRAW_HLINE: { x = get_int32(buf); buf+= 4; SLsmg_draw_hline(x); return 0; } case SMG_DRAW_VLINE: { x = get_int32(buf); buf+= 4; SLsmg_draw_vline(x); return 0; } case SMG_DRAW_OBJECT: { x = get_int32(buf); buf+= 4; y = get_int32(buf); buf+= 4; x = get_int32(buf); buf+= 4; SLsmg_draw_object(x, y,z); return 0; } case SMG_DRAW_BOX: { x = get_int32(buf); buf+= 4; y = get_int32(buf); buf+= 4; z = get_int32(buf); buf+= 4; v = get_int32(buf); buf+= 4; SLsmg_draw_box(x, y,z,v); return 0; } case SMG_GET_COLUMN: { return ret_int(port, SLsmg_get_column()); } case SMG_GET_ROW: { return ret_int(port, SLsmg_get_row()); } case SMG_FORWARD: { x = get_int32(buf); buf+= 4; SLsmg_forward(x); return 0; } case SMG_WRITE_COLOR_CHARS: { SLsmg_Char_Type * sl; sl = decode_smg_char_type(&buf); x = get_int32(buf); buf+= 4; SLsmg_write_color_chars(sl, x); return 0; } case SMG_READ_RAW: { x = get_int32(buf); buf+= 4; t1 = malloc((2*x) + 2 + 1); y = SLsmg_read_raw((unsigned short*)t1 +1, x); t1[1] = 1; driver_output(port, t1, y+1); free(t1); return 0; } case SMG_WRITE_RAW: { SLsmg_Char_Type * sl; sl = decode_smg_char_type(&buf); x = get_int32(buf); y = SLsmg_write_raw(sl, x); return ret_int(port, y); } case SMG_SET_COLOR_IN_REGION: { x = get_int32(buf); buf+= 4; y = get_int32(buf); buf+= 4; z = get_int32(buf); buf+= 4; v = get_int32(buf); buf+= 4; w = get_int32(buf); buf+= 4; SLsmg_set_color_in_region(x, y,z,v,w); return 0; } /* all the tt_functions */ case TT_FLUSH_OUTPUT: { ret = SLtt_flush_output(); return ret_int(port, ret); } case TT_SET_SCROLL_REGION: { x = get_int32(buf); buf+=4; y = get_int32(buf); buf+=4; SLtt_set_scroll_region(x, y); return 0; } case TT_RESET_SCROLL_REGION: { SLtt_reset_scroll_region(); return 0; } case TT_REVERSE_VIDEO: { SLtt_reverse_video (get_int32(buf)); return 0; } case TT_BOLD_VIDEO: { SLtt_begin_insert(); return 0; } case TT_BEGIN_INSERT: { SLtt_begin_insert(); return 0; } case TT_END_INSERT: { SLtt_end_insert(); return 0; } case TT_DEL_EOL: { SLtt_del_eol(); return 0; } case TT_GOTO_RC: { x = get_int32(buf); buf+=4; y = get_int32(buf); buf+=4; SLtt_goto_rc (x, y); return 0; } case TT_DELETE_NLINES: { SLtt_delete_nlines(get_int32(buf)); return 0; } case TT_DELETE_CHAR: { SLtt_delete_char(); return 0; } case TT_ERASE_LINE: { SLtt_erase_line(); return 0; } case TT_NORMAL_VIDEO: { SLtt_normal_video(); return 0; } case TT_CLS: { SLtt_cls(); return 0; } case TT_BEEP: { SLtt_beep(); return 0; } case TT_REVERSE_INDEX: { SLtt_reverse_index(get_int32(buf)); return 0; } case TT_SMART_PUTS: { SLsmg_Char_Type *t1 ; SLsmg_Char_Type *t2; t1 = decode_smg_char_type(&buf); t2 = decode_smg_char_type(&buf); x = get_int32(buf); buf+=4; y = get_int32(buf); buf+=4; SLtt_smart_puts(t1, t2,x,y); return 0; } case TT_WRITE_STRING: { SLtt_write_string (buf); return 0; } case TT_PUTCHAR: { SLtt_putchar((char) get_int32(buf)); return 0; } case TT_INIT_VIDEO: { ret = SLtt_init_video (); return ret_int(port, ret); } case TT_RESET_VIDEO: { SLtt_reset_video (); return 0; } case TT_GET_TERMINFO: { SLtt_get_terminfo(); return 0; } case TT_GET_SCREEN_SIZE: { SLtt_get_screen_size (); return 0; } case TT_SET_CURSOR_VISIBILITY: { ret = SLtt_set_cursor_visibility (get_int32(buf)); return ret_int(port, ret); } case TT_SET_MOUSE_MODE: { x = get_int32(buf); buf+=4; y = get_int32(buf); buf+=4; ret = SLtt_set_mouse_mode (x,y); return ret_int(port, ret); } case TT_INITIALIZE: { ret =SLtt_initialize (buf); return ret_int(port, ret); } case TT_ENABLE_CURSOR_KEYS: { SLtt_enable_cursor_keys(); return 0; } case TT_SET_TERM_VTXXX: { return 0; } case TT_SET_COLOR_ESC: { x = get_int32(buf); buf+=4; SLtt_set_color_esc (x, buf); return 0; } case TT_WIDE_WIDTH: { SLtt_narrow_width(); return 0; } case TT_NARROW_WIDTH: { SLtt_narrow_width(); return 0; } case TT_SET_ALT_CHAR_SET: { SLtt_set_alt_char_set (get_int32(buf)); return 0; } case TT_WRITE_TO_STATUS_LINE: { x = get_int32(buf); buf+=4; SLtt_write_to_status_line (buf, x); return 0; } case TT_DISABLE_STATUS_LINE: { SLtt_disable_status_line (); return 0; } case TT_TGETSTR: { str = SLtt_tgetstr (buf); return ret_string(port, str); } case TT_TGETNUM: { x = SLtt_tgetnum (buf); return ret_int(port, x); } case TT_TGETFLAG: { x = SLtt_tgetflag (buf); return ret_int(port, x); } case TT_TIGETENT: { str = SLtt_tigetent (buf); return ret_string(port, str); } case TT_TIGETSTR: { return 0; } case TT_TIGETNUM: { return 0; } case SLTT_GET_COLOR_OBJECT: { x = get_int32(buf); buf+=4; y = SLtt_get_color_object (x); return ret_int(port, y); return 0; } case TT_SET_COLOR_OBJECT: { x = get_int32(buf); buf+=4; y = get_int32(buf); buf+=4; SLtt_set_color_object (x, y); return 0; } case TT_SET_COLOR: { x = get_int32(buf); buf+=4; t1 = buf; t2 = buf + (strlen(t1) + 1); t3 = buf + (strlen(t1) + strlen(t2) + 2); SLtt_set_color (x, t1, t2, t3); return 0; } case TT_SET_MONO: { x = get_int32(buf); buf+=4; t1 = buf; buf += strlen(t1) + 1; y = get_int32(buf); SLtt_set_mono (x, t1, y); return 0; } case TT_ADD_COLOR_ATTRIBUTE: { x = get_int32(buf); buf+=4; y = get_int32(buf); buf+=4; SLtt_add_color_attribute (x, y); return 0; } case TT_SET_COLOR_FGBG: { x = get_int32(buf); buf+=4; y = get_int32(buf); buf+=4; z = get_int32(buf); buf+=4; SLtt_set_color_fgbg (x, y, z); return 0; } case ISATTY: { x = get_int32(buf); buf+=4; return ret_int(port, isatty(x)); } case EFORMAT: { fprintf(stderr, "%s", buf); fflush(stderr); return 0; } case SIGNAL: { x = get_int32(buf); buf+=4; SLsignal(x_to_sig(x), sig_handler); return 0; } case SIGNAL_CHECK: { /* polled */ if (signal_cought != 0) signal_cought = 0; return ret_int(port, signal_cought); } default: return 0; } }
/* * Hack -- see below */ static void init_pair(int index, char *foreground, char *background) { SLtt_set_color(index, "", foreground, background); }
void newtSetColors(struct newtColors colors) { SLtt_set_color(NEWT_COLORSET_ROOT, "", colors.rootFg, colors.rootBg); SLtt_set_color(NEWT_COLORSET_BORDER, "", colors.borderFg, colors.borderBg); SLtt_set_color(NEWT_COLORSET_WINDOW, "", colors.windowFg, colors.windowBg); SLtt_set_color(NEWT_COLORSET_SHADOW, "", colors.shadowFg, colors.shadowBg); SLtt_set_color(NEWT_COLORSET_TITLE, "", colors.titleFg, colors.titleBg); SLtt_set_color(NEWT_COLORSET_BUTTON, "", colors.buttonFg, colors.buttonBg); SLtt_set_color(NEWT_COLORSET_ACTBUTTON, "", colors.actButtonFg, colors.actButtonBg); SLtt_set_color(NEWT_COLORSET_CHECKBOX, "", colors.checkboxFg, colors.checkboxBg); SLtt_set_color(NEWT_COLORSET_ACTCHECKBOX, "", colors.actCheckboxFg, colors.actCheckboxBg); SLtt_set_color(NEWT_COLORSET_ENTRY, "", colors.entryFg, colors.entryBg); SLtt_set_color(NEWT_COLORSET_LABEL, "", colors.labelFg, colors.labelBg); SLtt_set_color(NEWT_COLORSET_LISTBOX, "", colors.listboxFg, colors.listboxBg); SLtt_set_color(NEWT_COLORSET_ACTLISTBOX, "", colors.actListboxFg, colors.actListboxBg); SLtt_set_color(NEWT_COLORSET_TEXTBOX, "", colors.textboxFg, colors.textboxBg); SLtt_set_color(NEWT_COLORSET_ACTTEXTBOX, "", colors.actTextboxFg, colors.actTextboxBg); SLtt_set_color(NEWT_COLORSET_HELPLINE, "", colors.helpLineFg, colors.helpLineBg); SLtt_set_color(NEWT_COLORSET_ROOTTEXT, "", colors.rootTextFg, colors.rootTextBg); SLtt_set_color(NEWT_COLORSET_EMPTYSCALE, "", "white", colors.emptyScale); SLtt_set_color(NEWT_COLORSET_FULLSCALE, "", "white", colors.fullScale); SLtt_set_color(NEWT_COLORSET_DISENTRY, "", colors.disabledEntryFg, colors.disabledEntryBg); SLtt_set_color(NEWT_COLORSET_COMPACTBUTTON, "", colors.compactButtonFg, colors.compactButtonBg); SLtt_set_color(NEWT_COLORSET_ACTSELLISTBOX, "", colors.actSelListboxFg, colors.actSelListboxBg); SLtt_set_color(NEWT_COLORSET_SELLISTBOX, "", colors.selListboxFg, colors.selListboxBg); }