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

📄 xpdfviewer.h

📁 这是一个做pdf阅读器的源代码文件,是大家学习阅读器资料的很好参考
💻 H
字号:
//========================================================================//// XPDFViewer.h//// Copyright 2002-2003 Glyph & Cog, LLC////========================================================================#ifndef XPDFVIEWER_H#define XPDFVIEWER_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#define Object XtObject#include <Xm/XmAll.h>#undef Object#include "gtypes.h"#include "XPDFCore.h"#if (XmVERSION <= 1) && !defined(__sgi)#define DISABLE_OUTLINE#endif#if (XmVERSION >= 2 && !defined(LESSTIF_VERSION))#  define USE_COMBO_BOX 1#else#  undef USE_COMBO_BOX#endifclass GString;class GList;class UnicodeMap;class LinkDest;class XPDFApp;class XPDFViewer;//------------------------------------------------------------------------// NB: this must match the defn of zoomMenuBtnInfo in XPDFViewer.cc#define nZoomMenuItems 10//------------------------------------------------------------------------struct XPDFViewerCmd {  char *name;  int nArgs;  GBool requiresDoc;  GBool requiresEvent;  void (XPDFViewer::*func)(GString *args[], int nArgs, XEvent *event);};//------------------------------------------------------------------------// XPDFViewer//------------------------------------------------------------------------class XPDFViewer {public:  XPDFViewer(XPDFApp *appA, GString *fileName,	     int pageA, GString *destName, GBool fullScreen,	     GString *ownerPassword, GString *userPassword);  XPDFViewer(XPDFApp *appA, PDFDoc *doc, int pageA,	     GString *destName, GBool fullScreen);  GBool isOk() { return ok; }  ~XPDFViewer();  void open(GString *fileName, int pageA, GString *destName);  void clear();  void reloadFile();  void execCmd(GString *cmd, XEvent *event);  Widget getWindow() { return win; }private:  //----- load / display  GBool loadFile(GString *fileName, GString *ownerPassword = NULL,		 GString *userPassword = NULL);  void displayPage(int pageA, double zoomA, int rotateA,                   GBool scrollToTop, GBool addToHist);  void displayDest(LinkDest *dest, double zoomA, int rotateA,		   GBool addToHist);  void getPageAndDest(int pageA, GString *destName,		      int *pageOut, LinkDest **destOut);  //----- hyperlinks / actions  void doLink(int wx, int wy, GBool onlyIfNoSelection, GBool newWin);  static void actionCbk(void *data, char *action);  //----- keyboard/mouse input  static void keyPressCbk(void *data, KeySym key, Guint modifiers,			  XEvent *event);  static void mouseCbk(void *data, XEvent *event);  int getModifiers(Guint modifiers);  int getContext(Guint modifiers);  //----- command functions  void cmdAbout(GString *args[], int nArgs, XEvent *event);  void cmdCloseOutline(GString *args[], int nArgs, XEvent *event);  void cmdCloseWindow(GString *args[], int nArgs, XEvent *event);  void cmdContinuousMode(GString *args[], int nArgs, XEvent *event);  void cmdEndPan(GString *args[], int nArgs, XEvent *event);  void cmdEndSelection(GString *args[], int nArgs, XEvent *event);  void cmdFind(GString *args[], int nArgs, XEvent *event);  void cmdFindNext(GString *args[], int nArgs, XEvent *event);  void cmdFocusToDocWin(GString *args[], int nArgs, XEvent *event);  void cmdFocusToPageNum(GString *args[], int nArgs, XEvent *event);  void cmdFollowLink(GString *args[], int nArgs, XEvent *event);  void cmdFollowLinkInNewWin(GString *args[], int nArgs, XEvent *event);  void cmdFollowLinkInNewWinNoSel(GString *args[], int nArgs, XEvent *event);  void cmdFollowLinkNoSel(GString *args[], int nArgs, XEvent *event);  void cmdFullScreenMode(GString *args[], int nArgs, XEvent *event);  void cmdGoBackward(GString *args[], int nArgs, XEvent *event);  void cmdGoForward(GString *args[], int nArgs, XEvent *event);  void cmdGotoDest(GString *args[], int nArgs, XEvent *event);  void cmdGotoLastPage(GString *args[], int nArgs, XEvent *event);  void cmdGotoLastPageNoScroll(GString *args[], int nArgs, XEvent *event);  void cmdGotoPage(GString *args[], int nArgs, XEvent *event);  void cmdGotoPageNoScroll(GString *args[], int nArgs, XEvent *event);  void cmdNextPage(GString *args[], int nArgs, XEvent *event);  void cmdNextPageNoScroll(GString *args[], int nArgs, XEvent *event);  void cmdOpen(GString *args[], int nArgs, XEvent *event);  void cmdOpenFile(GString *args[], int nArgs, XEvent *event);  void cmdOpenFileAtDest(GString *args[], int nArgs, XEvent *event);  void cmdOpenFileAtDestInNewWin(GString *args[], int nArgs, XEvent *event);  void cmdOpenFileAtPage(GString *args[], int nArgs, XEvent *event);  void cmdOpenFileAtPageInNewWin(GString *args[], int nArgs, XEvent *event);  void cmdOpenFileInNewWin(GString *args[], int nArgs, XEvent *event);  void cmdOpenInNewWin(GString *args[], int nArgs, XEvent *event);  void cmdOpenOutline(GString *args[], int nArgs, XEvent *event);  void cmdPageDown(GString *args[], int nArgs, XEvent *event);  void cmdPageUp(GString *args[], int nArgs, XEvent *event);  void cmdPostPopupMenu(GString *args[], int nArgs, XEvent *event);  void cmdPrevPage(GString *args[], int nArgs, XEvent *event);  void cmdPrevPageNoScroll(GString *args[], int nArgs, XEvent *event);  void cmdPrint(GString *args[], int nArgs, XEvent *event);  void cmdQuit(GString *args[], int nArgs, XEvent *event);  void cmdRaise(GString *args[], int nArgs, XEvent *event);  void cmdRedraw(GString *args[], int nArgs, XEvent *event);  void cmdReload(GString *args[], int nArgs, XEvent *event);  void cmdRun(GString *args[], int nArgs, XEvent *event);  void cmdScrollDown(GString *args[], int nArgs, XEvent *event);  void cmdScrollDownNextPage(GString *args[], int nArgs, XEvent *event);  void cmdScrollLeft(GString *args[], int nArgs, XEvent *event);  void cmdScrollOutlineDown(GString *args[], int nArgs, XEvent *event);  void cmdScrollOutlineUp(GString *args[], int nArgs, XEvent *event);  void cmdScrollRight(GString *args[], int nArgs, XEvent *event);  void cmdScrollToBottomEdge(GString *args[], int nArgs, XEvent *event);  void cmdScrollToBottomRight(GString *args[], int nArgs, XEvent *event);  void cmdScrollToLeftEdge(GString *args[], int nArgs, XEvent *event);  void cmdScrollToRightEdge(GString *args[], int nArgs, XEvent *event);  void cmdScrollToTopEdge(GString *args[], int nArgs, XEvent *event);  void cmdScrollToTopLeft(GString *args[], int nArgs, XEvent *event);  void cmdScrollUp(GString *args[], int nArgs, XEvent *event);  void cmdScrollUpPrevPage(GString *args[], int nArgs, XEvent *event);  void cmdSinglePageMode(GString *args[], int nArgs, XEvent *event);  void cmdStartPan(GString *args[], int nArgs, XEvent *event);  void cmdStartSelection(GString *args[], int nArgs, XEvent *event);  void cmdToggleContinuousMode(GString *args[], int nArgs, XEvent *event);  void cmdToggleFullScreenMode(GString *args[], int nArgs, XEvent *event);  void cmdToggleOutline(GString *args[], int nArgs, XEvent *event);  void cmdWindowMode(GString *args[], int nArgs, XEvent *event);  void cmdZoomFitPage(GString *args[], int nArgs, XEvent *event);  void cmdZoomFitWidth(GString *args[], int nArgs, XEvent *event);  void cmdZoomIn(GString *args[], int nArgs, XEvent *event);  void cmdZoomOut(GString *args[], int nArgs, XEvent *event);  void cmdZoomPercent(GString *args[], int nArgs, XEvent *event);  void cmdZoomToSelection(GString *args[], int nArgs, XEvent *event);  //----- GUI code: main window  void initWindow(GBool fullScreen);  void initToolbar(Widget parent);#ifndef DISABLE_OUTLINE  void initPanedWin(Widget parent);#endif  void initCore(Widget parent, GBool fullScreen);  void initPopupMenu();  void addToolTip(Widget widget, char *text);  void mapWindow();  void closeWindow();  int getZoomIdx();  void setZoomIdx(int idx);  void setZoomVal(double z);  static void prevPageCbk(Widget widget, XtPointer ptr,			  XtPointer callData);  static void prevTenPageCbk(Widget widget, XtPointer ptr,			     XtPointer callData);  static void nextPageCbk(Widget widget, XtPointer ptr,			  XtPointer callData);  static void nextTenPageCbk(Widget widget, XtPointer ptr,			     XtPointer callData);  static void backCbk(Widget widget, XtPointer ptr,		      XtPointer callData);  static void forwardCbk(Widget widget, XtPointer ptr,			 XtPointer callData);#if USE_COMBO_BOX  static void zoomComboBoxCbk(Widget widget, XtPointer ptr,			      XtPointer callData);#else  static void zoomMenuCbk(Widget widget, XtPointer ptr,			  XtPointer callData);#endif  static void findCbk(Widget widget, XtPointer ptr,		      XtPointer callData);  static void printCbk(Widget widget, XtPointer ptr,		       XtPointer callData);  static void aboutCbk(Widget widget, XtPointer ptr,		       XtPointer callData);  static void quitCbk(Widget widget, XtPointer ptr,		      XtPointer callData);  static void openCbk(Widget widget, XtPointer ptr,		      XtPointer callData);  static void openInNewWindowCbk(Widget widget, XtPointer ptr,				 XtPointer callData);  static void reloadCbk(Widget widget, XtPointer ptr,			XtPointer callData);  static void saveAsCbk(Widget widget, XtPointer ptr,			XtPointer callData);  static void continuousModeToggleCbk(Widget widget, XtPointer ptr,				      XtPointer callData);  static void fullScreenToggleCbk(Widget widget, XtPointer ptr,				  XtPointer callData);  static void rotateCCWCbk(Widget widget, XtPointer ptr,			   XtPointer callData);  static void rotateCWCbk(Widget widget, XtPointer ptr,			  XtPointer callData);  static void zoomToSelectionCbk(Widget widget, XtPointer ptr,				 XtPointer callData);  static void closeCbk(Widget widget, XtPointer ptr,		       XtPointer callData);  static void closeMsgCbk(Widget widget, XtPointer ptr,			  XtPointer callData);  static void pageNumCbk(Widget widget, XtPointer ptr,			 XtPointer callData);  static void updateCbk(void *data, GString *fileName,			int pageNum, int numPages, char *linkString);  //----- GUI code: outline#ifndef DISABLE_OUTLINE  void setupOutline();  void setupOutlineItems(GList *items, Widget parent, UnicodeMap *uMap);  static void outlineSelectCbk(Widget widget, XtPointer ptr,			       XtPointer callData);#endif  //----- GUI code: "about" dialog  void initAboutDialog();  //----- GUI code: "open" dialog  void initOpenDialog();  void mapOpenDialog(GBool openInNewWindowA);  static void openOkCbk(Widget widget, XtPointer ptr,			XtPointer callData);  //----- GUI code: "find" dialog  void initFindDialog();  static void findFindCbk(Widget widget, XtPointer ptr,			  XtPointer callData);  void mapFindDialog();  void doFind(GBool next);  static void findCloseCbk(Widget widget, XtPointer ptr,			   XtPointer callData);  //----- GUI code: "save as" dialog  void initSaveAsDialog();  void mapSaveAsDialog();  static void saveAsOkCbk(Widget widget, XtPointer ptr,			  XtPointer callData);  //----- GUI code: "print" dialog  void initPrintDialog();  void setupPrintDialog();  static void printWithCmdBtnCbk(Widget widget, XtPointer ptr,				 XtPointer callData);  static void printToFileBtnCbk(Widget widget, XtPointer ptr,				XtPointer callData);  static void printPrintCbk(Widget widget, XtPointer ptr,			    XtPointer callData);  //----- Motif support  XmFontList createFontList(char *xlfd);  static XPDFViewerCmd cmdTab[];  XPDFApp *app;  GBool ok;  Display *display;  int screenNum;  Widget win;			// top-level window  Widget form;  Widget panedWin;#ifndef DISABLE_OUTLINE  Widget outlineScroll;  Widget outlineTree;  Widget *outlineLabels;  int outlineLabelsLength;  int outlineLabelsSize;  Dimension outlinePaneWidth;#endif  XPDFCore *core;  Widget toolBar;  Widget backBtn;  Widget prevTenPageBtn;  Widget prevPageBtn;  Widget nextPageBtn;  Widget nextTenPageBtn;  Widget forwardBtn;  Widget pageNumText;  Widget pageCountLabel;#if USE_COMBO_BOX  Widget zoomComboBox;#else  Widget zoomMenu;  Widget zoomMenuBtns[nZoomMenuItems];#endif  Widget zoomWidget;  Widget findBtn;  Widget printBtn;  Widget aboutBtn;  Widget linkLabel;  Widget quitBtn;  Widget popupMenu;  Widget aboutDialog;  XmFontList aboutBigFont, aboutVersionFont, aboutFixedFont;  Widget openDialog;  GBool openInNewWindow;  Widget findDialog;  Widget findText;  Widget findBackwardToggle;  Widget findCaseSensitiveToggle;  Widget saveAsDialog;  Widget printDialog;  Widget printWithCmdBtn;  Widget printToFileBtn;  Widget printCmdText;  Widget printFileText;  Widget printFirstPage;  Widget printLastPage;};#endif

⌨️ 快捷键说明

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