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 _FWL_PICTUREBOX_LIGHT_H
8 #define _FWL_PICTUREBOX_LIGHT_H
9 class CFWL_Widget;
10 class CFWL_WidgetProperties;
11 class IFWL_PictureBoxDP;
12 class CFWL_PictureBox;
13 class CFWL_PictureBoxDP;
14 class CFWL_PictureBox : public CFWL_Widget {
15  public:
16   static CFWL_PictureBox* Create();
17   FWL_ERR Initialize(const CFWL_WidgetProperties* pProperties = NULL);
18   CFX_DIBitmap* GetPicture();
19   FWL_ERR SetPicture(CFX_DIBitmap* pBitmap);
20   FX_FLOAT GetRotation();
21   FWL_ERR SetRotation(FX_FLOAT fRotation);
22   int32_t GetFlipMode();
23   FWL_ERR SetFlipMode(int32_t iFlipMode);
24   int32_t GetOpacity();
25   FWL_ERR SetOpacity(int32_t iOpacity);
26   FWL_ERR GetScale(FX_FLOAT& fScaleX, FX_FLOAT& fScaleY);
27   FWL_ERR SetScale(FX_FLOAT fScaleX, FX_FLOAT fScaleY);
28   FWL_ERR GetOffset(FX_FLOAT& fx, FX_FLOAT& fy);
29   FWL_ERR SetOffset(FX_FLOAT fx, FX_FLOAT fy);
30   CFWL_PictureBox();
31   virtual ~CFWL_PictureBox();
32 
33  protected:
34   class CFWL_PictureBoxDP : public IFWL_PictureBoxDP {
35    public:
CFWL_PictureBoxDP()36     CFWL_PictureBoxDP() {
37       m_fRotation = 0.0f;
38       m_fScaleX = 1.0f;
39       m_fScaleY = 1.0f;
40       m_fOffSetX = 0.0f;
41       m_fOffSetY = 0.0f;
42       m_pBitmap = NULL;
43     };
44     virtual FWL_ERR GetCaption(IFWL_Widget* pWidget, CFX_WideString& wsCaption);
45     virtual CFX_DIBitmap* GetPicture(IFWL_Widget* pWidget);
46     virtual CFX_DIBitmap* GetErrorPicture(IFWL_Widget* pWidget);
47     virtual CFX_DIBitmap* GetInitialPicture(IFWL_Widget* pWidget);
48     virtual int32_t GetOpacity(IFWL_Widget* pWidget);
49     virtual int32_t GetFlipMode(IFWL_Widget* pWidget);
50     virtual FWL_ERR GetMatrix(IFWL_Widget* pWidget, CFX_Matrix& matrix);
51     CFX_DIBitmap* m_pBitmap;
52     int32_t m_iOpacity;
53     int32_t m_iFlipMode;
54     FX_FLOAT m_fRotation;
55     FX_FLOAT m_fScaleX;
56     FX_FLOAT m_fScaleY;
57     FX_FLOAT m_fOffSetX;
58     FX_FLOAT m_fOffSetY;
59     CFX_WideString m_wsData;
60   };
61   CFWL_PictureBoxDP m_PictureBoxDP;
62 };
63 #endif
64