home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume24 / chemtab / part02 / vdata.c < prev    next >
C/C++ Source or Header  |  1991-03-12  |  4KB  |  171 lines

  1. /*
  2.  * chemtab - a periodic table data base (C) 1990 Jim King (pulsar@lsrhs)
  3.  *
  4.  * vdata.c    View current data
  5.  */
  6.  
  7. #include <stdio.h>
  8. #include <curses.h>
  9. #include "variables.h"
  10. #include "tune.h"
  11. #include "element.h"
  12. #include "windows.h"
  13. #include "undefs.h"
  14.  
  15. /*
  16.  * topline() - no input
  17.  *
  18.  * purpose:    sets up the topline of user info.
  19.  */
  20. topline()
  21. {
  22.     mvwaddstr(graph, 0, 0, "Name");
  23.     mvwaddstr(graph, 0, 13, "Sy");
  24.     mvwaddstr(graph, 0, 18, "Z");
  25.     mvwaddstr(graph, 0, 23, "MASS");
  26.     mvwaddstr(graph, 0, 30, "FM");
  27.     mvwaddstr(graph, 0, 33, "R");
  28.     mvwaddstr(graph, 0, 35, "V");
  29.     mvwaddstr(graph, 0, 37, "Melt");
  30.     mvwaddstr(graph, 0, 42, "Boil");
  31.     mvwaddstr(graph, 0, 47, "FIO");
  32.     mvwaddstr(graph, 0, 51, "Year");
  33.     mvwaddstr(graph, 0, 56, "ENG");
  34.     mvwaddstr(graph, 0, 60, "SPHT");
  35.     mvwaddstr(graph, 0, 66, "DENS");
  36.     mvwaddstr(graph, 0, 71, "ARAD");
  37.     wrefresh(graph);
  38. }
  39.  
  40. /*
  41.  * vdata() - no input
  42.  *
  43.  * purpose:    show all information on all selected elements to user
  44.  */
  45. vdata()
  46. {
  47.     struct elem *tmp;
  48.     int    n = 0, flg = 0, factor = 1, l, m, i, j, sorted;
  49.  
  50.     if (gtot == -1) {
  51.         mvwaddstr(mn, 15, 0, "Please choose some selection characteristics before you do this.");
  52.         wrefresh(mn);
  53.         sleep(2);
  54.         wmove(mn, 15, 0); wclrtoeol(mn);
  55.         return(0);
  56.     }
  57.  
  58.     wclear(mn);
  59.     wrefresh(mn);
  60.  
  61.     wclear(graph);
  62.     wrefresh(graph);
  63.     if (gtot == 0) {
  64.         mvwaddstr(graph, 5, 0, "No elements met the requirements you set.");
  65.         wrefresh(graph);
  66.         spc();
  67.         clear();
  68.         refresh();
  69.         return(0);
  70.     }
  71.     if (gtot > 22)
  72.         factor++;
  73.     if (gtot > 44)
  74.         factor++;
  75.     if (gtot > 66)
  76.         factor++;
  77.     if (gtot > 88)
  78.         factor++;
  79.     clear();
  80.     refresh();
  81.     for (i = 0; i < factor; i++) {
  82.         topline();
  83.         for (j = 22*i+1; j < 22*i+23; j++) {
  84.             if (j > gtot)
  85.                 break;
  86.             n = sub1[j];
  87.             for (tmp = e; n != tmp->anum; tmp = tmp->next) ;
  88.             mvwaddstr(graph, j-22*i, 0, tmp->name);
  89.             wmove(graph, j-22*i, 13); wprintw(graph, "%s", tmp->sym);
  90.             wmove(graph, j-22*i, 18); wprintw(graph, "%-d", tmp->anum);
  91.             wmove(graph, j-22*i, 22); wprintw(graph, "%-3.3f", tmp->amass);
  92.             wmove(graph, j-22*i, 30); wprintw(graph, "%-d", tmp->fam);
  93.             wmove(graph, j-22*i, 33); wprintw(graph, "%-d", tmp->row);
  94.             if (tmp->val == VAL) {
  95.                 wstandout(graph);
  96.                 mvwaddstr(graph, j-22*1, 35, "X");
  97.                 wstandend(graph);
  98.             } else {
  99.                 wmove(graph, j-22*i, 35); wprintw(graph, "%d", tmp->val);
  100.             }
  101.             if (tmp->melt == MEL) {
  102.                 wstandout(graph);
  103.                 mvwaddstr(graph, j-22*i, 37, "N/F");
  104.                 wstandend(graph);
  105.             } else {
  106.                 wmove(graph, j-22*i, 37); wprintw(graph, "%-d", tmp->melt);
  107.             }
  108.             if (tmp->boil == BOI) {
  109.                 wstandout(graph);
  110.                 mvwaddstr(graph, j-22*i, 42, "N/F");
  111.                 wstandend(graph);
  112.             } else {
  113.                 wmove(graph, j-22*i, 42); wprintw(graph, "%-d", tmp->boil);
  114.             }
  115.             if (tmp->fio == FIO) {
  116.                 wstandout(graph);
  117.                 mvwaddstr(graph, j-22*i, 47, "N/F");
  118.                 wstandend(graph);
  119.             } else {
  120.                 wmove(graph, j-22*i, 47); wprintw(graph, "%3d", tmp->fio);
  121.             }
  122.             if (tmp->year == YEA) {
  123.                 wstandout(graph);
  124.                 mvwaddstr(graph, j-22*i, 51, "B.C.");
  125.                 wstandend(graph);
  126.             } else {
  127.                 wmove(graph, j-22*i, 51); wprintw(graph, "%-d", tmp->year);
  128.             }
  129.             if (tmp->eneg == ENG) {
  130.                 wstandout(graph);
  131.                 mvwaddstr(graph, j-22*i, 56, "N/F");
  132.                 wstandend(graph);
  133.             } else {
  134.                 wmove(graph, j-22*i, 56); wprintw(graph, "%1.1f", tmp->eneg);
  135.             }
  136.             if (tmp->spht == SPHT) {
  137.                 wstandout(graph);
  138.                 mvwaddstr(graph, j-22*i, 60, "N/F");
  139.                 wstandend(graph);
  140.             } else {
  141.                 wmove(graph, j-22*i, 60); wprintw(graph, "%1.3f", tmp->spht);
  142.             }
  143.             if (tmp->dens == DENS) {
  144.                 wstandout(graph);
  145.                 mvwaddstr(graph, j-22*i, 66, "N/F");
  146.                 wstandend(graph);
  147.             } else {
  148.                 wmove(graph, j-22*i, 66);
  149.                 if (tmp->dens > 9.99)
  150.                     wprintw(graph, "%2.1f", tmp->dens);
  151.                 else
  152.                     wprintw(graph, "%1.2f", tmp->dens);
  153.             }
  154.             if (tmp->arad == ARD) {
  155.                 wstandout(graph);
  156.                 mvwaddstr(graph, j-22*i, 71, "N/F");
  157.                 wstandend(graph);
  158.             } else {
  159.                 wmove(graph, j-22*i, 71); wprintw(graph, "%1.2f", tmp->arad);
  160.             }
  161.             wrefresh(graph);
  162.         }
  163.         spc();
  164.         capture(graph, 0, 1);
  165.         wclear(graph);
  166.     }
  167.     clear();
  168.     refresh();
  169.     return(0);
  170. }
  171.