xpixmapoutputdev.cc

来自「source code: Covert TXT to PDF」· CC 代码 · 共 85 行

CC
85
字号
//========================================================================//// XPixmapOutputDev.cc//// Copyright 2002 Glyph & Cog, LLC////========================================================================#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma implementation#endif#include "Object.h"#include "GfxState.h"#include "XPixmapOutputDev.h"//------------------------------------------------------------------------#define xoutRound(x) ((int)(x + 0.5))//------------------------------------------------------------------------XPixmapOutputDev::XPixmapOutputDev(Display *displayA, int screenNumA,				   Visual *visualA, Colormap colormapA,				   GBool reverseVideoA, Gulong paperColorA,				   GBool installCmapA, int rgbCubeSizeA,				   GBool incrementalUpdateA,				   void (*redrawCbkA)(void *data),				   void *redrawCbkDataA):  XOutputDev(displayA, screenNumA, visualA, colormapA,	     reverseVideoA, paperColorA, installCmapA, rgbCubeSizeA){  incrementalUpdate = incrementalUpdateA;  redrawCbk = redrawCbkA;  redrawCbkData = redrawCbkDataA;}XPixmapOutputDev::~XPixmapOutputDev() {  if (getPixmapWidth() > 0) {    XFreePixmap(getDisplay(), getPixmap());  }}void XPixmapOutputDev::clear() {  startDoc(NULL);  startPage(0, NULL);}void XPixmapOutputDev::startPage(int pageNum, GfxState *state) {  int oldPixmapW, oldPixmapH, newPixmapW, newPixmapH;  // resize the off-screen pixmap (if needed)  oldPixmapW = getPixmapWidth();  oldPixmapH = getPixmapHeight();  newPixmapW = xoutRound(state ? state->getPageWidth() : 1);  newPixmapH = xoutRound(state ? state->getPageHeight() : 1);  if (oldPixmapW == 0 ||      newPixmapW != oldPixmapW || newPixmapH != oldPixmapH) {    if (oldPixmapW > 0) {      XFreePixmap(getDisplay(), getPixmap());    }    setPixmap(XCreatePixmap(getDisplay(), win, newPixmapW, newPixmapH,			    getDepth()),	      newPixmapW, newPixmapH);  }  XOutputDev::startPage(pageNum, state);}void XPixmapOutputDev::endPage() {  if (!incrementalUpdate) {    (*redrawCbk)(redrawCbkData);  }  XOutputDev::endPage();}void XPixmapOutputDev::dump() {  if (incrementalUpdate) {    (*redrawCbk)(redrawCbkData);  }  XOutputDev::dump();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?