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_PDFWINDOW_PWL_ICON_H_ 8 #define FPDFSDK_PDFWINDOW_PWL_ICON_H_ 9 10 #include "core/fxcrt/fx_string.h" 11 #include "fpdfsdk/pdfwindow/PWL_Wnd.h" 12 13 class CPWL_Image : public CPWL_Wnd { 14 public: 15 CPWL_Image(); 16 ~CPWL_Image() override; 17 18 virtual CFX_ByteString GetImageAppStream(); 19 20 virtual void GetScale(FX_FLOAT& fHScale, FX_FLOAT& fVScale); 21 virtual void GetImageOffset(FX_FLOAT& x, FX_FLOAT& y); 22 virtual CPDF_Stream* GetPDFStream(); 23 24 public: 25 void SetPDFStream(CPDF_Stream* pStream); 26 void GetImageSize(FX_FLOAT& fWidth, FX_FLOAT& fHeight); 27 CFX_Matrix GetImageMatrix(); 28 CFX_ByteString GetImageAlias(); 29 void SetImageAlias(const FX_CHAR* sImageAlias); 30 31 protected: 32 CPDF_Stream* m_pPDFStream; 33 CFX_ByteString m_sImageAlias; 34 }; 35 36 class CPWL_Icon : public CPWL_Image { 37 public: 38 CPWL_Icon(); 39 ~CPWL_Icon() override; 40 41 virtual CPDF_IconFit* GetIconFit(); 42 43 // CPWL_Image 44 void GetScale(FX_FLOAT& fHScale, FX_FLOAT& fVScale) override; 45 void GetImageOffset(FX_FLOAT& x, FX_FLOAT& y) override; 46 47 int32_t GetScaleMethod(); 48 bool IsProportionalScale(); 49 void GetIconPosition(FX_FLOAT& fLeft, FX_FLOAT& fBottom); 50 SetIconFit(CPDF_IconFit * pIconFit)51 void SetIconFit(CPDF_IconFit* pIconFit) { m_pIconFit = pIconFit; } 52 53 private: 54 CPDF_IconFit* m_pIconFit; 55 }; 56 57 #endif // FPDFSDK_PDFWINDOW_PWL_ICON_H_ 58