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

📄 xpdfviewer.cc

📁 source code: Covert TXT to PDF
💻 CC
📖 第 1 页 / 共 5 页
字号:
  XmStringFree(s);  XtManageChild(label);  n = 0;  s = XmStringCreateLocalized("Version " xpdfVersion);  XtSetArg(args[n], XmNlabelString, s); ++n;  XtSetArg(args[n], XmNfontList, aboutVersionFont); ++n;  label = XmCreateLabel(col, "h1", args, n);  XmStringFree(s);  XtManageChild(label);  n = 0;  s = XmStringCreateLocalized(xpdfCopyright);  XtSetArg(args[n], XmNlabelString, s); ++n;  XtSetArg(args[n], XmNfontList, aboutVersionFont); ++n;  label = XmCreateLabel(col, "h2", args, n);  XmStringFree(s);  XtManageChild(label);  n = 0;  s = XmStringCreateLocalized(" ");  XtSetArg(args[n], XmNlabelString, s); ++n;  XtSetArg(args[n], XmNfontList, aboutVersionFont); ++n;  label = XmCreateLabel(col, "h3", args, n);  XmStringFree(s);  XtManageChild(label);  n = 0;  XtSetArg(args[n], XmNorientation, XmHORIZONTAL); ++n;  sep = XmCreateSeparator(col, "sep", args, n);  XtManageChild(sep);  n = 0;  s = XmStringCreateLocalized(" ");  XtSetArg(args[n], XmNlabelString, s); ++n;  XtSetArg(args[n], XmNfontList, aboutVersionFont); ++n;  label = XmCreateLabel(col, "h4", args, n);  XmStringFree(s);  XtManageChild(label);  n = 0;  //----- text  for (i = 0; aboutWinText[i]; ++i) {    n = 0;    s = XmStringCreateLocalized(aboutWinText[i]);    XtSetArg(args[n], XmNlabelString, s); ++n;    XtSetArg(args[n], XmNfontList, aboutFixedFont); ++n;    sprintf(buf, "t%d", i);    label = XmCreateLabel(col, buf, args, n);    XtManageChild(label);    XmStringFree(s);  }}//------------------------------------------------------------------------// GUI code: "open" dialog//------------------------------------------------------------------------void XPDFViewer::initOpenDialog() {  Arg args[20];  int n;  XmString s1, s2, s3;  n = 0;  s1 = XmStringCreateLocalized("Open");  XtSetArg(args[n], XmNokLabelString, s1); ++n;  s2 = XmStringCreateLocalized("*.[Pp][Dd][Ff]");  XtSetArg(args[n], XmNpattern, s2); ++n;  s3 = XmStringCreateLocalized(xpdfAppName ": Open");  XtSetArg(args[n], XmNdialogTitle, s3); ++n;  XtSetArg(args[n], XmNdialogStyle, XmDIALOG_PRIMARY_APPLICATION_MODAL); ++n;  XtSetArg(args[n], XmNautoUnmanage, True); ++n;  openDialog = XmCreateFileSelectionDialog(win, "openDialog", args, n);  XmStringFree(s1);  XmStringFree(s2);  XmStringFree(s3);  XtUnmanageChild(XmFileSelectionBoxGetChild(openDialog,					     XmDIALOG_HELP_BUTTON));  XtAddCallback(openDialog, XmNokCallback,		&openOkCbk, (XtPointer)this);}void XPDFViewer::setOpenDialogDir(char *dir) {  XmString s;  s = XmStringCreateLocalized(dir);  XtVaSetValues(openDialog, XmNdirectory, s, NULL);  XmStringFree(s);}void XPDFViewer::mapOpenDialog(GBool openInNewWindowA) {  openInNewWindow = openInNewWindowA;  XmFileSelectionDoSearch(openDialog, NULL);  XtManageChild(openDialog);}void XPDFViewer::openOkCbk(Widget widget, XtPointer ptr,			   XtPointer callData) {  XPDFViewer *viewer = (XPDFViewer *)ptr;  XmFileSelectionBoxCallbackStruct *data =    (XmFileSelectionBoxCallbackStruct *)callData;  char *fileName;  XmStringContext context;  XmStringCharSet charSet;  XmStringDirection dir;  Boolean sep;  GString *fileNameStr;  XmStringInitContext(&context, data->value);  if (XmStringGetNextSegment(context, &fileName, &charSet, &dir, &sep)) {    fileNameStr = new GString(fileName);    if (viewer->openInNewWindow) {      viewer->app->open(fileNameStr);    } else {      if (viewer->loadFile(fileNameStr)) {	viewer->displayPage(1, viewer->core->getZoom(),			    viewer->core->getRotate(), gTrue, gTrue);      }    }    delete fileNameStr;    XtFree(charSet);    XtFree(fileName);  }  XmStringFreeContext(context);}//------------------------------------------------------------------------// GUI code: "find" dialog//------------------------------------------------------------------------void XPDFViewer::initFindDialog() {  Widget row1, label, okBtn, closeBtn;  Arg args[20];  int n;  XmString s;  //----- dialog  n = 0;  s = XmStringCreateLocalized(xpdfAppName ": Find");  XtSetArg(args[n], XmNdialogTitle, s); ++n;  XtSetArg(args[n], XmNnavigationType, XmNONE); ++n;  XtSetArg(args[n], XmNautoUnmanage, False); ++n;  findDialog = XmCreateFormDialog(win, "findDialog", args, n);  XmStringFree(s);  //----- top row: search string entry  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNtopOffset, 4); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNorientation, XmHORIZONTAL); ++n;  XtSetArg(args[n], XmNpacking, XmPACK_TIGHT); ++n;  row1 = XmCreateRowColumn(findDialog, "row1", args, n);  XtManageChild(row1);  n = 0;  s = XmStringCreateLocalized("Find text: ");  XtSetArg(args[n], XmNlabelString, s); ++n;  label = XmCreateLabel(row1, "label", args, n);  XmStringFree(s);  XtManageChild(label);  n = 0;  XtSetArg(args[n], XmNnavigationType, XmEXCLUSIVE_TAB_GROUP); ++n;  findText = XmCreateTextField(row1, "text", args, n);  XtManageChild(findText);  //----- "find" and "close" buttons  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNtopWidget, row1); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNleftOffset, 4); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomOffset, 4); ++n;  XtSetArg(args[n], XmNnavigationType, XmEXCLUSIVE_TAB_GROUP); ++n;  okBtn = XmCreatePushButton(findDialog, "Find", args, n);  XtManageChild(okBtn);  XtAddCallback(okBtn, XmNactivateCallback,		&findFindCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNtopWidget, row1); ++n;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNrightOffset, 4); ++n;  XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNbottomOffset, 4); ++n;  XtSetArg(args[n], XmNnavigationType, XmEXCLUSIVE_TAB_GROUP); ++n;  closeBtn = XmCreatePushButton(findDialog, "Close", args, n);  XtManageChild(closeBtn);  XtAddCallback(closeBtn, XmNactivateCallback,		&findCloseCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNdefaultButton, okBtn); ++n;  XtSetArg(args[n], XmNcancelButton, closeBtn); ++n;  XtSetArg(args[n], XmNinitialFocus, findText); ++n;  XtSetValues(findDialog, args, n);}void XPDFViewer::findFindCbk(Widget widget, XtPointer ptr,			     XtPointer callData) {  XPDFViewer *viewer = (XPDFViewer *)ptr;  XDefineCursor(viewer->display, XtWindow(viewer->findDialog),		viewer->core->getBusyCursor());  viewer->core->find(XmTextFieldGetString(viewer->findText));  XUndefineCursor(viewer->display, XtWindow(viewer->findDialog));}void XPDFViewer::findCloseCbk(Widget widget, XtPointer ptr,			      XtPointer callData) {  XPDFViewer *viewer = (XPDFViewer *)ptr;  XtUnmanageChild(viewer->findDialog);}//------------------------------------------------------------------------// GUI code: "save as" dialog//------------------------------------------------------------------------void XPDFViewer::initSaveAsDialog() {  Arg args[20];  int n;  XmString s1, s2, s3;  n = 0;  s1 = XmStringCreateLocalized("Save");  XtSetArg(args[n], XmNokLabelString, s1); ++n;  s2 = XmStringCreateLocalized("*.[Pp][Dd][Ff]");  XtSetArg(args[n], XmNpattern, s2); ++n;  s3 = XmStringCreateLocalized(xpdfAppName ": Save as");  XtSetArg(args[n], XmNdialogTitle, s3); ++n;  XtSetArg(args[n], XmNdialogStyle, XmDIALOG_PRIMARY_APPLICATION_MODAL); ++n;  XtSetArg(args[n], XmNautoUnmanage, True); ++n;  saveAsDialog = XmCreateFileSelectionDialog(win, "saveAsDialog", args, n);  XmStringFree(s1);  XmStringFree(s2);  XmStringFree(s3);  XtUnmanageChild(XmFileSelectionBoxGetChild(saveAsDialog,					     XmDIALOG_HELP_BUTTON));  XtAddCallback(saveAsDialog, XmNokCallback,		&saveAsOkCbk, (XtPointer)this);}void XPDFViewer::setSaveAsDialogDir(char *dir) {  XmString s;  s = XmStringCreateLocalized(dir);  XtVaSetValues(saveAsDialog, XmNdirectory, s, NULL);  XmStringFree(s);}void XPDFViewer::mapSaveAsDialog() {  XmFileSelectionDoSearch(saveAsDialog, NULL);  XtManageChild(saveAsDialog);}void XPDFViewer::saveAsOkCbk(Widget widget, XtPointer ptr,			     XtPointer callData) {  XPDFViewer *viewer = (XPDFViewer *)ptr;  XmFileSelectionBoxCallbackStruct *data =    (XmFileSelectionBoxCallbackStruct *)callData;  char *fileName;  GString *fileNameStr;  XmStringContext context;  XmStringCharSet charSet;  XmStringDirection dir;  Boolean sep;  XmStringInitContext(&context, data->value);  if (XmStringGetNextSegment(context, &fileName, &charSet, &dir, &sep)) {    fileNameStr = new GString(fileName);    viewer->core->getDoc()->saveAs(fileNameStr);    delete fileNameStr;    XtFree(charSet);    XtFree(fileName);  }  XmStringFreeContext(context);}//------------------------------------------------------------------------// GUI code: "print" dialog//------------------------------------------------------------------------void XPDFViewer::initPrintDialog() {  Widget sep1, sep2, row, label1, label2, okBtn, cancelBtn;  Arg args[20];  int n;  XmString s;  //----- dialog  n = 0;  s = XmStringCreateLocalized(xpdfAppName ": Print");  XtSetArg(args[n], XmNdialogTitle, s); ++n;  XtSetArg(args[n], XmNdialogStyle, XmDIALOG_PRIMARY_APPLICATION_MODAL); ++n;  printDialog = XmCreateFormDialog(win, "printDialog", args, n);  XmStringFree(s);  //----- "print with command"  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNtopOffset, 4); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNindicatorType, XmONE_OF_MANY); ++n;  XtSetArg(args[n], XmNset, XmSET); ++n;  s = XmStringCreateLocalized("Print with command:");  XtSetArg(args[n], XmNlabelString, s); ++n;  printWithCmdBtn = XmCreateToggleButton(printDialog, "printWithCmd", args, n);  XmStringFree(s);  XtManageChild(printWithCmdBtn);  XtAddCallback(printWithCmdBtn, XmNvalueChangedCallback,		&printWithCmdBtnCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNtopWidget, printWithCmdBtn); ++n;  XtSetArg(args[n], XmNtopOffset, 2); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNleftOffset, 16); ++n;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNrightOffset, 4); ++n;  XtSetArg(args[n], XmNcolumns, 40); ++n;  printCmdText = XmCreateTextField(printDialog, "printCmd", args, n);  XtManageChild(printCmdText);  //----- "print with command"  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNtopWidget, printCmdText); ++n;  XtSetArg(args[n], XmNtopOffset, 4); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNindicatorType, XmONE_OF_MANY); ++n;  XtSetArg(args[n], XmNset, XmUNSET); ++n;  s = XmStringCreateLocalized("Print to file:");  XtSetArg(args[n], XmNlabelString, s); ++n;  printToFileBtn = XmCreateToggleButton(printDialog, "printToFile", args, n);  XmStringFree(s);  XtManageChild(printToFileBtn);  XtAddCallback(printToFileBtn, XmNvalueChangedCallback,		&printToFileBtnCbk, (XtPointer)this);  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNtopWidget, printToFileBtn); ++n;  XtSetArg(args[n], XmNtopOffset, 2); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNleftOffset, 16); ++n;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNrightOffset, 4); ++n;  XtSetArg(args[n], XmNcolumns, 40); ++n;  XtSetArg(args[n], XmNsensitive, False); ++n;  printFileText = XmCreateTextField(printDialog, "printFile", args, n);  XtManageChild(printFileText);  //----- separator  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNtopWidget, printFileText); ++n;  XtSetArg(args[n], XmNtopOffset, 8); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNleftOffset, 8); ++n;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNrightOffset, 8); ++n;  XtSetArg(args[n], XmNorientation, XmHORIZONTAL); ++n;  sep1 = XmCreateSeparator(printDialog, "sep1", args, n);  XtManageChild(sep1);  //----- page range  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNtopWidget, sep1); ++n;  XtSetArg(args[n], XmNtopOffset, 8); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNleftOffset, 4); ++n;  XtSetArg(args[n], XmNorientation, XmHORIZONTAL); ++n;  XtSetArg(args[n], XmNpacking, XmPACK_TIGHT); ++n;  row = XmCreateRowColumn(printDialog, "row", args, n);  XtManageChild(row);  n = 0;  s = XmStringCreateLocalized("Pages:");  XtSetArg(args[n], XmNlabelString, s); ++n;  label1 = XmCreateLabel(row, "label1", args, n);  XmStringFree(s);  XtManageChild(label1);  n = 0;  XtSetArg(args[n], XmNcolumns, 5); ++n;  printFirstPage = XmCreateTextField(row, "printFirstPage", args, n);  XtManageChild(printFirstPage);  n = 0;  s = XmStringCreateLocalized("to");  XtSetArg(args[n], XmNlabelString, s); ++n;  label2 = XmCreateLabel(row, "label2", args, n);  XmStringFree(s);  XtManageChild(label2);  n = 0;  XtSetArg(args[n], XmNcolumns, 5); ++n;  printLastPage = XmCreateTextField(row, "printLastPage", args, n);  XtManageChild(printLastPage);  //----- separator  n = 0;  XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); ++n;  XtSetArg(args[n], XmNtopWidget, row); ++n;  XtSetArg(args[n], XmNtopOffset, 8); ++n;  XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNleftOffset, 8); ++n;  XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); ++n;  XtSetArg(args[n], XmNrightOffset, 8); ++n;  XtSetArg(args[n], XmNorientation, XmHORIZONTAL); ++n;  sep2 = XmCreateSeparator(printDialog, "sep2", args, n);  XtManageChild(sep2);  //----- "pr

⌨️ 快捷键说明

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