/* SPDX-FileCopyrightText: 2007 Pino Toscano SPDX-FileCopyrightText: 2019 Oliver Sander SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef _OKULAR_GENERATOR_PDF_FORMFIELDS_H_ #define _OKULAR_GENERATOR_PDF_FORMFIELDS_H_ #include "core/form.h" #include #include class PopplerFormFieldButton : public Okular::FormFieldButton { public: explicit PopplerFormFieldButton(std::unique_ptr field); // inherited from Okular::FormField Okular::NormalizedRect rect() const override; int id() const override; QString name() const override; QString uiName() const override; QString fullyQualifiedName() const override; bool isReadOnly() const override; void setReadOnly(bool value) override; bool isVisible() const override; void setVisible(bool value) override; bool isPrintable() const override; void setPrintable(bool value) override; // inherited from Okular::FormFieldButton ButtonType buttonType() const override; QString caption() const override; bool state() const override; void setState(bool state) override; QList siblings() const override; void setIcon(Okular::FormField *field) override; /* * Supported only in newer versions of Poppler library. * * @since 1.9 */ Poppler::FormFieldIcon icon() const; private: std::unique_ptr m_field; Okular::NormalizedRect m_rect; int m_id; }; class PopplerFormFieldText : public Okular::FormFieldText { public: explicit PopplerFormFieldText(std::unique_ptr field); // inherited from Okular::FormField Okular::NormalizedRect rect() const override; int id() const override; QString name() const override; QString uiName() const override; QString fullyQualifiedName() const override; bool isReadOnly() const override; void setReadOnly(bool value) override; bool isVisible() const override; void setVisible(bool value) override; bool isPrintable() const override; void setPrintable(bool value) override; // inherited from Okular::FormFieldText Okular::FormFieldText::TextType textType() const override; QString text() const override; void setText(const QString &text) override; void setAppearanceText(const QString &text) override; bool isPassword() const override; bool isRichText() const override; int maximumLength() const override; Qt::Alignment textAlignment() const override; bool canBeSpellChecked() const override; private: std::unique_ptr m_field; Okular::NormalizedRect m_rect; int m_id; }; class PopplerFormFieldChoice : public Okular::FormFieldChoice { public: explicit PopplerFormFieldChoice(std::unique_ptr field); // inherited from Okular::FormField Okular::NormalizedRect rect() const override; int id() const override; QString name() const override; QString uiName() const override; QString fullyQualifiedName() const override; bool isReadOnly() const override; void setReadOnly(bool value) override; bool isVisible() const override; void setVisible(bool value) override; bool isPrintable() const override; void setPrintable(bool value) override; // inherited from Okular::FormFieldChoice ChoiceType choiceType() const override; QStringList choices() const override; bool isEditable() const override; bool multiSelect() const override; QList currentChoices() const override; void setCurrentChoices(const QList &choices) override; QString editChoice() const override; void setEditChoice(const QString &text) override; Qt::Alignment textAlignment() const override; bool canBeSpellChecked() const override; private: std::unique_ptr m_field; Okular::NormalizedRect m_rect; int m_id; }; class PopplerFormFieldSignature : public Okular::FormFieldSignature { public: explicit PopplerFormFieldSignature(std::unique_ptr field); ~PopplerFormFieldSignature() override; // inherited from Okular::FormField Okular::NormalizedRect rect() const override; int id() const override; QString name() const override; QString uiName() const override; QString fullyQualifiedName() const override; bool isReadOnly() const override; bool isVisible() const override; // inherited from Okular::FormFieldSignature SignatureType signatureType() const override; const Okular::SignatureInfo &signatureInfo() const override; bool sign(const Okular::NewSignatureData &oData, const QString &newPath) const override; private: std::unique_ptr m_field; Okular::SignatureInfo *m_info; Okular::NormalizedRect m_rect; int m_id; }; #endif