NCURSES_SP_NAME(beep) (NCURSES_SP_DCL0) { int res = ERR; T((T_CALLED("beep(%p)"), (void *) SP_PARM)); #ifdef USE_TERM_DRIVER if (SP_PARM != 0) res = CallDriver_1(SP_PARM, doBeepOrFlash, TRUE); #else /* FIXME: should make sure that we are not in altchar mode */ if (cur_term == 0) { res = ERR; } else if (bell) { TPUTS_TRACE("bell"); res = putp(bell); _nc_flush(); } else if (flash_screen) { TPUTS_TRACE("flash_screen"); res = putp(flash_screen); _nc_flush(); } #endif returnCode(res); }
NCURSES_SP_NAME(napms) (NCURSES_SP_DCLx int ms) { (void) SP_PARM; T((T_CALLED("napms(%d)"), ms)); #ifdef USE_TERM_DRIVER CallDriver_1(SP_PARM, nap, ms); #else /* !USE_TERM_DRIVER */ #if HAVE_NANOSLEEP { struct timespec request, remaining; request.tv_sec = ms / 1000; request.tv_nsec = (ms % 1000) * 1000000; while (nanosleep(&request, &remaining) == -1 && errno == EINTR) { request = remaining; } } #else _nc_timed_wait(0, 0, ms, (int *) 0 EVENTLIST_2nd(0)); #endif #endif /* !USE_TERM_DRIVER */ returnCode(OK); }
NCURSES_SP_NAME(flash) (NCURSES_SP_DCL0) { int res = ERR; T((T_CALLED("flash(%p)"), (void *) SP_PARM)); #ifdef USE_TERM_DRIVER if (SP_PARM != 0) res = CallDriver_1(SP_PARM, doBeepOrFlash, FALSE); #else if (HasTerminal(SP_PARM)) { /* FIXME: should make sure that we are not in altchar mode */ if (flash_screen) { res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen); } else if (bell) { res = NCURSES_PUTP2_FLUSH("bell", bell); } } #endif returnCode(res); }
NCURSES_SP_NAME(has_key) (SCREEN *sp, int keycode) { T((T_CALLED("has_key(%p, %d)"), (void *) sp, keycode)); returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, kyExist, keycode) : FALSE); }
/* * Write the soft labels to the soft-key window. */ static void slk_intern_refresh(SCREEN *sp) { int i; int fmt; SLK *slk; int numlab; if (sp == 0) return; slk = sp->_slk; fmt = sp->slk_format; numlab = NumLabels; if (slk->hidden) return; for (i = 0; i < slk->labcnt; i++) { if (slk->dirty || slk->ent[i].dirty) { if (slk->ent[i].visible) { if (numlab > 0 && SLK_STDFMT(fmt)) { #ifdef USE_TERM_DRIVER CallDriver_2(sp, hwlabel, i + 1, slk->ent[i].form_text); #else if (i < num_labels) { TPUTS_TRACE("plab_norm"); putp(TPARM_2(plab_norm, i + 1, slk->ent[i].form_text)); } #endif } else { if (fmt == 4) slk_paint_info(slk->win); wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x); if (sp->_slk) { (void) wattrset(slk->win, AttrOf(sp->_slk->attr)); } waddstr(slk->win, slk->ent[i].form_text); /* if we simulate SLK's, it's looking much more natural to use the current ATTRIBUTE also for the label window */ (void) wattrset(slk->win, WINDOW_ATTRS(StdScreen(sp))); } } slk->ent[i].dirty = FALSE; } } slk->dirty = FALSE; if (numlab > 0) { #ifdef USE_TERM_DRIVER CallDriver_1(sp, hwlabelOnOff, slk->hidden ? FALSE : TRUE); #else if (slk->hidden) { TPUTS_TRACE("label_off"); putp(label_off); } else { TPUTS_TRACE("label_on"); putp(label_on); } #endif } }