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_H
8 #define _FWL_PICTUREBOX_H
9 class CFWL_WidgetImpProperties;
10 class IFWL_Widget;
11 class IFWL_PictureBoxDP;
12 class IFWL_PictureBox;
13 #define FWL_CLASS_PictureBox L"FWL_PICTUREBOX"
14 #define FWL_CLASSHASH_PictureBox 2974721741
15 #define FWL_STYLEEXT_PTB_Left 0L << 0
16 #define FWL_STYLEEXT_PTB_Center 1L << 0
17 #define FWL_STYLEEXT_PTB_Right 2L << 0
18 #define FWL_STYLEEXT_PTB_Top 0L << 2
19 #define FWL_STYLEEXT_PTB_Vcenter 1L << 2
20 #define FWL_STYLEEXT_PTB_Bottom 2L << 2
21 #define FWL_STYLEEXT_PTB_Normal 0L << 4
22 #define FWL_STYLEEXT_PTB_AutoSize 1L << 4
23 #define FWL_STYLEEXT_PTB_StretchImage 2L << 4
24 #define FWL_STYLEEXT_PTB_StretchHImage 3L << 4
25 #define FWL_STYLEEXT_PTB_StretchVImage 4L << 4
26 #define FWL_STYLEEXT_PTB_HAlignMask 3L << 0
27 #define FWL_STYLEEXT_PTB_VAlignMask 3L << 2
28 #define FWL_STYLEEXT_PTB_StretchAlignMask 7L << 4
29 #define FWL_PART_PTB_Border 1
30 #define FWL_PART_PTB_Edge 2
31 #define FWL_PART_PTB_Image 3
32 #define FWL_PARTSTATE_PTB_Normal (0L << 0)
33 #define FWL_PARTSTATE_PTB_Disabled (1L << 0)
34 class IFWL_PictureBoxDP : public IFWL_DataProvider {
35  public:
36   virtual CFX_DIBitmap* GetPicture(IFWL_Widget* pWidget) = 0;
37   virtual CFX_DIBitmap* GetErrorPicture(IFWL_Widget* pWidget) = 0;
38   virtual CFX_DIBitmap* GetInitialPicture(IFWL_Widget* pWidget) = 0;
39   virtual int32_t GetOpacity(IFWL_Widget* pWidget) = 0;
40   virtual int32_t GetFlipMode(IFWL_Widget* pWidget) = 0;
41   virtual FWL_ERR GetMatrix(IFWL_Widget* pWidget, CFX_Matrix& matrix) = 0;
42 };
43 
44 class IFWL_PictureBox : public IFWL_Widget {
45  public:
46   static IFWL_PictureBox* Create(const CFWL_WidgetImpProperties& properties,
47                                  IFWL_Widget* pOuter);
48 
49  protected:
50   IFWL_PictureBox();
51 };
52 #endif
53