Beispiel #1
0
int hpa(int argc, char *argv[], int retc, char *retv[])
/*************/
{
  double plotchar = 0.6;

  (void) argc;
  (void) argv;
  (void) retc;
  (void) retv;
  if (setplotter()) return(ERROR);
  if (raster)
  {
    Werrprintf("hpa is not supported on raster plotters");
    return(COMPLETE);
  }
  charsize(plotchar);
  color(GREEN);
  if (debug1)
    Wscrprintf("ppmm= %g ymultiplier= %d plot= %d raster= %d, mnumxpnts= %d\n",
                ppmm,ymultiplier,plot,raster,mnumxpnts);

/*  Copy the display parameters from the current group to the
    processed group so the current values will be plotted.	*/

  P_copygroup( CURRENT, PROCESSED, G_DISPLAY );

  plotparam("tn",      COL1,   ROW1, 6,0);
  plotparam("sw",      COL1,   ROW2, 8,1);
  plotparam("at",      COL1,   ROW3, 8,3);
  plotparam("pw",      COL1,   ROW4, 8,1);
  plotparam("sfrq",    COL2,   ROW1, 8,4);
  plotparam("tof",     COL2,   ROW2, 8,1);
  plotparam("d1",      COL2,   ROW3, 8,3);
  plotparam("ct",      COL2+2, ROW4, 8,0);
  plotparam("dn",      COL3,   ROW1, 6,0);
  plotparam("dm",      COL3,   ROW2, 6,0);
  plotparam("dmm",     COL3+7, ROW3, 6,0);
  plotparam("pp",      COL3,   ROW4, 8,1);
  plotparam("dof",     COL4,   ROW1, 8,1);
  plotparam("dlp",     COL4,   ROW2, 8,0);
  plotparam("dmf",     COL4,   ROW3, 8,0);
  plotparam("dpwr",    COL4,   ROW4, 8,0);
  plotparam("fn",      COL5,   ROW1, 8,0);
  plotparam("lb",      COL5,   ROW2, 8,3);
  plotparam("wp",      COL5+2, ROW3, 8,1);
  plotparam("gf",      COL6,   ROW2, 8,3);
  plotparam("sp",      COL7-6, ROW3, 8,1);
  plotparam("seqfil",  COL8,   ROW1, 6,0);
  plotparam("temp",    COL8-2, ROW3, 8,1);
  plotparam("solvent", COL8,   ROW4, 8,0);
  plotparam("file",    COL9,   ROW2, 8,0);
  plotparam("date",    COL9,   ROW3, 8,0);
  plotparam("h1freq",  COL9,   ROW4, 6,0);
  plottext(295,ROW2);
  endgraphics();
  return(COMPLETE);
}
Beispiel #2
0
int dpf(int argc, char *argv[], int retc, char *retv[])
/*************/
{ int groups;
  int noisemult_p = 0;
  int numlines,maxlines;
  int i;
  int donll = TRUE;
  int noneg = FALSE;
  int top = FALSE;
  char command[128];
  char name[64];

  (void) retc;
  (void) retv;
  Wturnoff_buttons();
  leader_len = 20.0;
  axish = FALSE;
  axisp = FALSE;
  axisp_freq = 1.0;
  if (argc > 1)
  {
    for (i=1; i<argc; i++)
    {
      if (strcmp(argv[i],"off") == 0) {
	set_dpf_flag(0,"");
        redo_dpf_dpir();
	RETURN;
      } else if (strcmp(argv[i],"turnoff") == 0) {
        set_dpf_flag(0,"");
        RETURN;
      } else if (strcmp(argv[i],"noll") == 0) donll = FALSE;
      else if (strcmp(argv[i],"pos") == 0) noneg = TRUE;
      else if (strcmp(argv[i],"top") == 0) top = TRUE;
      else if (strcmp(argv[i],"axish") == 0) axish = TRUE;
      else if (strcmp(argv[i],"axisp") == 0)
      {
         axisp = TRUE;
         P_getreal(PROCESSED,"sfrq",&axisp_freq,1);
      }
      else if (strcmp(argv[i],"leader") == 0)
      {
         if (((i+1) < argc) && isReal(argv[i+1]) )
         {
            i++;
            leader_len = stringReal(argv[i]);
         }
      }
      else if (isReal(argv[i])) noisemult_p = i;
    }
  }
  if (donll) /* if not donll, dpf uses last previous line listing */
  {
    if (noisemult_p != 0)
    {
      if (noneg)
	strcpy(command,"nll('dpf','pos',");
      else
	strcpy(command,"nll('dpf',");
      strcat(command,argv[noisemult_p]);
      strcat(command,")\n");
    }
    else
    {
      if (noneg)
	strcpy(command,"nll('dpf','pos')\n");
      else
	strcpy(command,"nll('dpf')\n");
    }
    execString(command);
  }

  if(P_getreal(CURRENT, "dpf_sc2",&dpf_sc2,1)) dpf_sc2=sc2;
  if(P_getreal(CURRENT, "dpf_wc2",&dpf_wc2,1)) dpf_wc2=wc2;
  if(dpf_wc2>wc2) dpf_wc2=wc2;
  if(dpf_sc2<sc2) dpf_sc2=sc2;

  /* if (init2d(1,1)) return(ERROR); */
  scale = vs;
  if (normflag)
    scale *= normalize;
  /*   Wscrprintf("normflag=%d normalize=%g\n",normflag,normalize); */
  plot = (argv[0][0] == 'p');

/*select_init(get_rev, dis_setup, fdimname, doheaders, docheck2d, dospecpars,
            	doblockpars, dophasefile)*/
/*if (init2d(0,plot + 1)) return(ERROR); */
  if (select_init(
	0,
	plot+1,
	NO_FREQ_DIM,
	NO_HEADERS,
	DO_CHECK2D,
	DO_SPECPARS,
	NO_BLOCKPARS,
	NO_PHASEFILE
     ))
      return(ERROR);
  if ((numlines = getlines(noneg)) == 0) RETURN;
  if (!plot)
  {
    setwindows();
    dispcalib = (float) (mnumypnts-ymin) / (float) wc2max;

    getOptName(PEAK_MARK,name);
    set_line_thickness(name);
    getOptName(PEAK_NUM,name);
    set_graphics_font(name);
    
  }
  else
  { 
    double size = G_getCharSize("PeakNum");
    charsize(size);
    //charsize((double)0.7);
    dispcalib = ppmm / ymultiplier;
  }
  CharSize = ycharpixels + ycharpixels / 5;
  maxlines = dnpnt / CharSize;

  if (maxlines < numlines)
    remove_lines(maxlines,&numlines);
  if (numlines > 0)
  {
    //color(PARAM_COLOR);
    color(PEAK_MARK_COLOR);
    groups = groupcheck(numlines);
    if (debug1)
    {
      Wscrprintf("index high low newhigh newlow highlimit lowlimit\n");
      for (i = 1; i <= groups; i++)
        Wscrprintf("%d %d %d %d %d %d %d\n",i,ga[i].high,ga[i].low,
                   ga[i].newhigh,ga[i].newlow,ga[i].highlimit,ga[i].lowlimit);
    }
    label_proc = (top) ? (PFV) label_top : (PFV) label_bot;
    for (i = 1; i <= groups; i++)
      label_group(i);

    if (!plot) { // construct the command, and set the flag and command
      char cmd[64];
      if(argc > 1) {
        if (isReal(argv[1]) ) sprintf(cmd,"%s(%s",argv[0],argv[1]);
	else sprintf(cmd,"%s('%s'",argv[0],argv[1]);
	for(i=2;i<argc;i++)
        {
           if (isReal(argv[i]) )
           {
	      strcat(cmd,",");
              strcat(cmd,argv[i]);
           }
	   else
           {
	      strcat(cmd,",'");
              strcat(cmd,argv[i]);
	      strcat(cmd,"'");
           }
	}
	strcat(cmd,")\n");
      } else sprintf(cmd,"%s\n",argv[0]);
      Wsetgraphicsdisplay("ds");
      set_dpf_flag(1, cmd);
    }
  }
  releaseAllWithId("dpf");
  endgraphics();
  disp_status("        ");
  set_graphics_font("Default");
  RETURN;
}
Beispiel #3
0
int dpir(int argc, char *argv[], int retc, char *retv[])
/*************/
{ int groups;
  int resets;
  int i, min, ysize;
  char name[64];
  char tmpstr[MAXSTR];

  (void) retc;
  (void) retv;

  if (argc > 1 && strcmp(argv[1],"off") == 0) {
	set_dpir_flag(0,"");
        redo_dpf_dpir();
	RETURN;
  } else if (argc > 1 && strcmp(argv[1],"turnoff") == 0) {
        set_dpir_flag(0,"");
        RETURN;
  }

  vertflag=0;
  if ( ! P_getstring(GLOBAL, "integralOrient", tmpstr, 1, MAXSTR) )
  {
     vertflag = (strcmp(tmpstr,"vert") == 0);
  }
  if (argc > 1 && strcmp(argv[1],"vert") == 0) {
      vertflag=1;
  }

  if(argc == 1 || strcmp(argv[1],"noli") != 0) {
     execString("nli\n");
  }
  if (check_int(&resets))
  {
    Werrprintf("intmod must not be set to 'full'");
    ABORT;
  }
  if (resets <= 1)
  {
    Werrprintf("no integral resets are defined");
    ABORT;
  }
  plot = (argv[0][0] == 'p');
  if (select_init(
	0,
	plot+1,
	NO_FREQ_DIM,
	NO_HEADERS,
	DO_CHECK2D,
	DO_SPECPARS,
	NO_BLOCKPARS,
	NO_PHASEFILE
     )) {
      ABORT;
  }

  if(strlen(argv[0]) > 4 && argv[0][4] == 'N') {
     normInt = 1;
  } else if(strlen(argv[0]) > 3 && argv[0][3] == 'N') {
     normInt = 1;
  }

  if ((groups = getregions(resets)) == 0) {
	ABORT;
  }

  min=mnumxpnts; 
  for (i = 1; i <= groups; i++) {
    if(gb[i].lowlimit <= 0 || gb[i].highlimit <= 0
	|| gb[i].lowlimit >= (mnumxpnts-xcharpixels)
	|| gb[i].highlimit >= (mnumxpnts-xcharpixels)) continue;
    if((gb[i].highlimit-gb[i].lowlimit) < min) 
	min = gb[i].highlimit-gb[i].lowlimit;
  }
  if(min != 0 && min < 3*xcharpixels) ysize = 3; else ysize=2;
    
  if (!plot)
  {
    setwindows();
    dispcalib = (float) (mnumypnts-ymin) / (float) wc2max;
    CharSize = ycharpixels + ycharpixels / 5;

    getOptName(INTEG_MARK,name);
    set_line_thickness(name);
    getOptName(INTEG_NUM,name);
    set_graphics_font(name);
  }
  else
  { 
    double size = G_getCharSize("IntegralNum");
    charsize(size);
    //charsize((double)0.7);
    dispcalib = ppmm / ymultiplier;
    CharSize = ycharpixels;
  }

  if (showPlotBox()) dpir_off=0.0;
  else dpir_off=9.0;

  if(dispcalib>0) {
    int size= 12;
    G_getSize("IntegralNum", &size);
    i = (int)(vp*dispcalib); 
    if (vertflag && i < 4*size)
    {
      char cmd[64];
      i = (int)(4*size/dispcalib)+1;
      if(vertflag) sprintf(cmd,"vp=%d ds %s('vert')\n",i,argv[0]);
      else sprintf(cmd,"vp=%d ds %s\n",i,argv[0]);
      if(!plot) execString(cmd); 
      //Werrprintf("pir requires minimum vp of %d",i);
      RETURN;
    } else if (i < 3*size)
    {
      char cmd[64];
      i = (int)(3*size/dispcalib)+1;
      if(vertflag) sprintf(cmd,"vp=%d ds %s('vert')\n",i,argv[0]);
      else sprintf(cmd,"vp=%d ds %s\n",i,argv[0]);
      if(!plot) execString(cmd); 
      //Werrprintf("pir requires minimum vp of %d",i);
      RETURN;
    }
  } else {
    if (vp < 30)
    {
      char cmd[64];
      i=30;
      if(vertflag) sprintf(cmd,"vp=%d ds %s('vert')\n",i,argv[0]);
      else sprintf(cmd,"vp=%d ds %s\n",i,argv[0]);
      if(!plot) execString(cmd); 
      //Werrprintf("pir requires minimum vp of 30");
      RETURN;
    }
  }

  //color(PARAM_COLOR);
  color(INTEG_MARK_COLOR);
  if (debug1)
  {
    Wscrprintf("dispcalib= %g, dfpnt2= %d, CharSize= %d, bottom= %d\n",
        dispcalib,dfpnt2,CharSize,
        dfpnt2 - CharSize + (int) (dispcalib * (vp - dpir_off - 5.0)));
    Wscrprintf("index highlimit lowlimit below\n");
    for (i = 1; i <= groups; i++)
      Wscrprintf("%d %d %d %s\n",i,gb[i].highlimit,gb[i].lowlimit,
                  (gb[i].below) ? "true" : "false");
  }
  if(vertflag) {
    for (i = 1; i <= groups; i++) label_pirv(i);
  } else {
    for (i = 1; i <= groups; i++) label_pir(i, ysize);
  }
  if (!plot) {
      char cmd[64];
      if(argc > 1) {
        if (isReal(argv[1]) ) sprintf(cmd,"%s(%s",argv[0],argv[1]);
	else sprintf(cmd,"%s('%s'",argv[0],argv[1]);
	for(i=2;i<argc;i++)
        {
           if (isReal(argv[i]) )
           {
	      strcat(cmd,",");
              strcat(cmd,argv[i]);
           }
	   else
           {
	      strcat(cmd,",'");
              strcat(cmd,argv[i]);
	      strcat(cmd,"'");
           }
	}
	strcat(cmd,")\n");
      } else sprintf(cmd,"%s\n",argv[0]);
      Wsetgraphicsdisplay("ds");
      set_dpir_flag(1,cmd);
  }
  releaseAllWithId("dpir");
  endgraphics();
  disp_status("        ");
  set_graphics_font("Default");
  RETURN;
}
Beispiel #4
0
void input_line_event(EVENT_MSG *msg,OBJREC *o)
  {
   static int cursor=0;
   int *len,*start,slen;
   char *c;
   static char *save;
   static char clear_kontext;

   len=(int *)o->userptr;
   start=len+1;
   c=(char *)o->data;
   slen=strlen(c);
   switch (msg->msg)
     {
     case E_GET_FOCUS:cursor=0;save=(char *)getmem(*len+1);
                      strcpy(save,c);clear_kontext=1;break;
     case E_LOST_FOCUS:cursor=0;*start=0;free(save);redraw_object(o);break;
     case E_CURSOR_TICK:
        {
        int xpos,i,j=-1,d;

        do
           {
           xpos=0;j++;
           for (i=*start;i<cursor;i++)
              {
              if ((d=charsize(curfont,c[i]) & 0xff)==0) xpos+=1;
              else xpos+=d;
              }
           if (xpos>=o->xs) (*start)+=1;
           if (xpos==0) (*start)-=1;
           if (*start<0) *start=0;
           }
        while ((xpos==0 || xpos>=o->xs)&& cursor);
        if (j) redraw_object(o);
        xor_rectangle(o->locx+xpos,o->locy,1,o->ys);
        };break;
     case E_MOUSE:
        {
        MS_EVENT *ms;int msx;

        ms=get_mouse(msg);
        msx=ms->x-o->locx;
        if (ms->event_type & 2)
           {
           int xpos;

           xpos=0;
           for (cursor=*start;cursor<slen;cursor++)
              {
              xpos+=charsize(curfont,c[cursor]) & 0xff;
              if (xpos>msx) break;
              }
           redraw_object(o);
           }
        }
        break;
     case E_KEYBOARD:
        {
        char key;

        cancel_event();
        key=(*(int *)msg->data) & 0xff;
        if (!key)
        switch (*(int *)msg->data >> 8)
           {
           case 'M':if (cursor<slen)  cursor++;break;
           case 'K':if (cursor>0)  cursor--;break;
           case 'S':if (cursor<slen) strcpy(&c[cursor],&c[cursor+1]);slen--;break;
           case 'G':cursor=0;
           case 'O':cursor=slen;
           }
        else
        if (key)
           switch (key)
           {
           case 8:if (cursor>0) {strcpy(&c[cursor-1],&c[cursor]);cursor--;}break;
           case 0:break;
           case 13:break;
           case 27:strcpy(c,save);slen=strlen(c);if (cursor>slen) cursor=slen;break;
           default:if (key>=' ') if (slen<*len || clear_kontext)
             {
             int i;

              if (clear_kontext)
                 {*c='\0';cursor=0;slen=0;}
              for (i=slen+1;i>cursor;i--) c[i]=c[i-1];
              c[cursor++]=key;
             }
           }
        if (!cursor) *start=0;
        redraw_object(o);
        msg->msg=E_CURSOR_TICK;
        input_line_event(msg,o);
        clear_kontext=0;
        msg->msg=-1;
        }
     }