Index: experimental/PdfViewer/pdf_auto_gen.h |
=================================================================== |
--- experimental/PdfViewer/pdf_auto_gen.h (revision 0) |
+++ experimental/PdfViewer/pdf_auto_gen.h (revision 0) |
@@ -0,0 +1,844 @@ |
+enum SkPdfObjectType { |
+ kObject_SkPdfObjectType, |
+ kObjectArray_SkPdfObjectType, |
+ kObjectBoolean_SkPdfObjectType, |
+ kObjectDictionary_SkPdfObjectType, |
+ kObjectDictionaryXObject_SkPdfObjectType, |
+ kObjectDictionaryXObjectForm_SkPdfObjectType, |
+ kObjectDictionaryXObjectImage_SkPdfObjectType, |
+ kObjectDictionaryXObject__End_SkPdfObjectType, |
+ kObjectDictionary__End_SkPdfObjectType, |
+ kObjectInteger_SkPdfObjectType, |
+ kObjectName_SkPdfObjectType, |
+ kObjectNull_SkPdfObjectType, |
+ kObjectReal_SkPdfObjectType, |
+ kObjectReference_SkPdfObjectType, |
+ kObjectStream_SkPdfObjectType, |
+ kObject__End_SkPdfObjectType, |
+}; |
+ |
+class SkPdfObject; |
+class SkPdfNull; |
+class SkPdfBoolean; |
+class SkPdfInteger; |
+class SkPdfReal; |
+class SkPdfName; |
+class SkPdfStream; |
+class SkPdfReference; |
+class SkPdfArray; |
+class SkPdfDictionary; |
+class SkPdfXObject; |
+class SkPdfImage; |
+class SkPdfForm; |
+ |
+class SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObject_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return kObject__End_SkPdfObjectType;} |
+public: |
+ virtual SkPdfObject* asObject() {return this;} |
+ virtual const SkPdfObject* asObject() const {return this;} |
+ |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+protected: |
+ const PdfMemDocument* fPodofoDoc; |
+ const PdfObject* fPodofoObj; |
+ |
+public: |
+ SkPdfObject(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : fPodofoDoc(podofoDoc), fPodofoObj(podofoObj) {} |
+ const PdfObject* podofo() const { return fPodofoObj;} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfNull : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectNull_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectNull_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfNull* asNull() {return this;} |
+ virtual const SkPdfNull* asNull() const {return this;} |
+ |
+private: |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfNull(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfBoolean : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectBoolean_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectBoolean_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfBoolean* asBoolean() {return this;} |
+ virtual const SkPdfBoolean* asBoolean() const {return this;} |
+ |
+private: |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfBoolean(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfInteger : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectInteger_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectInteger_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfInteger* asInteger() {return this;} |
+ virtual const SkPdfInteger* asInteger() const {return this;} |
+ |
+private: |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfInteger(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfReal : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectReal_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectReal_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfReal* asReal() {return this;} |
+ virtual const SkPdfReal* asReal() const {return this;} |
+ |
+private: |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfReal(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfName : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectName_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectName_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfName* asName() {return this;} |
+ virtual const SkPdfName* asName() const {return this;} |
+ |
+private: |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfName(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfStream : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectStream_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectStream_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfStream* asStream() {return this;} |
+ virtual const SkPdfStream* asStream() const {return this;} |
+ |
+private: |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfStream(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfReference : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectReference_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectReference_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfReference* asReference() {return this;} |
+ virtual const SkPdfReference* asReference() const {return this;} |
+ |
+private: |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfReference(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfArray : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectArray_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectArray_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfArray* asArray() {return this;} |
+ virtual const SkPdfArray* asArray() const {return this;} |
+ |
+private: |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfDictionary* asDictionary() {return NULL;} |
+ virtual const SkPdfDictionary* asDictionary() const {return NULL;} |
+ |
+ virtual SkPdfXObject* asXObject() {return NULL;} |
+ virtual const SkPdfXObject* asXObject() const {return NULL;} |
+ |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfArray(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfDictionary : public SkPdfObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectDictionary_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return kObjectDictionary__End_SkPdfObjectType;} |
+public: |
+ virtual SkPdfDictionary* asDictionary() {return this;} |
+ virtual const SkPdfDictionary* asDictionary() const {return this;} |
+ |
+private: |
+ virtual SkPdfArray* asArray() {return NULL;} |
+ virtual const SkPdfArray* asArray() const {return NULL;} |
+ |
+ virtual SkPdfBoolean* asBoolean() {return NULL;} |
+ virtual const SkPdfBoolean* asBoolean() const {return NULL;} |
+ |
+ virtual SkPdfInteger* asInteger() {return NULL;} |
+ virtual const SkPdfInteger* asInteger() const {return NULL;} |
+ |
+ virtual SkPdfName* asName() {return NULL;} |
+ virtual const SkPdfName* asName() const {return NULL;} |
+ |
+ virtual SkPdfNull* asNull() {return NULL;} |
+ virtual const SkPdfNull* asNull() const {return NULL;} |
+ |
+ virtual SkPdfReal* asReal() {return NULL;} |
+ virtual const SkPdfReal* asReal() const {return NULL;} |
+ |
+ virtual SkPdfReference* asReference() {return NULL;} |
+ virtual const SkPdfReference* asReference() const {return NULL;} |
+ |
+ virtual SkPdfStream* asStream() {return NULL;} |
+ virtual const SkPdfStream* asStream() const {return NULL;} |
+ |
+public: |
+private: |
+public: |
+ SkPdfDictionary(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+}; |
+ |
+ |
+class SkPdfXObject : public SkPdfDictionary { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectDictionaryXObject_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return kObjectDictionaryXObject__End_SkPdfObjectType;} |
+public: |
+ virtual SkPdfXObject* asXObject() {return this;} |
+ virtual const SkPdfXObject* asXObject() const {return this;} |
+ |
+private: |
+public: |
+private: |
+public: |
+ SkPdfXObject(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfDictionary(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+ std::string t() const { |
+ std::string ret; |
+ if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "", &ret)) return ret; |
+ // TODO(edisonn): warn about missing required field, assert for known good pdfs |
+ return ""; |
+ } |
+ |
+}; |
+ |
+ |
+class SkPdfImage : public SkPdfXObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectDictionaryXObjectImage_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectDictionaryXObjectImage_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfImage* asImage() {return this;} |
+ virtual const SkPdfImage* asImage() const {return this;} |
+ |
+private: |
+ virtual SkPdfForm* asForm() {return NULL;} |
+ virtual const SkPdfForm* asForm() const {return NULL;} |
+ |
+public: |
+private: |
+ SkBitmap bitmap; |
+public: |
+ SkPdfImage(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfXObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+ std::string t() const { |
+ std::string ret; |
+ if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "", &ret)) return ret; |
+ // TODO(edisonn): warn about missing required field, assert for known good pdfs |
+ return ""; |
+ } |
+ |
+ std::string s() const { |
+ std::string ret; |
+ if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subtype", "", &ret)) return ret; |
+ // TODO(edisonn): warn about missing required field, assert for known good pdfs |
+ return ""; |
+ } |
+ |
+ long w() const { |
+ long ret; |
+ if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Width", "W", &ret)) return ret; |
+ // TODO(edisonn): warn about missing required field, assert for known good pdfs |
+ return -1; |
+ } |
+ |
+ long h() const { |
+ long ret; |
+ if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Height", "H", &ret)) return ret; |
+ // TODO(edisonn): warn about missing required field, assert for known good pdfs |
+ return -1; |
+ } |
+ |
+ std::string cs() const { |
+ std::string ret; |
+ if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ColorSpace", "", &ret)) return ret; |
+ // TODO(edisonn): warn about missing required field, assert for known good pdfs |
+ return ""; |
+ } |
+ |
+ long bpc() const { |
+ long ret; |
+ if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BitsPerComponent", "BPC", &ret)) return ret; |
+ return 1; |
+ } |
+ |
+}; |
+ |
+ |
+class SkPdfForm : public SkPdfXObject { |
+public: |
+ virtual SkPdfObjectType getType() const { return kObjectDictionaryXObjectForm_SkPdfObjectType;} |
+ virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kObjectDictionaryXObjectForm_SkPdfObjectType + 1);} |
+public: |
+ virtual SkPdfForm* asForm() {return this;} |
+ virtual const SkPdfForm* asForm() const {return this;} |
+ |
+private: |
+ virtual SkPdfImage* asImage() {return NULL;} |
+ virtual const SkPdfImage* asImage() const {return NULL;} |
+ |
+public: |
+ void test() {} |
+private: |
+public: |
+ SkPdfForm(const PdfMemDocument* podofoDoc, const PdfObject* podofoObj) : SkPdfXObject(podofoDoc, podofoObj) {} |
+ virtual bool valid() const {return true;} |
+ std::string t() const { |
+ std::string ret; |
+ if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "", &ret)) return ret; |
+ // TODO(edisonn): warn about missing required field, assert for known good pdfs |
+ return ""; |
+ } |
+ |
+ std::string s() const { |
+ std::string ret; |
+ if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subtype", "", &ret)) return ret; |
+ // TODO(edisonn): warn about missing required field, assert for known good pdfs |
+ return ""; |
+ } |
+ |
+}; |
+ |
+ |
+class PodofoMapper { |
+public: |
+ static bool mapObject(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAObject(podofoDoc, podofoObj)) return false; |
+ |
+ if (mapArray(podofoDoc, podofoObj, out)) return true; |
+ if (mapBoolean(podofoDoc, podofoObj, out)) return true; |
+ if (mapDictionary(podofoDoc, podofoObj, out)) return true; |
+ if (mapInteger(podofoDoc, podofoObj, out)) return true; |
+ if (mapName(podofoDoc, podofoObj, out)) return true; |
+ if (mapNull(podofoDoc, podofoObj, out)) return true; |
+ if (mapReal(podofoDoc, podofoObj, out)) return true; |
+ if (mapReference(podofoDoc, podofoObj, out)) return true; |
+ if (mapStream(podofoDoc, podofoObj, out)) return true; |
+ |
+ *out = new SkPdfObject(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapNull(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isANull(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfNull(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapBoolean(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isABoolean(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfBoolean(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapInteger(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAInteger(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfInteger(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapReal(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAReal(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfReal(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapName(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAName(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfName(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapStream(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAStream(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfStream(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapReference(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAReference(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfReference(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapArray(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAArray(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfArray(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapDictionary(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isADictionary(podofoDoc, podofoObj)) return false; |
+ |
+ if (mapXObject(podofoDoc, podofoObj, out)) return true; |
+ |
+ *out = new SkPdfDictionary(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapXObject(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAXObject(podofoDoc, podofoObj)) return false; |
+ |
+ if (mapForm(podofoDoc, podofoObj, out)) return true; |
+ if (mapImage(podofoDoc, podofoObj, out)) return true; |
+ |
+ *out = new SkPdfXObject(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapImage(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAImage(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfImage(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool mapForm(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj, SkPdfObject** out) { |
+ if (!isAForm(podofoDoc, podofoObj)) return false; |
+ |
+ |
+ *out = new SkPdfForm(&podofoDoc, &podofoObj); |
+ return true; |
+ } |
+ |
+ static bool isAObject(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return true; |
+ } |
+ |
+ static bool isANull(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return false; |
+ } |
+ |
+ static bool isABoolean(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return false; |
+ } |
+ |
+ static bool isAInteger(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return false; |
+ } |
+ |
+ static bool isAReal(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return false; |
+ } |
+ |
+ static bool isAName(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return false; |
+ } |
+ |
+ static bool isAStream(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return false; |
+ } |
+ |
+ static bool isAReference(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return false; |
+ } |
+ |
+ static bool isAArray(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return false; |
+ } |
+ |
+ static bool isADictionary(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ return true; |
+ } |
+ |
+ static bool isAXObject(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ std::string t; |
+ if (!NameFromDictionary(&podofoDoc, podofoObj.GetDictionary(), "Type", "", &t)) return false; |
+ if (t != "XObject") return false; |
+ |
+ return true; |
+ } |
+ |
+ static bool isAImage(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ std::string t; |
+ if (!NameFromDictionary(&podofoDoc, podofoObj.GetDictionary(), "Type", "", &t)) return false; |
+ if (t != "XObject") return false; |
+ |
+ std::string s; |
+ if (!NameFromDictionary(&podofoDoc, podofoObj.GetDictionary(), "Subtype", "", &s)) return false; |
+ if (s != "Image") return false; |
+ |
+ return true; |
+ } |
+ |
+ static bool isAForm(const PdfMemDocument& podofoDoc, const PdfObject& podofoObj) { |
+ std::string t; |
+ if (!NameFromDictionary(&podofoDoc, podofoObj.GetDictionary(), "Type", "", &t)) return false; |
+ if (t != "XObject") return false; |
+ |
+ std::string s; |
+ if (!NameFromDictionary(&podofoDoc, podofoObj.GetDictionary(), "Subtype", "", &s)) return false; |
+ if (s != "Form") return false; |
+ |
+ return true; |
+ } |
+ |
+}; |
+ |