18#define Object XtObject
30class XPixmapOutputDev;
51#define xpdfHistorySize 50
59 double xMin, yMin, xMax, yMax;
68typedef void (*XPDFUpdateCbk)( void *data, GString *fileName,
69 int pageNum, int numPages, char *linkLabel);
71typedef void (*XPDFActionCbk)( void *data, char *action);
73typedef void (*XPDFKeyPressCbk)( void *data, char *s, KeySym key,
76typedef void (*XPDFMouseCbk)( void *data, XEvent *event);
78typedef GString *(*XPDFReqPasswordCbk)( void *data, GBool again);
88 XPDFCore(Widget shellA, Widget parentWidgetA,
89 Gulong paperColorA, GBool fullScreenA, GBool reverseVideo,
90 GBool installCmap, int rgbCubeSize);
97 int loadFile(GString *fileName, GString *ownerPassword = NULL,
98 GString *userPassword = NULL);
101 void resizeToPage( int pg);
110 void displayPage( int pageA, int zoomA, int rotateA,
111 GBool scrollToTop, GBool addToHist);
114 void displayDest(LinkDest *dest, int zoomA, int rotateA,
119 void gotoNextPage( int inc, GBool top);
120 void gotoPrevPage( int dec, GBool top, GBool bottom);
123 void scrollLeft( int nCols = 1);
124 void scrollRight( int nCols = 1);
125 void scrollUp( int nLines = 1);
126 void scrollDown( int nLines = 1);
128 void scrollPageDown();
129 void scrollTo( int x, int y);
133 void setSelection( int newXMin, int newYMin, int newXMax, int newYMax);
134 void moveSelection( int mx, int my);
135 void copySelection();
136 GBool getSelection( int *xMin, int *yMin, int *xMax, int *yMax);
137 GString *extractText( int xMin, int yMin, int xMax, int yMax);
138 GString *extractText( int pageNum, int xMin, int yMin, int xMax, int yMax);
142 void doAction(LinkAction *action);
151 GBool doQuestionDialog( char *title, GString *msg);
152 void doInfoDialog( char *title, GString *msg);
153 void doErrorDialog( char *title, GString *msg);
157 Widget getWidget() { return scrolledWin; }
158 Widget getDrawAreaWidget() { return drawArea; }
159 PDFDoc *getDoc() { return doc; }
160 XPixmapOutputDev *getOutputDev() { return out; }
161 int getPageNum() { return page; }
162 int getZoom() { return zoom; }
163 double getZoomDPI() { return dpi; }
164 int getRotate() { return rotate; }
165 GBool canGoBack() { return historyBLen > 1; }
166 GBool canGoForward() { return historyFLen > 0; }
167 int getScrollX() { return scrollX; }
168 int getScrollY() { return scrollY; }
169 int getDrawAreaWidth() { return drawAreaWidth; }
170 int getDrawAreaHeight() { return drawAreaHeight; }
171 void setBusyCursor(GBool busy);
173 void enableHyperlinks(GBool on) { hyperlinksEnabled = on; }
174 void enableSelect(GBool on) { selectEnabled = on; }
175 void setUpdateCbk(XPDFUpdateCbk cbk, void *data)
176 { updateCbk = cbk; updateCbkData = data; }
177 void setActionCbk(XPDFActionCbk cbk, void *data)
178 { actionCbk = cbk; actionCbkData = data; }
179 void setKeyPressCbk(XPDFKeyPressCbk cbk, void *data)
180 { keyPressCbk = cbk; keyPressCbkData = data; }
181 void setMouseCbk(XPDFMouseCbk cbk, void *data)
182 { mouseCbk = cbk; mouseCbkData = data; }
183 void setReqPasswordCbk(XPDFReqPasswordCbk cbk, void *data)
184 { reqPasswordCbk = cbk; reqPasswordCbkData = data; }
189 void doLink( int mx, int my);
190 void runCommand(GString *cmdFmt, GString *arg);
193 static Boolean convertSelectionCbk(Widget widget, Atom *selection,
194 Atom *target, Atom *type,
195 XtPointer *value, unsigned long *length,
201 static void hScrollChangeCbk(Widget widget, XtPointer ptr,
203 static void hScrollDragCbk(Widget widget, XtPointer ptr,
205 static void vScrollChangeCbk(Widget widget, XtPointer ptr,
207 static void vScrollDragCbk(Widget widget, XtPointer ptr,
209 static void resizeCbk(Widget widget, XtPointer ptr, XtPointer callData);
210 static void redrawCbk(Widget widget, XtPointer ptr, XtPointer callData);
211 static void outputDevRedrawCbk( void *data);
212 static void inputCbk(Widget widget, XtPointer ptr, XtPointer callData);
213 void keyPress( char *s, KeySym key, Guint modifiers);
214 void redrawRectangle( int x, int y, int w, int h);
215 void updateScrollBars();
216 void setCursor(Cursor cursor);
217 GBool doDialog( int type, GBool hasCancel,
218 char *title, GString *msg);
219 static void dialogOkCbk(Widget widget, XtPointer ptr,
221 static void dialogCancelCbk(Widget widget, XtPointer ptr,
236 Widget drawAreaFrame;
238 Cursor busyCursor, linkCursor, selectCursor;
239 Cursor currentCursor;
244 int drawAreaWidth, drawAreaHeight;
245 int scrollX, scrollY;
247 int selectXMin, selectYMin,
248 selectXMax, selectYMax;
253 static GString *currentSelection;
254 static XPDFCore *currentSelectionOwner;
260 history[xpdfHistorySize];
274 LinkAction *linkAction;
277 XPDFUpdateCbk updateCbk;
279 XPDFActionCbk actionCbk;
281 XPDFKeyPressCbk keyPressCbk;
282 void *keyPressCbkData;
283 XPDFMouseCbk mouseCbk;
285 XPDFReqPasswordCbk reqPasswordCbk;
286 void *reqPasswordCbkData;
288 GBool hyperlinksEnabled;
291 XPixmapOutputDev *out;
|