Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/XPDFViewer.h
diff options
context:
space:
mode:
authorMartin Kretzschmar <mkretzschmar@src.gnome.org>2003-03-31 16:45:09 (GMT)
committer Martin Kretzschmar <mkretzschmar@src.gnome.org>2003-03-31 16:45:09 (GMT)
commit6112dfe4b45b0305c7a6f61bd8a847f69f892cbb (patch)
treef75410ae7f3554f92ac89c4a42a0a8bc2da53f57 /pdf/xpdf/XPDFViewer.h
parent0152000b294f88a4e659fdbce1ee7558ba29111a (diff)
Initial revision
Diffstat (limited to 'pdf/xpdf/XPDFViewer.h')
-rw-r--r--pdf/xpdf/XPDFViewer.h236
1 files changed, 236 insertions, 0 deletions
diff --git a/pdf/xpdf/XPDFViewer.h b/pdf/xpdf/XPDFViewer.h
new file mode 100644
index 0000000..77875c4
--- /dev/null
+++ b/pdf/xpdf/XPDFViewer.h
@@ -0,0 +1,236 @@
+//========================================================================
+//
+// XPDFViewer.h
+//
+// Copyright 2002 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
+#define DISABLE_OUTLINE
+#endif
+
+class GString;
+class GList;
+class UnicodeMap;
+class LinkDest;
+class XPDFApp;
+
+//------------------------------------------------------------------------
+// XPDFViewer
+//------------------------------------------------------------------------
+
+class XPDFViewer {
+public:
+
+ XPDFViewer(XPDFApp *appA, GString *fileName,
+ int pageA, GString *destName,
+ GString *ownerPassword, GString *userPassword);
+ GBool isOk() { return ok; }
+ ~XPDFViewer();
+
+ void open(GString *fileName, int pageA, GString *destName);
+ void clear();
+
+ Widget getWindow() { return win; }
+
+private:
+
+ //----- load / display
+ GBool loadFile(GString *fileName, GString *ownerPassword = NULL,
+ GString *userPassword = NULL);
+ void reloadFile();
+ void displayPage(int pageA, int zoomA, int rotateA,
+ GBool scrollToTop, GBool addToHist);
+ void displayDest(LinkDest *dest, int zoomA, int rotateA,
+ GBool addToHist);
+ void getPageAndDest(int pageA, GString *destName,
+ int *pageOut, LinkDest **destOut);
+
+ //----- password dialog
+ static GString *reqPasswordCbk(void *data, GBool again);
+
+ //----- actions
+ static void actionCbk(void *data, char *action);
+
+ //----- keyboard/mouse input
+ static void keyPressCbk(void *data, char *s, KeySym key,
+ Guint modifiers);
+ static void mouseCbk(void *data, XEvent *event);
+
+ //----- GUI code: main window
+ void initWindow();
+ void mapWindow();
+ void closeWindow();
+ Widget getZoomMenuBtn(int 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);
+ static void zoomMenuCbk(Widget widget, XtPointer ptr,
+ XtPointer callData);
+ 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 rotateCCWCbk(Widget widget, XtPointer ptr,
+ XtPointer callData);
+ static void rotateCWCbk(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 *linkLabel);
+
+ //----- 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 setOpenDialogDir(char *dir);
+ 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);
+ static void findCloseCbk(Widget widget, XtPointer ptr,
+ XtPointer callData);
+
+ //----- GUI code: "save as" dialog
+ void initSaveAsDialog();
+ void setSaveAsDialogDir(char *dir);
+ 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);
+
+ //----- GUI code: password dialog
+ void initPasswordDialog();
+ static void passwordTextVerifyCbk(Widget widget, XtPointer ptr,
+ XtPointer callData);
+ static void passwordOkCbk(Widget widget, XtPointer ptr,
+ XtPointer callData);
+ static void passwordCancelCbk(Widget widget, XtPointer ptr,
+ XtPointer callData);
+ void getPassword(GBool again);
+
+ 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;
+#endif
+ XPDFCore *core;
+ Widget toolBar;
+ Widget backBtn;
+ Widget prevTenPageBtn;
+ Widget prevPageBtn;
+ Widget nextPageBtn;
+ Widget nextTenPageBtn;
+ Widget forwardBtn;
+ Widget pageNumText;
+ Widget pageCountLabel;
+ Widget zoomMenu;
+ Widget zoomMenuBtns[maxZoom - minZoom + 1 + 2];
+ 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 saveAsDialog;
+
+ Widget printDialog;
+ Widget printWithCmdBtn;
+ Widget printToFileBtn;
+ Widget printCmdText;
+ Widget printFileText;
+ Widget printFirstPage;
+ Widget printLastPage;
+
+ Widget passwordDialog;
+ Widget passwordMsg;
+ Widget passwordText;
+ int passwordDone;
+ GString *password;
+};
+
+#endif