/* %F cdFlush para Printer. Termina uma pagina e inicia outra. */ static void cdflush(cdCtxCanvas* ctxcanvas) { delete ctxcanvas->graphics; EndPage(ctxcanvas->hDC); StartPage(ctxcanvas->hDC); ctxcanvas->graphics = new Graphics(ctxcanvas->hDC, ctxcanvas->printerHandle); cdwpUpdateCanvas(ctxcanvas); }
static int cdactivate(cdCtxCanvas* ctxcanvas) { int w, h; cdCanvas* canvas_dbuffer = ctxcanvas->canvas_dbuffer; /* this is done in the canvas_dbuffer context */ /* this will update canvas size */ cdCanvasActivate(canvas_dbuffer); w = canvas_dbuffer->w; h = canvas_dbuffer->h; if (w==0) w=1; if (h==0) h=1; /* check if the size changed */ if (w != ctxcanvas->canvas->w || h != ctxcanvas->canvas->h) { delete ctxcanvas->graphics; delete ctxcanvas->bitmap; if (ctxcanvas->bitmap_dbuffer) delete ctxcanvas->bitmap_dbuffer; ctxcanvas->bitmap_dbuffer = NULL; Bitmap* bitmap = new Bitmap(w, h, PixelFormat24bppRGB); bitmap->SetResolution((REAL)(canvas_dbuffer->xres*25.4), (REAL)(canvas_dbuffer->yres*25.4)); ctxcanvas->bitmap = bitmap; ctxcanvas->graphics = new Graphics(bitmap); ctxcanvas->canvas->w = w; ctxcanvas->canvas->h = h; ctxcanvas->dirty = 1; cdwpUpdateCanvas(ctxcanvas); } return CD_OK; }