diff options
author | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2003-03-02 15:02:20 (GMT) |
---|---|---|
committer | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2003-03-02 15:02:20 (GMT) |
commit | 465028163ee3576380d79de4d1679eeaa833b8c4 (patch) | |
tree | 7cfe3c91e927f2bbc5bf61d5a42b5daa4f311787 /pdf/xpdf/GnomeVFSStream.h | |
parent | 8f31a8727ebd8e58b2f31781d9de7760473665e0 (diff) |
new class, just what the name says, uses GnomeVFSStream for loading
* xpdf/nautilus-pdf-property-page.cc,
xpdf/nautilus-pdf-property-page.h: new class, just what the name
says, uses GnomeVFSStream for loading PDFDocs.
* xpdf/GnomeVFSStream.cc, xpdf/GnomeVFSStream.h: BaseStream
implementation based on (synchronous) gnome-vfs calls.
* xpdf/BonoboStream.cc, xpdf/BonoboStream.h: coding style fixage,
include only what's needed.
* xpdf/Makefile.am (gnome_pdf_viewer_SOURCES): also compile
GnomeVFSStream.{cc,h}, nautilus-pdf-property-page.{cc,h}
* xpdf/GNOME_PDF.server.in.in: add stanza for the Property Page.
* xpdf/bonobo-application-x-pdf.cc: clean up a bit
(gpdf_factory): now we produce the Property Page, too.
* xpdf/gpdf-control.cc: include time.h for strftime, mktime.
Diffstat (limited to 'pdf/xpdf/GnomeVFSStream.h')
-rw-r--r-- | pdf/xpdf/GnomeVFSStream.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/pdf/xpdf/GnomeVFSStream.h b/pdf/xpdf/GnomeVFSStream.h new file mode 100644 index 0000000..a02d288 --- /dev/null +++ b/pdf/xpdf/GnomeVFSStream.h @@ -0,0 +1,58 @@ +//======================================================================== +// +// GnomeVFSStream.cc +// +// Copyright 1996-2002 Glyph & Cog, LLC +// Copyright 2003 Martin Kretzschmar +// +//======================================================================== + +#ifndef GNOME_VFS_STREAM_H +#define GNOME_VFS_STREAM_H + +#include "gpdf-g-switch.h" +# include <libgnomevfs/gnome-vfs-handle.h> +#include "gpdf-g-switch.h" +#include "Object.h" +#include "Stream.h" + +#define gnomeVFSStreamBufSize fileStreamBufSize + +class GnomeVFSStream: public BaseStream { +public: + + GnomeVFSStream(GnomeVFSHandle *handleA, Guint startA, GBool limitedA, + Guint lengthA, Object *dictA); + virtual ~GnomeVFSStream(); + virtual Stream *makeSubStream(Guint startA, GBool limitedA, + Guint lengthA, Object *dictA); + virtual StreamKind getKind() { return strFile; } + virtual void reset(); + virtual void close(); + virtual int getChar() + { return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr++ & 0xff); } + virtual int lookChar() + { return (bufPtr >= bufEnd && !fillBuf()) ? EOF : (*bufPtr & 0xff); } + virtual int getPos() { return bufPos + (bufPtr - buf); } + virtual void setPos(Guint pos, int dir = 0); + virtual GBool isBinary(GBool last = gTrue) { return last; } + virtual Guint getStart() { return start; } + virtual void moveStart(int delta); + +private: + + GBool fillBuf(); + + GnomeVFSHandle *handle; + Guint start; + GBool limited; + Guint length; + char buf[gnomeVFSStreamBufSize]; + char *bufPtr; + char *bufEnd; + Guint bufPos; + int savePos; + GBool saved; +}; + +#endif /* GNOME_VFS_STREAM_H */ |