upgrade to xpdf 3.00.
[swftools.git] / pdf2swf / xpdf / Catalog.h
index b0f3143..8ab7c61 100644 (file)
@@ -2,17 +2,20 @@
 //
 // Catalog.h
 //
-// Copyright 1996 Derek B. Noonburg
+// Copyright 1996-2003 Glyph & Cog, LLC
 //
 //========================================================================
 
 #ifndef CATALOG_H
 #define CATALOG_H
 
-#ifdef __GNUC__
+#include <aconf.h>
+
+#ifdef USE_GCC_PRAGMAS
 #pragma interface
 #endif
 
+class XRef;
 class Object;
 class Page;
 class PageAttrs;
@@ -27,7 +30,7 @@ class Catalog {
 public:
 
   // Constructor.
-  Catalog(Object *catDict);
+  Catalog(XRef *xrefA);
 
   // Destructor.
   ~Catalog();
@@ -47,6 +50,13 @@ public:
   // Return base URI, or NULL if none.
   GString *getBaseURI() { return baseURI; }
 
+  // Return the contents of the metadata stream, or NULL if there is
+  // no metadata.
+  GString *readMetadata();
+
+  // Return the structure tree root object.
+  Object *getStructTreeRoot() { return &structTreeRoot; }
+
   // Find a page, given its object ID.  Returns page number, or 0 if
   // not found.
   int findPage(int num, int gen);
@@ -55,8 +65,11 @@ public:
   // NULL if <name> is not a destination.
   LinkDest *findDest(GString *name);
 
+  Object *getOutline() { return &outline; }
+
 private:
 
+  XRef *xref;                  // the xref table for this PDF file
   Page **pages;                        // array of pages
   Ref *pageRefs;               // object ID for each page
   int numPages;                        // number of pages
@@ -64,6 +77,9 @@ private:
   Object dests;                        // named destination dictionary
   Object nameTree;             // name tree
   GString *baseURI;            // base URI for URI-type links
+  Object metadata;             // metadata stream
+  Object structTreeRoot;       // structure tree root dictionary
+  Object outline;              // outline dictionary
   GBool ok;                    // true if catalog is valid
 
   int readPageTree(Dict *pages, PageAttrs *attrs, int start);