1cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com/*
2cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com * Copyright 2013 Google Inc.
3cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
4cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com * Use of this source code is governed by a BSD-style license that can be
5cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com * found in the LICENSE file.
6cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com */
7cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
8cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com#ifndef SkPdfImageDictionary_DEFINED
9cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com#define SkPdfImageDictionary_DEFINED
108cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
118cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com#include "SkPdfXObjectDictionary_autogen.h"
128cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
138cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com// Additional entries specific to an image dictionary
148cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.comclass SkPdfImageDictionary : public SkPdfXObjectDictionary {
158cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.compublic:
168cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.compublic:
178cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com   SkPdfImageDictionary* asImageDictionary() {return this;}
188cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com   const SkPdfImageDictionary* asImageDictionary() const {return this;}
198cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
208cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.comprivate:
218cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com   SkPdfType1FormDictionary* asType1FormDictionary() {return (SkPdfType1FormDictionary*)this;}
228cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com   const SkPdfType1FormDictionary* asType1FormDictionary() const {return (const SkPdfType1FormDictionary*)this;}
238cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
248cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.compublic:
258cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com   bool valid() const {return true;}
268cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkString Type(SkPdfNativeDoc* doc);
278cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Type() const;
288cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkString Subtype(SkPdfNativeDoc* doc);
298cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Subtype() const;
308cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  int64_t Width(SkPdfNativeDoc* doc);
318cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Width() const;
328cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  int64_t Height(SkPdfNativeDoc* doc);
338cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Height() const;
34cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
358cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool isColorSpaceAName(SkPdfNativeDoc* doc);
368cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkString getColorSpaceAsName(SkPdfNativeDoc* doc);
37cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
388cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool isColorSpaceAArray(SkPdfNativeDoc* doc);
398cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkPdfArray* getColorSpaceAsArray(SkPdfNativeDoc* doc);
408cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_ColorSpace() const;
418cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  int64_t BitsPerComponent(SkPdfNativeDoc* doc);
428cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_BitsPerComponent() const;
438cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkString Intent(SkPdfNativeDoc* doc);
448cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Intent() const;
458cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool ImageMask(SkPdfNativeDoc* doc);
468cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_ImageMask() const;
47cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
488cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool isMaskAStream(SkPdfNativeDoc* doc);
498cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkPdfStream* getMaskAsStream(SkPdfNativeDoc* doc);
50cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
518cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool isMaskAArray(SkPdfNativeDoc* doc);
528cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkPdfArray* getMaskAsArray(SkPdfNativeDoc* doc);
538cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Mask() const;
548cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkPdfImageDictionary* SMask(SkPdfNativeDoc* doc);
558cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_SMask() const;
568cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkPdfArray* Decode(SkPdfNativeDoc* doc);
578cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Decode() const;
588cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool Interpolate(SkPdfNativeDoc* doc);
598cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Interpolate() const;
608cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkPdfArray* Alternates(SkPdfNativeDoc* doc);
618cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Alternates() const;
628cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkString Name(SkPdfNativeDoc* doc);
638cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Name() const;
648cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  int64_t StructParent(SkPdfNativeDoc* doc);
658cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_StructParent() const;
668cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkString ID(SkPdfNativeDoc* doc);
678cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_ID() const;
688cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkPdfDictionary* OPI(SkPdfNativeDoc* doc);
698cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_OPI() const;
708cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  SkPdfStream* Metadata(SkPdfNativeDoc* doc);
718cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  bool has_Metadata() const;
728cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com};
738cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
74cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com#endif  // SkPdfImageDictionary_DEFINED
75