Home | History | Annotate | Download | only in core
      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_WIDGETMGR_H
      8 #define _FWL_WIDGETMGR_H
      9 class IFWL_Widget;
     10 class IFWL_WidgetMgr;
     11 class IFWL_WidgetMgrDelegate;
     12 enum FWL_WGTRELATION {
     13   FWL_WGTRELATION_Parent = 0,
     14   FWL_WGTRELATION_Owner,
     15   FWL_WGTRELATION_FirstSibling,
     16   FWL_WGTRELATION_PriorSibling,
     17   FWL_WGTRELATION_NextSibling,
     18   FWL_WGTRELATION_LastSibling,
     19   FWL_WGTRELATION_FirstChild,
     20   FWL_WGTRELATION_LastChild,
     21   FWL_WGTRELATION_SystemForm
     22 };
     23 class IFWL_WidgetMgr {
     24  public:
     25   virtual ~IFWL_WidgetMgr() {}
     26   virtual int32_t CountWidgets(IFWL_Widget* pParent = NULL) = 0;
     27   virtual IFWL_Widget* GetWidget(int32_t nIndex,
     28                                  IFWL_Widget* pParent = NULL) = 0;
     29   virtual IFWL_Widget* GetWidget(IFWL_Widget* pWidget,
     30                                  FWL_WGTRELATION eRelation) = 0;
     31   virtual int32_t GetWidgetIndex(IFWL_Widget* pWidget) = 0;
     32   virtual FX_BOOL SetWidgetIndex(IFWL_Widget* pWidget, int32_t nIndex) = 0;
     33   virtual FWL_ERR RepaintWidget(IFWL_Widget* pWidget,
     34                                 const CFX_RectF* pRect = NULL) = 0;
     35   virtual FX_DWORD GetCapability() = 0;
     36 };
     37 IFWL_WidgetMgr* FWL_GetWidgetMgr();
     38 FX_BOOL FWL_WidgetIsChild(IFWL_Widget* parent, IFWL_Widget* find);
     39 #define FWL_WGTMGR_DisableThread 0x00000001
     40 #define FWL_WGTMGR_DisableForm 0x00000002
     41 class IFWL_WidgetMgrDelegate {
     42  public:
     43   virtual ~IFWL_WidgetMgrDelegate() {}
     44   virtual FWL_ERR OnSetCapability(
     45       FX_DWORD dwCapability = FWL_WGTMGR_DisableThread) = 0;
     46   virtual int32_t OnProcessMessageToForm(CFWL_Message* pMessage) = 0;
     47   virtual FWL_ERR OnDrawWidget(IFWL_Widget* pWidget,
     48                                CFX_Graphics* pGraphics,
     49                                const CFX_Matrix* pMatrix = NULL) = 0;
     50 };
     51 FWL_ERR FWL_WidgetMgrSnapshot(IFWL_Widget* pWidget,
     52                               const CFX_WideString* saveFile,
     53                               const CFX_Matrix* pMatrix = NULL);
     54 #endif
     55