Home | History | Annotate | Download | only in basewidget
      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