/* * Primordial root object creation and initialization function. A pointer * to this function is passed to the object manager constructor. */ void GraphicsInitialize (RefList* root) { Picture* pict = new Picture; FullGraphic dfault; InitPPaint(); root->Append(new RefList(pict)); dfault.FillBg(true); dfault.SetColors(pblack, pwhite); dfault.SetPattern(psolid); dfault.SetBrush(psingle); dfault.SetFont(pstdfont); Line* line = new Line (0, 0, 75, 75, &dfault); MultiLine* multiline = new MultiLine (x, y, 6, &dfault); BSpline* spline = new BSpline (x, y, 6, &dfault); Rect* rect = new Rect (0, 0, 100, 100, &dfault); FillRect* frect = new FillRect (0, 0, 100, 100, &dfault); Circle* circle = new Circle (0, 0, 50, &dfault); FillCircle* fcircle = new FillCircle (0, 0, 50, &dfault); Polygon* poly = new Polygon (x, y, 6, &dfault); FillPolygon* fpoly = new FillPolygon (x, y, 6, &dfault); ClosedBSpline* cspline = new ClosedBSpline (x, y, 6, &dfault); FillBSpline* fspline = new FillBSpline (x, y, 6, &dfault); Label* label = new Label ("Type 'q' to quit this program.", &dfault); Stencil* stencil = new Stencil(new Bitmap(iv_bits, iv_width, iv_height)); RasterRect* raster = new RasterRect(CreateRaster()); line->Translate(0, 300); multiline->Translate(100, 300); spline->Translate(250, 300); rect->Translate(100, 150); frect->Translate(100, 0); circle->Scale(1.0, 0.6); circle->Translate(0, 150); fcircle->Scale(1.0, 0.6); poly->Translate(250, 150); fpoly->Translate(250, 0); cspline->Translate(400, 150); fspline->Translate(400, 0); label->Translate(350, 175); stencil->Translate(400, 300); raster->Scale(5, 5); raster->Translate(350, 350); pict->Append(line, multiline, spline, rect); pict->Append(frect, circle, fcircle, poly); pict->Append(fpoly, cspline, fspline, label); pict->Append(stencil, raster); }
ViewerView::ViewerView (GraphicView* g, UPage* page, Grid* grid, Viewer* v) { Picture* p = new Picture; if (grid != nil) { p->Append(grid->GetGraphic()); } p->Append(page->GetGraphic()); p->Append(_vg = new ViewerGraphic(g)); SetGraphic(p); _vg->SetTag(this); _viewer = v; Update(); }
Graphic* Picture::Copy () { Iterator i; Picture* newPicture = new Picture(this); for (First(i); !Done(i); Next(i)) { newPicture->Append(GetGraphic(i)->Copy()); } return newPicture; }