// Copyright 2017 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef FPDFSDK_CPDFSDK_APPSTREAM_H_ #define FPDFSDK_CPDFSDK_APPSTREAM_H_ #include "core/fxcrt/fx_string.h" #include "core/fxcrt/unowned_ptr.h" #include "third_party/base/optional.h" class CPDFSDK_Widget; class CPDF_Dictionary; class CPDF_Stream; class CPDFSDK_AppStream { public: CPDFSDK_AppStream(CPDFSDK_Widget* widget, CPDF_Dictionary* dict); ~CPDFSDK_AppStream(); void SetAsPushButton(); void SetAsCheckBox(); void SetAsRadioButton(); void SetAsComboBox(Optional sValue); void SetAsListBox(); void SetAsTextField(Optional sValue); private: void AddImage(const ByteString& sAPType, CPDF_Stream* pImage); void Write(const ByteString& sAPType, const ByteString& sContents, const ByteString& sAPState); void Remove(const ByteString& sAPType); ByteString GetBackgroundAppStream() const; ByteString GetBorderAppStream() const; UnownedPtr const widget_; RetainPtr const dict_; }; #endif // FPDFSDK_CPDFSDK_APPSTREAM_H_