]> www.fi.muni.cz Git - evince.git/blobdiff - pdf/xpdf/Annot.cc
Reused eog HIG dialog in GPdf.
[evince.git] / pdf / xpdf / Annot.cc
index 8ebf6a0c088fdfe817340a5be19fa814b25fd8b9..20fe24bb34b8a40edb052c2dd4c3cd91241e36ad 100644 (file)
@@ -2,7 +2,7 @@
 //
 // Annot.cc
 //
-// Copyright 2000-2002 Glyph & Cog, LLC
+// Copyright 2000-2003 Glyph & Cog, LLC
 //
 //========================================================================
 
 // Annot
 //------------------------------------------------------------------------
 
-Annot::Annot(XRef *xrefA, Dict *dict) {
+Annot::Annot(XRef *xrefA, Dict *dictA) {
   Object apObj, asObj, obj1, obj2;
   double t;
 
   ok = gFalse;
   xref = xrefA;
+  dict = dictA;
+  dict->incRef(); 
 
-  if (dict->lookup("AP", &apObj)->isDict()) {
-    if (dict->lookup("AS", &asObj)->isName()) {
+  dictA->lookup("Subtype", &subtype); 
+  if (dictA->lookup("AP", &apObj)->isDict()) {
+    if (dictA->lookup("AS", &asObj)->isName()) {
       if (apObj.dictLookup("N", &obj1)->isDict()) {
        if (obj1.dictLookupNF(asObj.getName(), &obj2)->isRef()) {
          obj2.copy(&appearance);
@@ -49,7 +52,7 @@ Annot::Annot(XRef *xrefA, Dict *dict) {
   }
   apObj.free();
 
-  if (dict->lookup("Rect", &obj1)->isArray() &&
+  if (dictA->lookup("Rect", &obj1)->isArray() &&
       obj1.arrayGetLength() == 4) {
     //~ should check object types here
     obj1.arrayGet(0, &obj2);
@@ -109,18 +112,15 @@ Annots::Annots(XRef *xref, Object *annotsObj) {
     for (i = 0; i < annotsObj->arrayGetLength(); ++i) {
       if (annotsObj->arrayGet(i, &obj1)->isDict()) {
        obj1.dictLookup("Subtype", &obj2);
-       if (obj2.isName("Widget") ||
-           obj2.isName("Stamp")) {
-         annot = new Annot(xref, obj1.getDict());
-         if (annot->isOk()) {
-           if (nAnnots >= size) {
-             size += 16;
-             annots = (Annot **)grealloc(annots, size * sizeof(Annot *));
-           }
-           annots[nAnnots++] = annot;
-         } else {
-           delete annot;
-         }
+        annot = new Annot(xref, obj1.getDict());
+        if (annot->isOk()) {
+                if (nAnnots >= size) {
+                        size += 16;
+                        annots = (Annot **)grealloc(annots, size * sizeof(Annot *));
+                }
+                annots[nAnnots++] = annot;
+        } else {
+                delete annot;
        }
        obj2.free();
       }