Beispiel #1
0
int GrPlotIncludeStart(char *name,int atnum,char **atname,char **atval,
		    char *buf,int sze,void *data) {
 
  struct GrPlotBlock *blk;
  struct GrPlotInclude *ptr;

  blk=(struct GrPlotBlock *) data;
  if (blk==NULL) return -1;
  ptr=(struct GrPlotInclude *) blk->data;
  if (ptr==NULL) return -1;
 
  if (strcmp(name,blk->name)==0) {
    return 0;
  }

  if (strcmp(name,"name")==0) {
    struct GrPlotString *str;
    str=malloc(sizeof(struct GrPlotString));
    str->inc=ptr->inc;
    str->txt=&ptr->name;
    blk=GrPlotSave(blk->xml,"name",str);
    XMLSetStart(blk->xml,GrPlotStringStart,blk);
    XMLSetText(blk->xml,GrPlotStringText,blk);
    XMLSetEnd(blk->xml,GrPlotStringEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"include")==0) {
    struct GrPlotInclude *inc;
    inc=malloc(sizeof(struct GrPlotInclude));
    inc->inc=ptr->inc;
    blk=GrPlotSave(blk->xml,name,inc);
    XMLSetStart(blk->xml,GrPlotIncludeStart,blk);
    XMLSetEnd(blk->xml,GrPlotIncludeEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"ignore")==0) {
    blk=GrPlotSave(blk->xml,name,NULL);
    XMLSetStart(blk->xml,GrPlotIgnoreStart,blk);
    XMLSetText(blk->xml,GrPlotIgnoreText,blk);
    XMLSetEnd(blk->xml,GrPlotIgnoreEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }


  return 0;
}
Beispiel #2
0
int main(int argc,char *argv[]) {
 
  FILE *outp=stdout;
  char lbuf[256];

  char *atname[]={"width","height"};
  char *atval[]={"100","200"};

  struct XMLdata *xmldata;
 


  xmldata=XMLMake();

  XMLSetStart(xmldata,start,outp);
  XMLSetEnd(xmldata,end,outp);
  XMLSetText(xmldata,text,outp);

  sprintf(lbuf,"dummy contents.");

  XMLCallStart(xmldata,"table",2,atname,atval,"table",strlen("table"));

  XMLDecode(xmldata,lbuf,strlen(lbuf));

  XMLCallEnd(xmldata,"table","/table",strlen("/table"));

  XMLFree(xmldata);

  return 0;

}
Beispiel #3
0
int GrPlotTickStart(char *name,int atnum,char **atname,char **atval,
		       char *buf,int sze,void *data) {

  struct GrPlotBlock *blk;
  struct GrPlotTick *ptr;

  blk=(struct GrPlotBlock *) data;
  if (blk==NULL) return -1;
  ptr=(struct GrPlotTick *) blk->data;
  if (ptr==NULL) return -1;

  if (strcmp(name,blk->name)==0) {

    return 0;
  }

  if (strcmp(name,"minor")==0) {
    struct GrPlotValue *val;
    val=malloc(sizeof(struct GrPlotValue));
    val->cnv=ptr->cnv;
    val->inc=ptr->inc;
    val->val=ptr->minor;
    blk=GrPlotSave(blk->xml,"minor",val);
    XMLSetStart(blk->xml,GrPlotValueStart,blk);
    XMLSetText(blk->xml,GrPlotValueText,blk);
    XMLSetEnd(blk->xml,GrPlotValueEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }
  
  if (strcmp(name,"major")==0) {
    struct GrPlotValue *val;
    val=malloc(sizeof(struct GrPlotValue));
    val->cnv=ptr->cnv;
    val->inc=ptr->inc;
    val->val=ptr->major;
    blk=GrPlotSave(blk->xml,"major",val);
    XMLSetStart(blk->xml,GrPlotValueStart,blk);
    XMLSetText(blk->xml,GrPlotValueText,blk);
    XMLSetEnd(blk->xml,GrPlotValueEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"include")==0) {
    struct GrPlotInclude *inc;
    inc=malloc(sizeof(struct GrPlotInclude));
    inc->inc=ptr->inc;
    blk=GrPlotSave(blk->xml,name,inc);
    XMLSetStart(blk->xml,GrPlotIncludeStart,blk);
    XMLSetEnd(blk->xml,GrPlotIncludeEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"ignore")==0) {
    blk=GrPlotSave(blk->xml,name,NULL);
    XMLSetStart(blk->xml,GrPlotIgnoreStart,blk);
    XMLSetText(blk->xml,GrPlotIgnoreText,blk);
    XMLSetEnd(blk->xml,GrPlotIgnoreEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }


  return 0;
}
Beispiel #4
0
int GrPlotBarPlotStart(char *name,int atnum,char **atname,char **atval,
		    char *buf,int sze,void *data) {
  int i;
  struct GrPlotBlock *blk;
  struct GrPlotBarPlot *ptr;
  struct GrPlotData *plt;


  blk=(struct GrPlotBlock *) data;
  if (blk==NULL) return -1;
  ptr=(struct GrPlotBarPlot *) blk->data;
  if (ptr==NULL) return -1;
  plt=ptr->plt;
  if (plt==NULL) return -1;

  if (strcmp(name,blk->name)==0) {
    unsigned int mask;
    char tmp[64];
    ptr->color=0;
    ptr->mask=0;
    ptr->width=0;
    ptr->dash=NULL;
    ptr->or=0;
    ptr->fill=0;
    ptr->w=0;
    ptr->o=0;
    ptr->state=0;
    ptr->xdmin=-HUGE_VAL;
    ptr->xdmax=HUGE_VAL;
    ptr->ydmin=-HUGE_VAL;
    ptr->ydmax=HUGE_VAL;
    ptr->name=NULL;
    ptr->encode=NULL;
    ptr->x=NULL;
    ptr->y=NULL;
 
    for (i=0;i<atnum;i++) {
      if (strcmp(atname[i],"color")==0) {
        strcpy(tmp,"0x");
        strcat(tmp,atval[i]);
        sscanf(tmp,"%x",&ptr->color);
      } else if (strcmp(atname[i],"mask")==0) {
        strcpy(tmp,"0x");
        strcat(tmp,atval[i]);
        sscanf(tmp,"%x",&mask);
        ptr->mask=mask;
      } else if (strcmp(atname[i],"width")==0) ptr->width=atof(atval[i]);
      else if (strcmp(atname[i],"fill")==0) ptr->fill=1;
      else if (strcmp(atname[i],"dash")==0)
        ptr->dash=RplotMakeDashString(atval[i]);
      else if (strcmp(atname[i],"or")==0) {
        strcpy(tmp,"0x");
        strcat(tmp,atval[i]);
        sscanf(tmp,"%x",&ptr->or);
      }
    }
    return 0;
  }

 
  if (strcmp(name,"extent")==0) {
    struct GrPlotExtent *ext;
    ext=malloc(sizeof(struct GrPlotExtent));
    ext->cnv=&plt->cnv;
    ext->inc=&plt->inc;
    ext->xmin=&ptr->xmin;
    ext->xmax=&ptr->xmax;
    ext->ymin=&ptr->ymin;
    ext->ymax=&ptr->ymax;
    ptr->state=ptr->state | 0x01;
    blk=GrPlotSave(blk->xml,"extent",ext);
    XMLSetStart(blk->xml,GrPlotExtentStart,blk);
    XMLSetEnd(blk->xml,GrPlotExtentEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"range")==0) {
    struct GrPlotExtent *ext;
    ext=malloc(sizeof(struct GrPlotExtent));
    ext->cnv=&plt->cnv;
    ext->inc=&plt->inc;
    ext->xmin=&ptr->xdmin;
    ext->xmax=&ptr->xdmax;
    ext->ymin=&ptr->ydmin;
    ext->ymax=&ptr->ydmax;
    ptr->state=ptr->state | 0x02;
    blk=GrPlotSave(blk->xml,"range",ext);
    XMLSetStart(blk->xml,GrPlotExtentStart,blk);
    XMLSetEnd(blk->xml,GrPlotExtentEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"name")==0) {
    struct GrPlotString *str;
    str=malloc(sizeof(struct GrPlotString));
    str->txt=&ptr->name;
    str->inc=&plt->inc;
    blk=GrPlotSave(blk->xml,"name",str);
    XMLSetStart(blk->xml,GrPlotStringStart,blk);
    XMLSetText(blk->xml,GrPlotStringText,blk);
    XMLSetEnd(blk->xml,GrPlotStringEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"index")==0) {
    struct GrPlotIndex *inx;
    inx=malloc(sizeof(struct GrPlotIndex));
    inx->inc=&plt->inc;
    inx->x=&ptr->x;
    inx->y=&ptr->y;
    blk=GrPlotSave(blk->xml,"index",inx);
    XMLSetStart(blk->xml,GrPlotIndexStart,blk);
    XMLSetEnd(blk->xml,GrPlotIndexEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"w")==0) {
    struct GrPlotValue *val;
    val=malloc(sizeof(struct GrPlotValue));
    val->cnv=&plt->cnv;
    val->inc=&plt->inc;
    val->val=&ptr->w;
    ptr->state=ptr->state | 0x04;
    blk=GrPlotSave(blk->xml,"w",val);
    XMLSetStart(blk->xml,GrPlotValueStart,blk);
    XMLSetText(blk->xml,GrPlotValueText,blk);
    XMLSetEnd(blk->xml,GrPlotValueEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"o")==0) {
    struct GrPlotValue *val;
    val=malloc(sizeof(struct GrPlotValue));
    val->cnv=&plt->cnv;
    val->inc=&plt->inc;
    val->val=&ptr->o;
    ptr->state=ptr->state | 0x08;
    blk=GrPlotSave(blk->xml,"o",val);
    XMLSetStart(blk->xml,GrPlotValueStart,blk);
    XMLSetText(blk->xml,GrPlotValueText,blk);
    XMLSetEnd(blk->xml,GrPlotValueEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }


  if (strcmp(name,"include")==0) {
    struct GrPlotInclude *inc;
    inc=malloc(sizeof(struct GrPlotInclude));
    inc->inc=&plt->inc;
    blk=GrPlotSave(blk->xml,name,inc);
    XMLSetStart(blk->xml,GrPlotIncludeStart,blk);
    XMLSetEnd(blk->xml,GrPlotIncludeEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"ignore")==0) {
    blk=GrPlotSave(blk->xml,name,NULL);
    XMLSetStart(blk->xml,GrPlotIgnoreStart,blk);
    XMLSetText(blk->xml,GrPlotIgnoreText,blk);
    XMLSetEnd(blk->xml,GrPlotIgnoreEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }


  return 0;
}
Beispiel #5
0
int GrPlotZeroStart(char *name,int atnum,char **atname,char **atval,
		    char *buf,int sze,void *data) {
  int i;
  struct GrPlotBlock *blk;
  struct GrPlotZero *ptr;
  struct GrPlotData *plt;

  blk=(struct GrPlotBlock *) data;
  if (blk==NULL) return -1;
  ptr=(struct GrPlotZero *) blk->data;
  if (ptr==NULL) return -1;
  plt=ptr->plt;
  if (plt==NULL) return -1;


  if (strcmp(name,blk->name)==0) {
    unsigned int mask;
    char tmp[64];
    ptr->color=0;
    ptr->mask=0;
    ptr->width=0;
    ptr->dash=NULL;
    ptr->state=0;
    for (i=0;i<atnum;i++) {
      if (strcmp(atname[i],"color")==0) {
        strcpy(tmp,"0x");
        strcat(tmp,atval[i]);
        sscanf(tmp,"%x",&ptr->color);
      } else if (strcmp(atname[i],"mask")==0) {
        strcpy(tmp,"0x");
        strcat(tmp,atval[i]);
        sscanf(tmp,"%x",&mask);
        ptr->mask=mask;
      } else if (strcmp(atname[i],"width")==0) ptr->width=atof(atval[i]);
      else if (strcmp(atname[i],"dash")==0) 
        ptr->dash=RplotMakeDashString(atval[i]);
    }
    return 0;
  }

  if (strcmp(name,"limit")==0) {
    struct GrPlotLimit *lmt;
    lmt=malloc(sizeof(struct GrPlotLimit));
    lmt->cnv=&plt->cnv;
    lmt->inc=&plt->inc;
    lmt->min=&ptr->min;
    lmt->max=&ptr->max;
    ptr->state=ptr->state | 0x01;
    blk=GrPlotSave(blk->xml,"limit",lmt);
    XMLSetStart(blk->xml,GrPlotLimitStart,blk);
    XMLSetEnd(blk->xml,GrPlotLimitEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"include")==0) {
    struct GrPlotInclude *inc;
    inc=malloc(sizeof(struct GrPlotInclude));
    inc->inc=&plt->inc;
    blk=GrPlotSave(blk->xml,name,inc);
    XMLSetStart(blk->xml,GrPlotIncludeStart,blk);
    XMLSetEnd(blk->xml,GrPlotIncludeEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"ignore")==0) {
    blk=GrPlotSave(blk->xml,name,NULL);
    XMLSetStart(blk->xml,GrPlotIgnoreStart,blk);
    XMLSetText(blk->xml,GrPlotIgnoreText,blk);
    XMLSetEnd(blk->xml,GrPlotIgnoreEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }


  return 0;
}
Beispiel #6
0
int GrPlotImageNameStart(char *name,int atnum,char **atname,char **atval,
		    char *buf,int sze,void *data) {
  int i;
  struct GrPlotBlock *blk;
  struct GrPlotImageName *ptr;
  struct GrPlotData *plt;
  struct GrPlotConvert *cnv;

  blk=(struct GrPlotBlock *) data;
  if (blk==NULL) return -1;
  ptr=(struct GrPlotImageName *) blk->data;
  if (ptr==NULL) return -1;
  plt=ptr->plt;
  if (plt==NULL) return -1;
  cnv=&plt->cnv;

  if (strcmp(name,blk->name)==0) {
    int s=0;
    unsigned int mask;
    char *xvalue=NULL;
    char *yvalue=NULL;
    char *xtype=NULL;
    char *ytype=NULL;

    char tmp[64];
    ptr->mask=0;
    ptr->name=NULL;
    ptr->matrix=NULL;
    ptr->dx=0;
    ptr->dy=0;
    ptr->x=0;
    ptr->y=0;
    for (i=0;i<atnum;i++) {
      if (strcmp(atname[i],"mask")==0) {
        strcpy(tmp,"0x");
        strcat(tmp,atval[i]);
        sscanf(tmp,"%x",&mask);
        ptr->mask=mask;
      } else if (strcmp(atname[i],"matrix")==0)
        ptr->matrix=RplotMatrixString(atval[i]);
      else if (strcmp(atname[i],"xvalue")==0) xvalue=atval[i];
      else if (strcmp(atname[i],"yvalue")==0) yvalue=atval[i];
      else if (strcmp(atname[i],"xpos")==0) xvalue=atval[i];
      else if (strcmp(atname[i],"ypos")==0) yvalue=atval[i];
      else if (strcmp(atname[i],"xtype")==0) xtype=atval[i];
      else if (strcmp(atname[i],"ytype")==0) ytype=atval[i];
      else if (strcmp(atname[i],"xoffset")==0) ptr->dx=atof(atval[i]);
      else if (strcmp(atname[i],"yoffset")==0) ptr->dy=atof(atval[i]);
    }
    if (xvalue !=NULL) {
      if (xtype==NULL) ptr->x=atof(xvalue);
      else if (cnv->user !=NULL)
        s=(cnv->user)(xtype,xvalue,&ptr->x,cnv->data);
      else ptr->x=0;
    }
    if (yvalue !=NULL) {
      if (ytype==NULL) ptr->y=atof(yvalue);
      else if (cnv->user !=NULL)
        s=(cnv->user)(xtype,yvalue,&ptr->y,cnv->data);
      else ptr->y=0;
    }
    return s;
  }

 
  if (strcmp(name,"extent")==0) {
    struct GrPlotExtent *ext;
    ext=malloc(sizeof(struct GrPlotExtent));
    ext->cnv=&plt->cnv;
    ext->inc=&plt->inc;
    ext->xmin=&ptr->xmin;
    ext->xmax=&ptr->xmax;
    ext->ymin=&ptr->ymin;
    ext->ymax=&ptr->ymax;
    ptr->state=ptr->state | 0x01;
    blk=GrPlotSave(blk->xml,"extent",ext);
    XMLSetStart(blk->xml,GrPlotExtentStart,blk);
    XMLSetEnd(blk->xml,GrPlotExtentEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"name")==0) {
    struct GrPlotString *str;
    str=malloc(sizeof(struct GrPlotString));
    str->txt=&ptr->name; 
    str->inc=&plt->inc;
    blk=GrPlotSave(blk->xml,"name",str);
    XMLSetStart(blk->xml,GrPlotStringStart,blk);
    XMLSetText(blk->xml,GrPlotStringText,blk);
    XMLSetEnd(blk->xml,GrPlotStringEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"include")==0) {
    struct GrPlotInclude *inc;
    inc=malloc(sizeof(struct GrPlotInclude));
    inc->inc=&plt->inc;
    blk=GrPlotSave(blk->xml,name,inc);
    XMLSetStart(blk->xml,GrPlotIncludeStart,blk);
    XMLSetEnd(blk->xml,GrPlotIncludeEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }


  return 0;
}
Beispiel #7
0
int GrPlotShapeStart(char *name,int atnum,char **atname,char **atval,
		    char *buf,int sze,void *data) {
  int i;
  struct GrPlotBlock *blk;
  struct GrPlotShape *ptr;
  struct GrPlotData *plt;
  struct GrPlotConvert *cnv;

  blk=(struct GrPlotBlock *) data;
  if (blk==NULL) return -1;
  ptr=(struct GrPlotShape *) blk->data;
  if (ptr==NULL) return -1;
  plt=ptr->plt;
  if (plt==NULL) return -1;
  cnv=&plt->cnv;

  if (strcmp(name,blk->name)==0) {
    int s=0;
    char *xvalue=NULL;
    char *yvalue=NULL;
    char *xtype=NULL;
    char *ytype=NULL;
    unsigned int mask;
    char tmp[64];
    ptr->color=0;
    ptr->mask=0;
    ptr->fill=0;
    ptr->width=0;
    ptr->dash=NULL;
    ptr->matrix=NULL;
    ptr->x=0;
    ptr->y=0;
    for (i=0;i<atnum;i++) {
      if (strcmp(atname[i],"color")==0) {
        strcpy(tmp,"0x");
        strcat(tmp,atval[i]);
        sscanf(tmp,"%x",&ptr->color);
      } else if (strcmp(atname[i],"mask")==0) {
        strcpy(tmp,"0x");
        strcat(tmp,atval[i]);
        sscanf(tmp,"%x",&mask);
        ptr->mask=mask;
      } else if (strcmp(atname[i],"width")==0) ptr->width=atof(atval[i]);
      else if (strcmp(atname[i],"dash")==0)
        ptr->dash=RplotMakeDashString(atval[i]);
      else if (strcmp(atname[i],"fill")==0) ptr->fill=1;
      else if (strcmp(atname[i],"matrix")==0)
        ptr->matrix=RplotMatrixString(atval[i]);
      else if (strcmp(atname[i],"xvalue")==0) xvalue=atval[i];
      else if (strcmp(atname[i],"yvalue")==0) yvalue=atval[i];
      else if (strcmp(atname[i],"xpos")==0) xvalue=atval[i];
      else if (strcmp(atname[i],"ypot")==0) yvalue=atval[i];
      else if (strcmp(atname[i],"xtype")==0) xtype=atval[i];
      else if (strcmp(atname[i],"ytype")==0) ytype=atval[i];

    }
    if (xvalue !=NULL) {
      if (xtype==NULL) ptr->x=atof(xvalue);
      else if (cnv->user !=NULL)
        s=(cnv->user)(xtype,xvalue,&ptr->x,cnv->data);
      else ptr->x=0;
    }
    if (yvalue !=NULL) {
      if (ytype==NULL) ptr->y=atof(yvalue);
      else if (cnv->user !=NULL)
        s=(cnv->user)(xtype,yvalue,&ptr->y,cnv->data);
      else ptr->y=0;
    }
    return s;
  }

 
  if (strcmp(name,"extent")==0) {
    struct GrPlotExtent *ext;
    ext=malloc(sizeof(struct GrPlotExtent));
    ext->cnv=&plt->cnv;
    ext->inc=&plt->inc;
    ext->xmin=&ptr->xmin;
    ext->xmax=&ptr->xmax;
    ext->ymin=&ptr->ymin;
    ext->ymax=&ptr->ymax;
    ptr->state=ptr->state | 0x01;
    blk=GrPlotSave(blk->xml,"extent",ext);
    XMLSetStart(blk->xml,GrPlotExtentStart,blk);
    XMLSetEnd(blk->xml,GrPlotExtentEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"s")==0) {
    struct GrPlotDimension *dim;
    dim=malloc(sizeof(struct GrPlotDimension));
    dim->cnv=&plt->cnv;
    dim->inc=&plt->inc;
    dim->w=&ptr->w;
    dim->h=&ptr->h;
    ptr->state=ptr->state | 0x02;
    blk=GrPlotSave(blk->xml,"d",dim);
    XMLSetStart(blk->xml,GrPlotDimensionStart,blk);
    XMLSetEnd(blk->xml,GrPlotDimensionEnd,blk);
    return 0;
  }

  if (strcmp(name,"include")==0) {
    struct GrPlotInclude *inc;
    inc=malloc(sizeof(struct GrPlotInclude));
    inc->inc=&plt->inc;
    blk=GrPlotSave(blk->xml,name,inc);
    XMLSetStart(blk->xml,GrPlotIncludeStart,blk);
    XMLSetEnd(blk->xml,GrPlotIncludeEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"ignore")==0) {
    blk=GrPlotSave(blk->xml,name,NULL);
    XMLSetStart(blk->xml,GrPlotIgnoreStart,blk);
    XMLSetText(blk->xml,GrPlotIgnoreText,blk);
    XMLSetEnd(blk->xml,GrPlotIgnoreEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }


  return 0;
}
Beispiel #8
0
int GrPlotSymbolDrawStart(char *name,int atnum,char **atname,char **atval,
		    char *buf,int sze,void *data) {
  
  struct GrPlotBlock *blk;
  struct GrPlotSymbolDraw *ptr;
  struct GrPlotData *plt;

  blk=(struct GrPlotBlock *) data;
  if (blk==NULL) return -1;
  ptr=(struct GrPlotSymbolDraw *) blk->data;
  if (ptr==NULL) return -1;
  plt=ptr->plt;
  if (plt==NULL) return -1;

  if (strcmp(name,blk->name)==0) {
    return 0;
  }

  if (strcmp(name,"line")==0) {
    struct GrPlotLine *lne;
    lne=malloc(sizeof(struct GrPlotLine));
    lne->plt=plt;
    lne->off=&ptr->off;
    lne->xmin=ptr->xmin;
    lne->ymin=ptr->ymin;
    lne->xmax=ptr->xmax;
    lne->ymax=ptr->ymax;
    lne->state=0x01;

    blk=GrPlotSave(plt->xml,name,lne);
    XMLSetStart(plt->xml,GrPlotLineStart,blk);
    XMLSetEnd(plt->xml,GrPlotLineEnd,blk);
    return XMLCallStart(plt->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"bezier")==0) {
    struct GrPlotBezier *bez;
    bez=malloc(sizeof(struct GrPlotBezier));
    bez->plt=plt;
    bez->off=&ptr->off;
    bez->xmin=ptr->xmin;
    bez->ymin=ptr->ymin;
    bez->xmax=ptr->xmax;
    bez->ymax=ptr->ymax;
    bez->state=0x01;

    blk=GrPlotSave(plt->xml,name,bez);
    XMLSetStart(plt->xml,GrPlotBezierStart,blk);
    XMLSetEnd(plt->xml,GrPlotBezierEnd,blk);
    return XMLCallStart(plt->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"ellipse")==0) {
    struct GrPlotShape *shp;
    shp=malloc(sizeof(struct GrPlotShape));
    shp->plt=plt;
    shp->off=&ptr->off;
    shp->xmin=ptr->xmin;
    shp->ymin=ptr->ymin;
    shp->xmax=ptr->xmax;
    shp->ymax=ptr->ymax;
    shp->state=0x01;
 
    blk=GrPlotSave(plt->xml,name,shp);
    XMLSetStart(plt->xml,GrPlotShapeStart,blk);
    XMLSetEnd(plt->xml,GrPlotShapeEnd,blk);
    return XMLCallStart(plt->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"rectangle")==0) {
    struct GrPlotShape *shp;
    shp=malloc(sizeof(struct GrPlotShape));
    shp->plt=plt;
    shp->off=&ptr->off;
    shp->xmin=ptr->xmin;
    shp->ymin=ptr->ymin;
    shp->xmax=ptr->xmax;
    shp->ymax=ptr->ymax;
    shp->state=0x01;
    blk=GrPlotSave(plt->xml,name,shp);
    XMLSetStart(plt->xml,GrPlotShapeStart,blk);
    XMLSetEnd(plt->xml,GrPlotShapeEnd,blk);
    return XMLCallStart(plt->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"polygon")==0) {
    struct GrPlotPolygon *pol;
    pol=malloc(sizeof(struct GrPlotPolygon));
    pol->plt=plt;
    pol->off=&ptr->off;
    pol->xmin=ptr->xmin;
    pol->ymin=ptr->ymin;
    pol->xmax=ptr->xmax;
    pol->ymax=ptr->ymax;
    pol->state=0x01;
    blk=GrPlotSave(plt->xml,name,pol);
    XMLSetStart(plt->xml,GrPlotPolygonStart,blk);
    XMLSetEnd(plt->xml,GrPlotPolygonEnd,blk);
    return XMLCallStart(plt->xml,name,atnum,atname,atval,buf,sze);
  }

 if (strcmp(name,"text")==0) {
    struct GrPlotText *txt;
    txt=malloc(sizeof(struct GrPlotText));
    txt->plt=plt;
    txt->off=&ptr->off;
    txt->xmin=ptr->xmin;
    txt->ymin=ptr->ymin;
    txt->xmax=ptr->xmax;
    txt->ymax=ptr->ymax;
    txt->state=0x01;
    blk=GrPlotSave(plt->xml,name,txt);
    XMLSetStart(plt->xml,GrPlotTextStart,blk);
    XMLSetEnd(plt->xml,GrPlotTextEnd,blk);
    return XMLCallStart(plt->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"image")==0) {
    struct GrPlotImage *img;
    img=malloc(sizeof(struct GrPlotImage));
    img->plt=plt;
    img->off=&ptr->off;
    img->xmin=ptr->xmin;
    img->ymin=ptr->ymin;
    img->xmax=ptr->xmax;
    img->ymax=ptr->ymax;
    img->state=0x01;
    blk=GrPlotSave(plt->xml,name,img);
    XMLSetStart(plt->xml,GrPlotImageStart,blk);
    XMLSetEnd(plt->xml,GrPlotImageEnd,blk);
    return XMLCallStart(plt->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"imagen")==0) {
    struct GrPlotImageName *img;
    img=malloc(sizeof(struct GrPlotImageName));
    img->plt=plt;
    img->plt=plt;
    img->off=&ptr->off;
    img->xmin=ptr->xmin;
    img->ymin=ptr->ymin;
    img->xmax=ptr->xmax;
    img->ymax=ptr->ymax;
    img->state=0x01;
    blk=GrPlotSave(plt->xml,name,img);
    XMLSetStart(plt->xml,GrPlotImageNameStart,blk);
    XMLSetEnd(plt->xml,GrPlotImageNameEnd,blk);
    return XMLCallStart(plt->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"include")==0) {
    struct GrPlotInclude *inc;
    inc=malloc(sizeof(struct GrPlotInclude));
    inc->inc=&plt->inc;
    blk=GrPlotSave(blk->xml,name,inc);
    XMLSetStart(blk->xml,GrPlotIncludeStart,blk);
    XMLSetEnd(blk->xml,GrPlotIncludeEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"ignore")==0) {
    blk=GrPlotSave(blk->xml,name,NULL);
    XMLSetStart(blk->xml,GrPlotIgnoreStart,blk);
    XMLSetText(blk->xml,GrPlotIgnoreText,blk);
    XMLSetEnd(blk->xml,GrPlotIgnoreEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }


  return 0;
}
Beispiel #9
0
int RplotInDimensionStart(char *name,int atnum,char **atname,char **atval,
		       char *buf,int sze,void *data) {

  struct RplotInBlock *blk;
  struct RplotInDimension *ptr;

  blk=(struct RplotInBlock *) data;
  if (blk==NULL) return -1;
  ptr=(struct RplotInDimension *) blk->data;
  if (ptr==NULL) return -1;

  if (strcmp(name,blk->name)==0) {
    ptr->state=0;
    return 0;
  }

  if (strcmp(name,"w")==0) {
    struct RplotInFloat *flt;
    flt=malloc(sizeof(struct RplotInFloat));
    flt->inc=ptr->inc;
    flt->val=ptr->w;
    ptr->state=ptr->state | 0x01;
    blk=RplotInSave(blk->xml,name,flt);
    XMLSetStart(blk->xml,RplotInFloatStart,blk);
    XMLSetText(blk->xml,RplotInFloatText,blk);
    XMLSetEnd(blk->xml,RplotInFloatEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }
  

  if (strcmp(name,"h")==0) {
    struct RplotInFloat *flt;
    flt=malloc(sizeof(struct RplotInFloat));
    flt->inc=ptr->inc;
    flt->val=ptr->h;
    ptr->state=ptr->state | 0x02;
    blk=RplotInSave(blk->xml,name,flt);
    XMLSetStart(blk->xml,RplotInFloatStart,blk);
    XMLSetText(blk->xml,RplotInFloatText,blk);
    XMLSetEnd(blk->xml,RplotInFloatEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"include")==0) {
    struct RplotInInclude *inc;
    inc=malloc(sizeof(struct RplotInInclude));
    inc->inc=ptr->inc;
    blk=RplotInSave(blk->xml,name,inc);
    XMLSetStart(blk->xml,RplotInIncludeStart,blk);
    XMLSetEnd(blk->xml,RplotInIncludeEnd,blk);
    return XMLCallStart(blk->xml,name,atnum,atname,atval,buf,sze);
  }

  if (strcmp(name,"ignore")==0) {
    blk=RplotInSave(blk->xml,name,NULL);
    XMLSetStart(blk->xml,RplotInIgnoreStart,blk);
    XMLSetText(blk->xml,RplotInIgnoreText,blk);
    XMLSetEnd(blk->xml,RplotInIgnoreEnd,blk);
    return 0;
  }

  return 0;
}