summaryrefslogtreecommitdiffstats
path: root/include/qpdf/QPDFAnnotationObjectHelper.hh
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2018-06-19 15:26:41 +0200
committerJay Berkenbilt <ejb@ql.org>2018-06-21 21:57:13 +0200
commit0b05111db80469d3f556209bfd856af1fda9b142 (patch)
tree46aca07e5984bfda3b284bb70383b11840cb3436 /include/qpdf/QPDFAnnotationObjectHelper.hh
parent0dadf17ab705fa2f96f0513278672978d73601ed (diff)
downloadqpdf-0b05111db80469d3f556209bfd856af1fda9b142.tar.zst
Implement helper class for interactive forms
Diffstat (limited to 'include/qpdf/QPDFAnnotationObjectHelper.hh')
-rw-r--r--include/qpdf/QPDFAnnotationObjectHelper.hh86
1 files changed, 86 insertions, 0 deletions
diff --git a/include/qpdf/QPDFAnnotationObjectHelper.hh b/include/qpdf/QPDFAnnotationObjectHelper.hh
new file mode 100644
index 00000000..d64388da
--- /dev/null
+++ b/include/qpdf/QPDFAnnotationObjectHelper.hh
@@ -0,0 +1,86 @@
+// Copyright (c) 2005-2018 Jay Berkenbilt
+//
+// This file is part of qpdf.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Versions of qpdf prior to version 7 were released under the terms
+// of version 2.0 of the Artistic License. At your option, you may
+// continue to consider qpdf to be licensed under those terms. Please
+// see the manual for additional information.
+
+#ifndef __QPDFANNOTATIONOBJECTHELPER_HH__
+#define __QPDFANNOTATIONOBJECTHELPER_HH__
+
+#include <qpdf/QPDFObjectHelper.hh>
+
+#include <qpdf/DLL.h>
+
+class QPDFAnnotationObjectHelper: public QPDFObjectHelper
+{
+ public:
+ QPDFAnnotationObjectHelper(QPDFObjectHandle);
+
+ // This class provides helper methods for certain types of
+ // annotations. At its introduction, it only supports Widget
+ // annotations, but other types of annotations may be supported in
+ // the future. For additional information about interactive forms,
+ // please see the comments at the top of
+ // QPDFAcroFormDocumentHelper.hh.
+
+ // Return the subtype of the annotation as a string (e.g.
+ // "/Widget"). Returns the empty string if the subtype (which is
+ // required by the spec) is missing.
+ QPDF_DLL
+ std::string getSubtype();
+
+ QPDF_DLL
+ QPDFObjectHandle::Rectangle getRect();
+
+ QPDF_DLL
+ QPDFObjectHandle getAppearanceDictionary();
+
+ // Return the appearance state as given in "/AS", or the empty
+ // string if none is given.
+ QPDF_DLL
+ std::string getAppearanceState();
+
+ // Return a specific stream. "which" may be one of "/N", "/R", or
+ // "/D" to indicate the normal, rollover, or down appearance
+ // stream. (Any value may be passed to "which"; if an appearance
+ // stream of that name exists, it will be returned.) If the value
+ // associated with "which" in the appearance dictionary is a
+ // subdictionary, an appearance state may be specified to select
+ // which appearance stream is desired. If not specified, the
+ // appearance state in "/AS" will used.
+ QPDF_DLL
+ QPDFObjectHandle getAppearanceStream(std::string const& which,
+ std::string const& state = "");
+
+ private:
+ class Members
+ {
+ friend class QPDFPageObjectHelper;
+
+ public:
+ ~Members();
+
+ private:
+ Members();
+ Members(Members const&);
+ };
+
+ PointerHolder<Members> m;
+};
+
+#endif // __QPDFANNOTATIONOBJECTHELPER_HH__