Ejemplo n.º 1
0
void PostScriptViews::Update () {
    DeleteViews();

    GraphicComp* comps = GetGraphicComp();
    Iterator i;

    for (comps->First(i); !comps->Done(i); comps->Next(i)) {
        GraphicComp* comp = comps->GetComp(i);
        PostScriptView* psv = CreatePSView(comp);

        if (psv != nil) {
            _views->Append(new UList(psv));
        }
    }
}
Ejemplo n.º 2
0
boolean DrawIdrawScript::Emit (ostream& out) {
    out << script_name() << "(";

    GraphicComp* comps = GetGraphicComp();
    Iterator i;

    int num_edge = 0;
    int num_node = 0;
    for (comps->First(i); !comps->Done(i); comps->Next(i)) {
      GraphicComp* comp = comps->GetComp(i);
      if (comp->IsA(FRAME_COMP)) {
	Iterator j;
	for(comp->First(j); !comp->Done(j); comp->Next(j)) {
	  GraphicComp* subcomp = comp->GetComp(j);
	  if (subcomp->IsA(NODE_COMP)) {
	    ((NodeComp*)subcomp)->index(num_node);
	    num_node++;
	  }
	  else if (subcomp->IsA(EDGE_COMP))
	    num_edge++;
	}
      }
    }
    
    out << num_edge << "," << num_node;

    /* make list and output unique point lists */
    boolean prevout = false;
    if (_pts_compacted) {
	_ptslist = new Clipboard();
	prevout = EmitPts(out, _ptslist, prevout);
    }

    /* make list and output unique graphic states */
    if (_gs_compacted) {
	_gslist = new Clipboard();
	prevout = EmitGS(out, _gslist, prevout);
    }

    /* make list and output unique picture graphics */
    if (_pic_compacted) {
	_piclist1 = new Clipboard();
	_piclist2 = new Clipboard();
	prevout = EmitPic(out, _piclist1, _piclist2, prevout);
    }

    /* output graphic components */
    boolean status = true;
    First(i);
    if (!Done(i) ) {
	if (prevout) out << ",";
	out << "\n";
    }
    for (; status && !Done(i); ) {
	ExternView* ev = GetView(i);
	Indent(out);
        status = ev->Definition(out);
	Next(i);
	if (!Done(i)) out << ",\n";
    }

    out << "\n";
    FullGS(out);
    Annotation(out);
    Attributes(out);
    out << ")\n";
    return status;
}