X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fxpdf%2FXPDFCore.h;h=59fc19c5270715b0e8c81b5d2570630deedb60ee;hb=6c3ca0cf2c626fce12897ea0937c07f2d7863d2f;hp=cf5308e37505daee74ce5ae1c458b6515761743f;hpb=9ac495d6543dbd65992791bb41d5f8fbf90e549c;p=evince.git diff --git a/pdf/xpdf/XPDFCore.h b/pdf/xpdf/XPDFCore.h index cf5308e3..59fc19c5 100644 --- a/pdf/xpdf/XPDFCore.h +++ b/pdf/xpdf/XPDFCore.h @@ -2,7 +2,7 @@ // // XPDFCore.h // -// Copyright 2002 Glyph & Cog, LLC +// Copyright 2002-2003 Glyph & Cog, LLC // //======================================================================== @@ -21,23 +21,23 @@ #include #include "gtypes.h" #include "gfile.h" // for time_t +#include "SplashTypes.h" class GString; class GList; +class BaseStream; class PDFDoc; class LinkAction; class LinkDest; -class XPixmapOutputDev; +class XSplashOutputDev; //------------------------------------------------------------------------ // zoom factor //------------------------------------------------------------------------ -#define minZoom -5 -#define maxZoom 5 -#define zoomPage 100 -#define zoomWidth 101 -#define defZoom 1 +#define zoomPage -1 +#define zoomWidth -2 +#define defZoom 125 //------------------------------------------------------------------------ // XPDFHistory @@ -57,8 +57,9 @@ struct XPDFHistory { struct XPDFRegion { int page; double xMin, yMin, xMax, yMax; - Gulong color; - Gulong selectColor; + SplashRGB8 color; + SplashRGB8 selectColor; + GBool selectable; }; //------------------------------------------------------------------------ @@ -86,8 +87,8 @@ public: // Create viewer core inside . XPDFCore(Widget shellA, Widget parentWidgetA, - Gulong paperColorA, GBool fullScreenA, GBool reverseVideo, - GBool installCmap, int rgbCubeSize); + SplashRGB8 paperColorA, GBool fullScreenA, + GBool reverseVideo, GBool installCmap, int rgbCubeSize); ~XPDFCore(); @@ -97,6 +98,11 @@ public: int loadFile(GString *fileName, GString *ownerPassword = NULL, GString *userPassword = NULL); + // Load a new file, via a Stream instead of a file name. Returns + // pdfOk or error code. + int loadFile(BaseStream *stream, GString *ownerPassword = NULL, + GString *userPassword = NULL); + // Resize the window to fit page of the current document. void resizeToPage(int pg); @@ -107,11 +113,11 @@ public: // set, the window is vertically scrolled to the top; otherwise, no // scrolling is done. If is set, this page change is // added to the history list. - void displayPage(int pageA, int zoomA, int rotateA, + void displayPage(int pageA, double zoomA, int rotateA, GBool scrollToTop, GBool addToHist); // Display a link destination. - void displayDest(LinkDest *dest, int zoomA, int rotateA, + void displayDest(LinkDest *dest, double zoomA, int rotateA, GBool addToHist); //----- page/position changes @@ -144,7 +150,7 @@ public: //----- find - void find(char *s); + void find(char *s, GBool next = gFalse); //----- simple modal dialogs @@ -157,9 +163,9 @@ public: Widget getWidget() { return scrolledWin; } Widget getDrawAreaWidget() { return drawArea; } PDFDoc *getDoc() { return doc; } - XPixmapOutputDev *getOutputDev() { return out; } + XSplashOutputDev *getOutputDev() { return out; } int getPageNum() { return page; } - int getZoom() { return zoom; } + double getZoom() { return zoom; } double getZoomDPI() { return dpi; } int getRotate() { return rotate; } GBool canGoBack() { return historyBLen > 1; } @@ -187,8 +193,9 @@ public: private: //----- hyperlinks - void doLink(int mx, int my); + GBool doLink(int mx, int my); void runCommand(GString *cmdFmt, GString *arg); + GString *mungeURL(GString *url); //----- selection static Boolean convertSelectionCbk(Widget widget, Atom *selection, @@ -222,7 +229,7 @@ private: static void dialogCancelCbk(Widget widget, XtPointer ptr, XtPointer callData); - Gulong paperColor; + SplashRGB8 paperColor; GBool fullScreen; Display *display; @@ -239,8 +246,6 @@ private: Cursor busyCursor, linkCursor, selectCursor; Cursor currentCursor; GC drawAreaGC; // GC for blitting into drawArea - GC selectGC; - GC highlightGC; int drawAreaWidth, drawAreaHeight; int scrollX, scrollY; // current upper-left corner @@ -253,6 +258,7 @@ private: GBool lastDragTop; // last dragged selection edge was top/bottom static GString *currentSelection; // selected text static XPDFCore *currentSelectionOwner; + static Atom targetsAtom; GBool panning; int panMX, panMY; @@ -267,7 +273,7 @@ private: PDFDoc *doc; // current PDF file int page; // current page number - int zoom; // current zoom level + double zoom; // current zoom level, in percent of 72 dpi double dpi; // current zoom level, in DPI int rotate; // current page rotation time_t modTime; // last modification time of PDF file @@ -289,7 +295,7 @@ private: GBool hyperlinksEnabled; GBool selectEnabled; - XPixmapOutputDev *out; + XSplashOutputDev *out; int dialogDone; };