/****************************************/ /* putterm valdes 8 31 82 */ /* */ /* Terminal io subroutines */ /****************************************/ #include "focas1.h" #include "review.h" #include static char strings[2500]; static char *ptr[25]; /* Set up terminal display windows for REVIEW */ terminit () { termopen (); win0 = newwin (2, 80, 2, 20);/* Catalog name and date */ win2 = newwin (5, 80, 5, 0); win6 = newwin (1, 80, 10, 0); win5 = newwin (1, 80, 11, 0);/* Filter options */ win3 = newwin (3, 80, 12, 0); win1 = newwin (8, 80, 15, 0); } /* Open terminal windows */ termopen () { int termclose (); initscr (); erase (); } /* Close terminal windows */ termclose () { delwin (win0); delwin (win2); delwin (win6); delwin (win5); delwin (win3); delwin (win1); endwin (); } /* Initialize window */ chwin (win, label) WINDOW *win; char *label; { werase (win); mvwaddstr (win, 0, 0, label); wrefresh (win); } /* Write object record */ putstatus (win, o) WINDOW *win; struct objrec *o; { int i; float r2; char flags[11]; float intmag (); if (ptr[0] == 0) for (i = 0; i < 25; i++) ptr[i] = strings + i * 100; flags[0] = o->eflgs & FRCD ? 'F' : '-'; flags[1] = o->eflgs & ATTN ? 'A' : '-'; flags[2] = o->eflgs & SNGL ? 'S' : '-'; flags[3] = o->eflgs & SIZE ? 'L' : '-'; flags[4] = o->eflgs & EDGE ? 'B' : '-'; flags[5] = o->eflgs & PEAK ? 'P' : '-'; flags[6] = o->eflgs & CLSF ? 'C' : '-'; flags[7] = o->eflgs & DARK ? 'D' : '-'; flags[8] = o->eflgs & REFP ? 'R' : '-'; flags[9] = o->eflgs & EVAL ? 'E' : '-'; flags[10] = 0; sprintf (ptr[0], "%5d.%-10d", o->entnum, o->subent); sprintf (ptr[1], "Class: %-5s", o->class); sprintf (ptr[4], "x: %-8.1f", o->xc); sprintf (ptr[5], "y: %-8.1f", o->yc); sprintf (ptr[16], "Area = %-6d", o->area); sprintf (ptr[19], "Flags: %-10s", flags); if (o->eflgs & EVAL) { sprintf (ptr[6], "RA = %-11.4f", o->ra); sprintf (ptr[7], "DEC = %-11.4f", o->dec); sprintf (ptr[8], "Core = %-6.2f", intmag (o->Lc)); sprintf (ptr[9], "Aperture = %-6.2f", intmag (o->Lfca)); sprintf (ptr[10], "Isophotal = %-6.2f", o->mag); sprintf (ptr[11], "Total = %-6.2f", intmag (o->Ltotal)); sprintf (ptr[12], "r1 = %-7.2f", o->ir1>0.?o->ir1:0.); r2 = o->ixx + o->iyy; sprintf (ptr[13], "r2 = %-7.2f", sqrt (r2>0.?r2:0.)); sprintf (ptr[14], "r3 = %-7.2f", pow (o->ir3>0.?o->ir3:0.,.333333)); sprintf (ptr[15], "r4 = %-7.2f", pow (o->ir4>0.?o->ir4:0.,.25)); sprintf (ptr[17], "Sky = %-6.2f", intmag (o->sbr)); sprintf (ptr[18], "Isophote = %-6.2f", intmag (o->ispht)); sprintf (ptr[2], "Scale = %-6.2f", o->scale); sprintf (ptr[3], "Fraction = %-6.2f", o->frac); } else { sprintf (ptr[6], "RA = %-11s", ""); sprintf (ptr[7], "DEC = %-11s", ""); sprintf (ptr[8], "Core = %-6s", ""); sprintf (ptr[9], "Aperture = %-6s", ""); sprintf (ptr[10], "Isophotal = %-6s", ""); sprintf (ptr[11], "Total = %-6s", ""); sprintf (ptr[12], "r1 = %-7s", ""); sprintf (ptr[13], "r2 = %-7s", ""); sprintf (ptr[14], "r3 = %-7s", ""); sprintf (ptr[15], "r4 = %-7s", ""); sprintf (ptr[17], "Sky = %-6s", ""); sprintf (ptr[18], "Isophote = %-6s", ""); sprintf (ptr[2], "Scale = %-6s", ""); sprintf (ptr[3], "Fraction = %-6s", ""); } ptr[20][0] = 0; fillwin (win, ptr); } /*Write strings in columns*/ fillwin (win, strgs) WINDOW *win; char *strgs[]; { int i, j, len, width, line, col; werase (win); width = 0; for (i = 0; (len = strlen (strgs[i])) != 0; i++) { if (len > 79) { strgs[i][79] = 0; len = strlen (strgs[i]); } if (len > width) width = len; } width++; for (line = 0, j = 0; j < i; line++) for (col = 0; (j < i) && (col <= 80 - width); col += width) mvwaddstr (win, line, col, strgs[j++]); wrefresh (win); }