1// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef FPDFSDK_INCLUDE_PDFWINDOW_PWL_SIGNATURE_H_
8#define FPDFSDK_INCLUDE_PDFWINDOW_PWL_SIGNATURE_H_
9
10#include "PWL_Icon.h"
11#include "PWL_Wnd.h"
12
13class CFX_DIBSource;
14class CPWL_Label;
15
16class CPWL_Signature_Image : public CPWL_Image {
17 public:
18  CPWL_Signature_Image();
19  ~CPWL_Signature_Image() override;
20
21  void SetImage(CFX_DIBSource* pImage);
22  CFX_DIBSource* GetImage();
23
24 protected:
25  // CPWL_Image
26  void DrawThisAppearance(CFX_RenderDevice* pDevice,
27                          CFX_Matrix* pUser2Device) override;
28  void GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) override;
29  void GetScale(FX_FLOAT& fHScale, FX_FLOAT& fVScale) override;
30
31 private:
32  CFX_DIBSource* m_pImage;
33};
34
35class CPWL_Signature : public CPWL_Wnd {
36 public:
37  CPWL_Signature();
38  ~CPWL_Signature() override;
39
40  void SetText(const FX_WCHAR* sText);
41  void SetDescription(const FX_WCHAR* string);
42  void SetImage(CFX_DIBSource* pImage);
43  void SetImageStream(CPDF_Stream* pStream, const FX_CHAR* sImageAlias);
44
45  void SetTextFlag(FX_BOOL bTextExist);
46  void SetImageFlag(FX_BOOL bImageExist);
47  void SetFoxitFlag(FX_BOOL bFlagExist);
48
49 protected:
50  // CPWL_Wnd
51  void RePosChildWnd() override;
52  void CreateChildWnd(const PWL_CREATEPARAM& cp) override;
53  void DrawThisAppearance(CFX_RenderDevice* pDevice,
54                          CFX_Matrix* pUser2Device) override;
55  void GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) override;
56
57 private:
58  CPWL_Label* m_pText;
59  CPWL_Label* m_pDescription;
60  CPWL_Signature_Image* m_pImage;
61
62  FX_BOOL m_bTextExist;
63  FX_BOOL m_bImageExist;
64  FX_BOOL m_bFlagExist;
65};
66
67#endif  // FPDFSDK_INCLUDE_PDFWINDOW_PWL_SIGNATURE_H_
68