⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xpdfviewer.cc

📁 source code: Covert TXT to PDF
💻 CC
📖 第 1 页 / 共 5 页
字号:
			    viewer->core->getRotate(), gTrue, gFalse);      }      break;    case 'z':      if (!viewer->app->getFullScreen() &&	  viewer->core->getZoom() != zoomPage) {	XtVaSetValues(viewer->zoomMenu,		      XmNmenuHistory, viewer->getZoomMenuBtn(zoomPage),		      NULL);	viewer->displayPage(viewer->core->getPageNum(), zoomPage,			    viewer->core->getRotate(), gTrue, gFalse);      }      break;    case 'w':      if (!viewer->app->getFullScreen() &&	  viewer->core->getZoom() != zoomWidth) {	XtVaSetValues(viewer->zoomMenu,		      XmNmenuHistory, viewer->getZoomMenuBtn(zoomWidth),		      NULL);	viewer->displayPage(viewer->core->getPageNum(), zoomWidth,			    viewer->core->getRotate(), gTrue, gFalse);      }      break;    case '\014':		// ^L      viewer->displayPage(viewer->core->getPageNum(), viewer->core->getZoom(),			  viewer->core->getRotate(), gFalse, gFalse);      break;    case '\027':		// ^W      viewer->app->close(viewer, gFalse);      break;    case '?':      XtManageChild(viewer->aboutDialog);      break;    case 'Q':    case 'q':      viewer->app->quit();      break;    }  }}void XPDFViewer::mouseCbk(void *data, XEvent *event) {  XPDFViewer *viewer = (XPDFViewer *)data;  if (event->type == ButtonPress && event->xbutton.button == 3) {    XmMenuPosition(viewer->popupMenu, &event->xbutton);    XtManageChild(viewer->popupMenu);  }}//------------------------------------------------------------------------// GUI code: main window//------------------------------------------------------------------------void XPDFViewer::initWindow() {  Widget btn, label, menuPane, lastBtn;#ifndef DISABLE_OUTLINE  Widget clipWin;#endif  Colormap colormap;  XColor xcol;  Arg args[20];  int n;  char *title;  XmString s, s2, emptyString;  char buf[16];  int i;  display = XtDisplay(app->getAppShell());  screenNum = XScreenNumberOfScreen(XtScreen(app->getAppShell()));  // private colormap  if (app->getInstallCmap()) {    XtVaGetValues(app->getAppShell(), XmNcolormap, &colormap, NULL);    // ensure that BlackPixel and WhitePixel are reserved in the    // new colormap    xcol.red = xcol.green = xcol.blue = 0;    XAllocColor(display, colormap, &xcol);    xcol.red = xcol.green = xcol.blue = 65535;    XAllocColor(display, colormap, &xcol);    colormap = XCopyColormapAndFree(display, colormap);  }  // top-level window  n = 0;  title = app->getTitle() ? app->getTitle()->getCString()                          : (char *)xpdfAppName;  XtSetArg(args[n], XmNtitle, title); ++n;  XtSetArg(args[n], XmNiconName, title); ++n;  XtSetArg(args[n], XmNminWidth, 100); ++n;  XtSetArg(args[n], XmNminHeight, 100); ++n;  XtSetArg(args[n], XmNbaseWidth, 0); ++n;  XtSetArg(args[n], XmNbaseHeight, 0); ++n;  XtSetArg(args[n], XmNdeleteResponse, XmDO_NOTHING); ++n;  if (app->getFullScreen()) {    XtSetArg(args[n], XmNmwmDecorations, 0); ++n;    XtSetArg(args[n], XmNgeometry, "+0+0"); ++n;  } else if (app->getGeometry()) {    XtSetArg(args[n], XmNgeometry, app->getGeometry()->getCString()); ++n;  }  win = XtCreatePopupShell("win", topLevelShellWidgetClass,			   app->getAppShell(), args, n);  if (app->getInstallCmap()) {    XtVaSetValues(win, XmNcolormap, colormap, NULL);  }  XmAddWMProtocolCallback(win, XInternAtom(display, "WM_DELETE_WINDOW", False),			  &closeMsgCbk, this);  // form  n = 0;  form = XmCreateForm(win, "form", args, n);  XtManageChild(form);  // toolbar  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  toolBar = XmCreateForm(form, "toolBar", args, n);  XtManageChild(toolBar);  // create an empty string -- this is used for buttons that will get  // pixmaps later  emptyString = XmStringCreateLocalized("");  // page movement buttons  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNsensitive, False); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  backBtn = XmCreatePushButton(toolBar, "back", args, n);  XtManageChild(backBtn);  XtAddCallback(backBtn, XmNactivateCallback,		&backCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, backBtn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNsensitive, False); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  prevTenPageBtn = XmCreatePushButton(toolBar, "prevTenPage", args, n);  XtManageChild(prevTenPageBtn);  XtAddCallback(prevTenPageBtn, XmNactivateCallback,		&prevTenPageCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, prevTenPageBtn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNsensitive, False); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  prevPageBtn = XmCreatePushButton(toolBar, "prevPage", args, n);  XtManageChild(prevPageBtn);  XtAddCallback(prevPageBtn, XmNactivateCallback,		&prevPageCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, prevPageBtn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNsensitive, False); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  nextPageBtn = XmCreatePushButton(toolBar, "nextPage", args, n);  XtManageChild(nextPageBtn);  XtAddCallback(nextPageBtn, XmNactivateCallback,		&nextPageCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, nextPageBtn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNsensitive, False); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  nextTenPageBtn = XmCreatePushButton(toolBar, "nextTenPage", args, n);  XtManageChild(nextTenPageBtn);  XtAddCallback(nextTenPageBtn, XmNactivateCallback,		&nextTenPageCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, nextTenPageBtn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNsensitive, False); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  forwardBtn = XmCreatePushButton(toolBar, "forward", args, n);  XtManageChild(forwardBtn);  XtAddCallback(forwardBtn, XmNactivateCallback,		&forwardCbk, (XtPointer)this);  // page number display  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, forwardBtn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  s = XmStringCreateLocalized("Page ");  XtSetArg(args[n], XmNlabelString, s); ++n;  label = XmCreateLabel(toolBar, "pageLabel", args, n);  XmStringFree(s);  XtManageChild(label);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, label); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 3); ++n;  XtSetArg(args[n], XmNmarginHeight, 3); ++n;  XtSetArg(args[n], XmNcolumns, 5); ++n;  pageNumText = XmCreateTextField(toolBar, "pageNum", args, n);  XtManageChild(pageNumText);  XtAddCallback(pageNumText, XmNactivateCallback,		&pageNumCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, pageNumText); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  s = XmStringCreateLocalized(" of 00000");  XtSetArg(args[n], XmNlabelString, s); ++n;  XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); ++n;  XtSetArg(args[n], XmNrecomputeSize, False); ++n;  pageCountLabel = XmCreateLabel(toolBar, "pageCountLabel", args, n);  XmStringFree(s);  XtManageChild(pageCountLabel);  s = XmStringCreateLocalized(" of 0");  XtVaSetValues(pageCountLabel, XmNlabelString, s, NULL);  XmStringFree(s);  // zoom menu  n = 0;  menuPane = XmCreatePulldownMenu(toolBar, "zoomMenuPane", args, n);  for (i = minZoom; i <= maxZoom; ++i) {    n = 0;    sprintf(buf, "%s%d", i > 0 ? "+" : "", i);    s = XmStringCreateLocalized(buf);    XtSetArg(args[n], XmNlabelString, s); ++n;    XtSetArg(args[n], XmNuserData, (XtPointer)i); ++n;    sprintf(buf, "zoom%s%d", i < 0 ? "M" : "", i < 0 ? -i : i);    btn = XmCreatePushButton(menuPane, buf, args, n);    XmStringFree(s);    XtManageChild(btn);    XtAddCallback(btn, XmNactivateCallback,		  &zoomMenuCbk, (XtPointer)this);    zoomMenuBtns[i - minZoom] = btn;  }  n = 0;  s = XmStringCreateLocalized("fit page");  XtSetArg(args[n], XmNlabelString, s); ++n;  XtSetArg(args[n], XmNuserData, (XtPointer)zoomPage); ++n;  btn = XmCreatePushButton(menuPane, "zoomPage", args, n);  XmStringFree(s);  XtManageChild(btn);  XtAddCallback(btn, XmNactivateCallback,		&zoomMenuCbk, (XtPointer)this);  zoomMenuBtns[maxZoom - minZoom + 1] = btn;  n = 0;  s = XmStringCreateLocalized("fit width");  XtSetArg(args[n], XmNlabelString, s); ++n;  XtSetArg(args[n], XmNuserData, (XtPointer)zoomWidth); ++n;  btn = XmCreatePushButton(menuPane, "zoomWidth", args, n);  XmStringFree(s);  XtManageChild(btn);  XtAddCallback(btn, XmNactivateCallback,		&zoomMenuCbk, (XtPointer)this);  zoomMenuBtns[maxZoom - minZoom + 2] = btn;  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, pageCountLabel); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 0); ++n;  XtSetArg(args[n], XmNmarginHeight, 0); ++n;  XtSetArg(args[n], XmNsubMenuId, menuPane); ++n;  zoomMenu = XmCreateOptionMenu(toolBar, "zoomMenu", args, n);  XtManageChild(zoomMenu);  // find/print/about buttons  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, zoomMenu); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  findBtn = XmCreatePushButton(toolBar, "find", args, n);  XtManageChild(findBtn);  XtAddCallback(findBtn, XmNactivateCallback,		&findCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, findBtn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  printBtn = XmCreatePushButton(toolBar, "print", args, n);  XtManageChild(printBtn);  XtAddCallback(printBtn, XmNactivateCallback,		&printCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, printBtn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  XtSetArg(args[n], XmNlabelString, emptyString); ++n;  aboutBtn = XmCreatePushButton(toolBar, "about", args, n);  XtManageChild(aboutBtn);  XtAddCallback(aboutBtn, XmNactivateCallback,		&aboutCbk, (XtPointer)this);  lastBtn = aboutBtn;  // quit button  n = 0;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNmarginWidth, 6); ++n;  s = XmStringCreateLocalized("Quit");  XtSetArg(args[n], XmNlabelString, s); ++n;  quitBtn = XmCreatePushButton(toolBar, "quit", args, n);  XmStringFree(s);  XtManageChild(quitBtn);  XtAddCallback(quitBtn, XmNactivateCallback,		&quitCbk, (XtPointer)this);  // link label  n = 0;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNleftWidget, lastBtn); ++n;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNrightWidget, btn); ++n;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  s = XmStringCreateLocalized("");  XtSetArg(args[n], XmNlabelString, s); ++n;  XtSetArg(args[n], XmNrecomputeSize, True); ++n;  XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); ++n;  linkLabel = XmCreateLabel(toolBar, "linkLabel", args, n);  XmStringFree(s);  XtManageChild(linkLabel);#ifndef DISABLE_OUTLINE  if (app->getFullScreen()) {#endif    // core    core = new XPDFCore(win, form, app->getPaperColor(),			app->getFullScreen(), app->getReverseVideo(),			app->getInstallCmap(), app->getRGBCubeSize());    core->setUpdateCbk(&updateCbk, this);    core->setActionCbk(&actionCbk, this);    core->setKeyPressCbk(&keyPressCbk, this);    core->setMouseCbk(&mouseCbk, this);    core->setReqPasswordCbk(&reqPasswordCbk, this);    n = 0;    XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;    XtSetArg(args[n], XmNbottomAttachment, XmATTACH_WIDGET); ++n;    XtSetArg(args[n], XmNbottomWidget, toolBar); ++n;    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;    XtSetValues(core->getWidget(), args, n);#ifndef DISABLE_OUTLINE  } else {    // paned window    n = 0;    XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;    XtSetArg(args[n], XmNbottomAttachment, XmATTACH_WIDGET); ++n;    XtSetArg(args[n], XmNbottomWidget, toolBar); ++n;    XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;    XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;    XtSetArg(args[n], XmNorientation, XmHORIZONTAL); ++n;    panedWin = XmCreatePanedWindow(form, "panedWin", args, n);    XtManageChild(panedWin);    // scrolled window for outline container    n = 0;    XtSetArg(args[n], XmNpositionIndex, 0); ++n;    XtSetArg(args[n], XmNallowResize, True); ++n;    XtSetArg(args[n], XmNpaneMinimum, 1); ++n;    XtSetArg(args[n], XmNpaneMaximum, 10000); ++n;    XtSetArg(args[n], XmNwidth, 1); ++n;    XtSetArg(args[n], XmNscrollingPolicy, XmAUTOMATIC); ++n;    outlineScroll = XmCreateScrolledWindow(panedWin, "outlineScroll", args, n);    XtManageChild(outlineScroll);    XtVaGetValues(outlineScroll, XmNclipWindow, &clipWin, NULL);    XtVaSetValues(clipWin, XmNbackground, app->getPaperColor(), NULL);    // outline tree    n = 0;    XtSetArg(args[n], XmNbackground, app->getPaperColor()); ++n;    outlineTree = XPDFCreateTree(outlineScroll, "outlineTree", args, n);    XtManageChild(outlineTree);    XtAddCallback(outlineTree, XPDFNselectionCallback, &outlineSelectCbk,		  (XtPointer)this);

⌨️ 快捷键说明

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