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_ICON_H_ 8 #define FPDFSDK_INCLUDE_PDFWINDOW_PWL_ICON_H_ 9 10 #include "PWL_Wnd.h" 11 #include "core/include/fxcrt/fx_string.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 GetIconFit()41 virtual CPDF_IconFit* GetIconFit() { return m_pIconFit; } 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 FX_BOOL IsProportionalScale(); 49 void GetIconPosition(FX_FLOAT& fLeft, FX_FLOAT& fBottom); 50 FX_BOOL GetFittingBounds(); 51 SetIconFit(CPDF_IconFit * pIconFit)52 void SetIconFit(CPDF_IconFit* pIconFit) { m_pIconFit = pIconFit; } 53 54 private: 55 CPDF_IconFit* m_pIconFit; 56 }; 57 58 #endif // FPDFSDK_INCLUDE_PDFWINDOW_PWL_ICON_H_ 59