diff options
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/poppler/Catalog.h')
-rw-r--r-- | Build/source/libs/poppler/poppler-src/poppler/Catalog.h | 300 |
1 files changed, 0 insertions, 300 deletions
diff --git a/Build/source/libs/poppler/poppler-src/poppler/Catalog.h b/Build/source/libs/poppler/poppler-src/poppler/Catalog.h deleted file mode 100644 index 0467159a2d4..00000000000 --- a/Build/source/libs/poppler/poppler-src/poppler/Catalog.h +++ /dev/null @@ -1,300 +0,0 @@ -//======================================================================== -// -// Catalog.h -// -// Copyright 1996-2007 Glyph & Cog, LLC -// -//======================================================================== - -//======================================================================== -// -// Modified under the Poppler project - http://poppler.freedesktop.org -// -// All changes made under the Poppler project to this file are licensed -// under GPL version 2 or later -// -// Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com> -// Copyright (C) 2005, 2007, 2009-2011, 2013, 2017, 2018 Albert Astals Cid <aacid@kde.org> -// Copyright (C) 2005 Jonathan Blandford <jrb@redhat.com> -// Copyright (C) 2005, 2006, 2008 Brad Hards <bradh@frogmouth.net> -// Copyright (C) 2007 Julien Rebetez <julienr@svn.gnome.org> -// Copyright (C) 2008, 2011 Pino Toscano <pino@kde.org> -// Copyright (C) 2010 Hib Eris <hib@hiberis.nl> -// Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it> -// Copyright (C) 2013 Thomas Freitag <Thomas.Freitag@alfa.de> -// Copyright (C) 2013 Adrian Perez de Castro <aperez@igalia.com> -// Copyright (C) 2013, 2017 Adrian Johnson <ajohnson@redneon.com> -// Copyright (C) 2013 José Aliste <jaliste@src.gnome.org> -// Copyright (C) 2016 Masamichi Hosoda <trueroad@trueroad.jp> -// Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>. Work sponsored by the LiMux project of the city of Munich -// -// To see a description of the changes please see the Changelog file that -// came with your tarball or type make ChangeLog if you are building from git -// -//======================================================================== - -#ifndef CATALOG_H -#define CATALOG_H - -#ifdef USE_GCC_PRAGMAS -#pragma interface -#endif - -#include "poppler-config.h" -#include "Object.h" -#include "goo/GooMutex.h" - -#include <vector> - -class PDFDoc; -class XRef; -class Object; -class Page; -class PageAttrs; -struct Ref; -class LinkDest; -class LinkAction; -class PageLabelInfo; -class Form; -class OCGs; -class ViewerPreferences; -class FileSpec; -class StructTreeRoot; - -//------------------------------------------------------------------------ -// NameTree -//------------------------------------------------------------------------ - -class NameTree { -public: - NameTree(); - ~NameTree(); - - NameTree(const NameTree &) = delete; - NameTree& operator=(const NameTree &) = delete; - - void init(XRef *xref, Object *tree); - Object lookup(const GooString *name); - int numEntries() { return length; }; - // iterator accessor, note it returns a pointer to the internal object, do not free nor delete it - Object *getValue(int i); - GooString *getName(int i); - -private: - struct Entry { - Entry(Array *array, int index); - ~Entry(); - GooString name; - Object value; - void free(); - static int cmpEntry(const void *voidEntry, const void *voidOtherEntry); - static int cmp(const void *key, const void *entry); - }; - - void parse(Object *tree, std::set<int> &seen); - void addEntry(Entry *entry); - - XRef *xref; - Object *root; - Entry **entries; - int size, length; // size is the number of entries in - // the array of Entry* - // length is the number of real Entry -}; - -//------------------------------------------------------------------------ -// Catalog -//------------------------------------------------------------------------ - -class Catalog { -public: - - // Constructor. - Catalog(PDFDoc *docA); - - // Destructor. - ~Catalog(); - - Catalog(const Catalog &) = delete; - Catalog& operator=(const Catalog &) = delete; - - // Is catalog valid? - GBool isOk() { return ok; } - - // Get number of pages. - int getNumPages(); - - // Get a page. - Page *getPage(int i); - - // Get the reference for a page object. - Ref *getPageRef(int i); - - // Return base URI, or NULL if none. - GooString *getBaseURI() { return baseURI; } - - // Return the contents of the metadata stream, or NULL if there is - // no metadata. - GooString *readMetadata(); - - // Return the structure tree root object. - StructTreeRoot *getStructTreeRoot(); - - // Return values from the MarkInfo dictionary as flags in a bitfield. - enum MarkInfoFlags { - markInfoNull = 1 << 0, - markInfoMarked = 1 << 1, - markInfoUserProperties = 1 << 2, - markInfoSuspects = 1 << 3, - }; - Guint getMarkInfo(); - - // Find a page, given its object ID. Returns page number, or 0 if - // not found. - int findPage(int num, int gen); - - // Find a named destination. Returns the link destination, or - // NULL if <name> is not a destination. - LinkDest *findDest(const GooString *name); - - Object *getDests(); - - // Get the number of named destinations in name-dict - int numDests(); - - // Get the i'th named destination name in name-dict - char *getDestsName(int i); - - // Get the i'th named destination link destination in name-dict - LinkDest *getDestsDest(int i); - - // Get the number of named destinations in name-tree - int numDestNameTree() { return getDestNameTree()->numEntries(); } - - // Get the i'th named destination name in name-tree - GooString *getDestNameTreeName(int i) { return getDestNameTree()->getName(i); } - - // Get the i'th named destination link destination in name-tree - LinkDest *getDestNameTreeDest(int i); - - // Get the number of embedded files - int numEmbeddedFiles() { return getEmbeddedFileNameTree()->numEntries(); } - - // Get the i'th file embedded (at the Document level) in the document - FileSpec *embeddedFile(int i); - - // Get the number of javascript scripts - int numJS() { return getJSNameTree()->numEntries(); } - GooString *getJSName(int i) { return getJSNameTree()->getName(i); } - - // Get the i'th JavaScript script (at the Document level) in the document - GooString *getJS(int i); - - // Convert between page indices and page labels. - GBool labelToIndex(GooString *label, int *index); - GBool indexToLabel(int index, GooString *label); - - Object *getOutline(); - - Object *getAcroForm() { return &acroForm; } - - OCGs *getOptContentConfig() { return optContent; } - - enum FormType - { - NoForm, - AcroForm, - XfaForm - }; - - FormType getFormType(); - Form* getForm(); - - ViewerPreferences *getViewerPreferences(); - - enum PageMode { - pageModeNone, - pageModeOutlines, - pageModeThumbs, - pageModeFullScreen, - pageModeOC, - pageModeAttach, - pageModeNull - }; - enum PageLayout { - pageLayoutNone, - pageLayoutSinglePage, - pageLayoutOneColumn, - pageLayoutTwoColumnLeft, - pageLayoutTwoColumnRight, - pageLayoutTwoPageLeft, - pageLayoutTwoPageRight, - pageLayoutNull - }; - - // Returns the page mode. - PageMode getPageMode(); - PageLayout getPageLayout(); - - enum DocumentAdditionalActionsType { - actionCloseDocument, ///< Performed before closing the document - actionSaveDocumentStart, ///< Performed before saving the document - actionSaveDocumentFinish, ///< Performed after saving the document - actionPrintDocumentStart, ///< Performed before printing the document - actionPrintDocumentFinish, ///< Performed after printing the document - }; - - LinkAction *getAdditionalAction(DocumentAdditionalActionsType type); - -private: - - // Get page label info. - PageLabelInfo *getPageLabelInfo(); - - PDFDoc *doc; - XRef *xref; // the xref table for this PDF file - Page **pages; // array of pages - Ref *pageRefs; // object ID for each page - int lastCachedPage; - std::vector<Object> *pagesList; - std::vector<Ref> *pagesRefList; - std::vector<PageAttrs *> *attrsList; - std::vector<int> *kidsIdxList; - Form *form; - ViewerPreferences *viewerPrefs; - int numPages; // number of pages - int pagesSize; // size of pages array - Object dests; // named destination dictionary - Object names; // named names dictionary - NameTree *destNameTree; // named destination name-tree - NameTree *embeddedFileNameTree; // embedded file name-tree - NameTree *jsNameTree; // Java Script name-tree - GooString *baseURI; // base URI for URI-type links - Object metadata; // metadata stream - StructTreeRoot *structTreeRoot; // structure tree root - Guint markInfo; // Flags from MarkInfo dictionary - Object outline; // outline dictionary - Object acroForm; // AcroForm dictionary - Object viewerPreferences; // ViewerPreference dictionary - OCGs *optContent; // Optional Content groups - GBool ok; // true if catalog is valid - PageLabelInfo *pageLabelInfo; // info about page labels - PageMode pageMode; // page mode - PageLayout pageLayout; // page layout - Object additionalActions; // page additional actions - - GBool cachePageTree(int page); // Cache first <page> pages. - Object *findDestInTree(Object *tree, GooString *name, Object *obj); - - Object *getNames(); - NameTree *getDestNameTree(); - NameTree *getEmbeddedFileNameTree(); - NameTree *getJSNameTree(); - LinkDest *createLinkDest(Object *obj); -#ifdef MULTITHREADED - GooMutex mutex; -#endif - -}; - -#endif |