void
prnt_Paged_Menu(char **menu)
{
    int done = FALSE;
    int lines =	(PROMPT_LINE-TOP_SCROLL_WIN);
    if (! tty) {
	for (; *menu != NULL; menu++)
	    bu_log("%s\n", *menu);
	return;
    }
    for (; *menu != NULL && ! done;) {
	for (; lines > 0 && *menu != NULL; menu++, --lines)
	    prnt_Scroll("%-*s\n", co, *menu);
	if (*menu != NULL)
	    done = ! do_More(&lines);
	prnt_Prompt("");
    }
    (void) fflush(stdout);
    return;
}
示例#2
0
文件: lgt_db.c 项目: cogitokat/brlcad
/*	l g t _ P r i n t _ D b ( )
	Print light source database entry.
*/
int
lgt_Print_Db(int id)
{
    Lgt_Source	*entry;
    int		stop;
    int			lines =	(PROMPT_LINE-TOP_SCROLL_WIN);
    if ( id >= lgt_db_size )
	return	0;
    else
	if ( id < 0 )
	{
	    stop = lgt_db_size - 1;
	    id = 0;
	}
	else
	    stop = id;
    for (; id <= stop; id++, lines-- )
    {
	entry = &lgts[id];
	if ( lines <= 0 && ! do_More( &lines ) )
	    break;
	prnt_Scroll( "\n" );
	if ( --lines <= 0 && ! do_More( &lines ) )
	    break;
	prnt_Scroll( "LIGHT SOURCE [%d] %s\n", id, entry->name );
	if ( --lines <= 0 && ! do_More( &lines ) )
	    break;
	prnt_Scroll( "       manual override\t(%s)\n", entry->over ? "ON" : "OFF" );
	if ( entry->stp == SOLTAB_NULL || entry->over )
	{
	    if ( --lines <= 0 && ! do_More( &lines ) )
		break;
	    prnt_Scroll( "       azimuth\t\t(%g)\n", entry->azim*RAD2DEG );
	    if ( --lines <= 0 && ! do_More( &lines ) )
		break;
	    prnt_Scroll( "       elevation\t(%g)\n", entry->elev*RAD2DEG );
	}
	if ( --lines <= 0 && ! do_More( &lines ) )
	    break;
	prnt_Scroll( "       distance\t\t(%g)\n", entry->dist );
	if ( --lines <= 0 && ! do_More( &lines ) )
	    break;
	prnt_Scroll( "       location\t\t<%g,%g,%g>\n",
		     entry->loc[X], entry->loc[Y], entry->loc[Z]
	    );
	if ( --lines <= 0 && ! do_More( &lines ) )
	    break;
	prnt_Scroll( "       gaussian beam\t(%s)\n", entry->beam ? "ON" : "OFF" );
	if ( entry->beam )
	{
	    if ( --lines <= 0 && ! do_More( &lines ) )
		break;
	    prnt_Scroll( "       beam radius\t(%g)\n", entry->radius );
	}
	if ( --lines <= 0 && ! do_More( &lines ) )
	    break;
	prnt_Scroll( "       intensity\t(%g)\n", entry->energy );
	if ( --lines <= 0 && ! do_More( &lines ) )
	    break;
	prnt_Scroll( "       color\t\t(%d %d %d)\n",
		     entry->rgb[0], entry->rgb[1], entry->rgb[2]
	    );
    }
    (void) fflush( stdout );
    return	1;
}