1 //========================================================================
5 // Copyright 2002-2003 Glyph & Cog, LLC
7 //========================================================================
14 #ifdef USE_GCC_PRAGMAS
18 #define Object XtObject
24 #if (XmVERSION <= 1) && !defined(__sgi)
25 #define DISABLE_OUTLINE
34 //------------------------------------------------------------------------
36 //------------------------------------------------------------------------
41 XPDFViewer(XPDFApp *appA, GString *fileName,
42 int pageA, GString *destName,
43 GString *ownerPassword, GString *userPassword);
44 GBool isOk() { return ok; }
47 void open(GString *fileName, int pageA, GString *destName);
51 Widget getWindow() { return win; }
55 //----- load / display
56 GBool loadFile(GString *fileName, GString *ownerPassword = NULL,
57 GString *userPassword = NULL);
58 void displayPage(int pageA, int zoomA, int rotateA,
59 GBool scrollToTop, GBool addToHist);
60 void displayDest(LinkDest *dest, int zoomA, int rotateA,
62 void getPageAndDest(int pageA, GString *destName,
63 int *pageOut, LinkDest **destOut);
65 //----- password dialog
66 static GString *reqPasswordCbk(void *data, GBool again);
69 static void actionCbk(void *data, char *action);
71 //----- keyboard/mouse input
72 static void keyPressCbk(void *data, char *s, KeySym key,
74 static void mouseCbk(void *data, XEvent *event);
76 //----- GUI code: main window
80 Widget getZoomMenuBtn(int z);
81 static void prevPageCbk(Widget widget, XtPointer ptr,
83 static void prevTenPageCbk(Widget widget, XtPointer ptr,
85 static void nextPageCbk(Widget widget, XtPointer ptr,
87 static void nextTenPageCbk(Widget widget, XtPointer ptr,
89 static void backCbk(Widget widget, XtPointer ptr,
91 static void forwardCbk(Widget widget, XtPointer ptr,
93 static void zoomMenuCbk(Widget widget, XtPointer ptr,
95 static void findCbk(Widget widget, XtPointer ptr,
97 static void printCbk(Widget widget, XtPointer ptr,
99 static void aboutCbk(Widget widget, XtPointer ptr,
101 static void quitCbk(Widget widget, XtPointer ptr,
103 static void openCbk(Widget widget, XtPointer ptr,
105 static void openInNewWindowCbk(Widget widget, XtPointer ptr,
107 static void reloadCbk(Widget widget, XtPointer ptr,
109 static void saveAsCbk(Widget widget, XtPointer ptr,
111 static void rotateCCWCbk(Widget widget, XtPointer ptr,
113 static void rotateCWCbk(Widget widget, XtPointer ptr,
115 static void closeCbk(Widget widget, XtPointer ptr,
117 static void closeMsgCbk(Widget widget, XtPointer ptr,
119 static void pageNumCbk(Widget widget, XtPointer ptr,
121 static void updateCbk(void *data, GString *fileName,
122 int pageNum, int numPages, char *linkLabel);
124 //----- GUI code: outline
125 #ifndef DISABLE_OUTLINE
127 void setupOutlineItems(GList *items, Widget parent, UnicodeMap *uMap);
128 static void outlineSelectCbk(Widget widget, XtPointer ptr,
132 //----- GUI code: "about" dialog
133 void initAboutDialog();
135 //----- GUI code: "open" dialog
136 void initOpenDialog();
137 void setOpenDialogDir(char *dir);
138 void mapOpenDialog(GBool openInNewWindowA);
139 static void openOkCbk(Widget widget, XtPointer ptr,
142 //----- GUI code: "find" dialog
143 void initFindDialog();
144 static void findFindCbk(Widget widget, XtPointer ptr,
146 static void findCloseCbk(Widget widget, XtPointer ptr,
149 //----- GUI code: "save as" dialog
150 void initSaveAsDialog();
151 void setSaveAsDialogDir(char *dir);
152 void mapSaveAsDialog();
153 static void saveAsOkCbk(Widget widget, XtPointer ptr,
156 //----- GUI code: "print" dialog
157 void initPrintDialog();
158 void setupPrintDialog();
159 static void printWithCmdBtnCbk(Widget widget, XtPointer ptr,
161 static void printToFileBtnCbk(Widget widget, XtPointer ptr,
163 static void printPrintCbk(Widget widget, XtPointer ptr,
166 //----- GUI code: password dialog
167 void initPasswordDialog();
168 static void passwordTextVerifyCbk(Widget widget, XtPointer ptr,
170 static void passwordOkCbk(Widget widget, XtPointer ptr,
172 static void passwordCancelCbk(Widget widget, XtPointer ptr,
174 void getPassword(GBool again);
176 //----- Motif support
177 XmFontList createFontList(char *xlfd);
184 Widget win; // top-level window
187 #ifndef DISABLE_OUTLINE
188 Widget outlineScroll;
190 Widget *outlineLabels;
191 int outlineLabelsLength;
192 int outlineLabelsSize;
197 Widget prevTenPageBtn;
200 Widget nextTenPageBtn;
203 Widget pageCountLabel;
205 Widget zoomMenuBtns[maxZoom - minZoom + 1 + 2];
214 XmFontList aboutBigFont, aboutVersionFont, aboutFixedFont;
217 GBool openInNewWindow;
225 Widget printWithCmdBtn;
226 Widget printToFileBtn;
228 Widget printFileText;
229 Widget printFirstPage;
230 Widget printLastPage;
232 Widget passwordDialog;