summaryrefslogtreecommitdiff
path: root/xfa/fwl/core/ifwl_widget.h
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-11-23 16:17:20 -0800
committerCommit bot <commit-bot@chromium.org>2016-11-23 16:17:21 -0800
commit2c489cc41023a40648dfde988d11b8ec2b66c7d0 (patch)
tree78255c80c547a5954ed5778f1a809d3166a5f3e2 /xfa/fwl/core/ifwl_widget.h
parent0ce11eef157b791c661d7e82e1c5641605b9f03d (diff)
downloadpdfium-2c489cc41023a40648dfde988d11b8ec2b66c7d0.tar.xz
Merge IFWL and CFWL classes.
This CL merges the IFWL hierarchy into the CFWL hierachy. All CFWL proxy methods have been replaced by the IFWL implementations. Review-Url: https://codereview.chromium.org/2524173002
Diffstat (limited to 'xfa/fwl/core/ifwl_widget.h')
-rw-r--r--xfa/fwl/core/ifwl_widget.h217
1 files changed, 0 insertions, 217 deletions
diff --git a/xfa/fwl/core/ifwl_widget.h b/xfa/fwl/core/ifwl_widget.h
deleted file mode 100644
index 056a0c861e..0000000000
--- a/xfa/fwl/core/ifwl_widget.h
+++ /dev/null
@@ -1,217 +0,0 @@
-// Copyright 2014 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_IFWL_WIDGET_H_
-#define XFA_FWL_CORE_IFWL_WIDGET_H_
-
-#include <memory>
-
-#include "core/fxcrt/fx_coordinates.h"
-#include "core/fxcrt/fx_system.h"
-#include "xfa/fwl/core/cfwl_event.h"
-#include "xfa/fwl/core/cfwl_themepart.h"
-#include "xfa/fwl/core/cfwl_widgetmgr.h"
-#include "xfa/fwl/core/fwl_widgethit.h"
-#include "xfa/fwl/core/ifwl_widgetdelegate.h"
-#include "xfa/fwl/theme/cfwl_widgettp.h"
-
-// FWL contains two parallel inheritance hierarchies, which reference each
-// other via pointers as follows:
-//
-// m_pAssociate
-// <----------
-// CFWL_Widget ----------> IFWL_Widget
-// | m_pIface |
-// A A
-// | |
-// CFWL_... IFWL_...
-//
-// TODO(tsepez): Collapse these into a single hierarchy.
-//
-
-enum class FWL_Type {
- Unknown = 0,
-
- Barcode,
- Caret,
- CheckBox,
- ComboBox,
- DateTimePicker,
- Edit,
- Form,
- FormProxy,
- ListBox,
- MonthCalendar,
- PictureBox,
- PushButton,
- ScrollBar,
- SpinButton,
- ToolTip
-};
-
-class CFWL_AppImp;
-class CFWL_MsgKey;
-class CFWL_Widget;
-class CFWL_WidgetProperties;
-class CFWL_WidgetMgr;
-class CFWL_App;
-class IFWL_ThemeProvider;
-class IFWL_Widget;
-enum class FWL_Type;
-
-class IFWL_Widget : public IFWL_WidgetDelegate {
- public:
- ~IFWL_Widget() override;
-
- virtual FWL_Type GetClassID() const = 0;
- virtual bool IsInstance(const CFX_WideStringC& wsClass) const;
- virtual void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false);
- virtual void GetClientRect(CFX_RectF& rect);
- virtual void ModifyStylesEx(uint32_t dwStylesExAdded,
- uint32_t dwStylesExRemoved);
- virtual void SetStates(uint32_t dwStates, bool bSet = true);
- virtual void Update() = 0;
- virtual FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy);
- virtual void DrawWidget(CFX_Graphics* pGraphics,
- const CFX_Matrix* pMatrix = nullptr) = 0;
- virtual void SetThemeProvider(IFWL_ThemeProvider* pThemeProvider);
-
- // IFWL_WidgetDelegate.
- void OnProcessMessage(CFWL_Message* pMessage) override;
- void OnProcessEvent(CFWL_Event* pEvent) override;
- void OnDrawWidget(CFX_Graphics* pGraphics,
- const CFX_Matrix* pMatrix = nullptr) override;
-
- void SetWidgetRect(const CFX_RectF& rect);
-
- void SetParent(IFWL_Widget* pParent);
-
- IFWL_Widget* GetOwner() { return m_pWidgetMgr->GetOwnerWidget(this); }
- IFWL_Widget* GetOuter() const { return m_pOuter; }
-
- uint32_t GetStyles() const;
- void ModifyStyles(uint32_t dwStylesAdded, uint32_t dwStylesRemoved);
- uint32_t GetStylesEx() const;
- uint32_t GetStates() const;
-
- void LockUpdate() { m_iLock++; }
- void UnlockUpdate() {
- if (IsLocked())
- m_iLock--;
- }
-
- void TransformTo(IFWL_Widget* pWidget, FX_FLOAT& fx, FX_FLOAT& fy);
- void GetMatrix(CFX_Matrix& matrix, bool bGlobal = false);
- IFWL_ThemeProvider* GetThemeProvider() const;
-
- void SetDelegate(IFWL_WidgetDelegate* delegate) { m_pDelegate = delegate; }
- IFWL_WidgetDelegate* GetDelegate() {
- return m_pDelegate ? m_pDelegate : this;
- }
- const IFWL_WidgetDelegate* GetDelegate() const {
- return m_pDelegate ? m_pDelegate : this;
- }
-
- const CFWL_App* GetOwnerApp() const { return m_pOwnerApp; }
- uint32_t GetEventKey() const { return m_nEventKey; }
- void SetEventKey(uint32_t key) { m_nEventKey = key; }
-
- void* GetLayoutItem() const { return m_pLayoutItem; }
- void SetLayoutItem(void* pItem) { m_pLayoutItem = pItem; }
-
- void SetAssociateWidget(CFWL_Widget* pAssociate) {
- m_pAssociate = pAssociate;
- }
-
- void SetFocus(bool bFocus);
- void Repaint(const CFX_RectF* pRect = nullptr);
-
- protected:
- IFWL_Widget(const CFWL_App* app,
- std::unique_ptr<CFWL_WidgetProperties> properties,
- IFWL_Widget* pOuter);
-
- bool IsEnabled() const;
- bool IsActive() const;
- bool IsLocked() const { return m_iLock > 0; }
- bool HasBorder() const;
- bool HasEdge() const;
- void GetEdgeRect(CFX_RectF& rtEdge);
- FX_FLOAT GetBorderSize(bool bCX = true);
- FX_FLOAT GetEdgeWidth();
- void GetRelativeRect(CFX_RectF& rect);
- void* GetThemeCapacity(CFWL_WidgetCapacity dwCapacity);
- IFWL_ThemeProvider* GetAvailableTheme();
- CFX_SizeF CalcTextSize(const CFX_WideString& wsText,
- IFWL_ThemeProvider* pTheme,
- bool bMultiLine = false,
- int32_t iLineWidth = -1);
- void CalcTextRect(const CFX_WideString& wsText,
- IFWL_ThemeProvider* pTheme,
- uint32_t dwTTOStyles,
- int32_t iTTOAlign,
- CFX_RectF& rect);
- void SetGrab(bool bSet);
- void GetPopupPos(FX_FLOAT fMinHeight,
- FX_FLOAT fMaxHeight,
- const CFX_RectF& rtAnchor,
- CFX_RectF& rtPopup);
- void RegisterEventTarget(IFWL_Widget* pEventSource);
- void UnregisterEventTarget();
- void DispatchKeyEvent(CFWL_MsgKey* pNote);
- void DispatchEvent(CFWL_Event* pEvent);
- void DrawBorder(CFX_Graphics* pGraphics,
- CFWL_Part iPartBorder,
- IFWL_ThemeProvider* pTheme,
- const CFX_Matrix* pMatrix = nullptr);
- void DrawEdge(CFX_Graphics* pGraphics,
- CFWL_Part iPartEdge,
- IFWL_ThemeProvider* pTheme,
- const CFX_Matrix* pMatrix = nullptr);
-
- const CFWL_App* const m_pOwnerApp;
- CFWL_WidgetMgr* const m_pWidgetMgr;
- std::unique_ptr<CFWL_WidgetProperties> m_pProperties;
- IFWL_Widget* m_pOuter;
- int32_t m_iLock;
-
- private:
- IFWL_Widget* GetParent() { return m_pWidgetMgr->GetParentWidget(this); }
- CFX_SizeF GetOffsetFromParent(IFWL_Widget* pParent);
-
- bool IsVisible() const;
- bool IsOverLapper() const;
- bool IsPopup() const;
- bool IsChild() const;
- bool IsOffscreen() const;
- IFWL_Widget* GetRootOuter();
- bool GetPopupPosMenu(FX_FLOAT fMinHeight,
- FX_FLOAT fMaxHeight,
- const CFX_RectF& rtAnchor,
- CFX_RectF& rtPopup);
- bool GetPopupPosComboBox(FX_FLOAT fMinHeight,
- FX_FLOAT fMaxHeight,
- const CFX_RectF& rtAnchor,
- CFX_RectF& rtPopup);
- bool GetPopupPosGeneral(FX_FLOAT fMinHeight,
- FX_FLOAT fMaxHeight,
- const CFX_RectF& rtAnchor,
- CFX_RectF& rtPopup);
- bool GetScreenSize(FX_FLOAT& fx, FX_FLOAT& fy);
- void DrawBackground(CFX_Graphics* pGraphics,
- CFWL_Part iPartBk,
- IFWL_ThemeProvider* pTheme,
- const CFX_Matrix* pMatrix = nullptr);
- void NotifyDriver();
- bool IsParent(IFWL_Widget* pParent);
-
- void* m_pLayoutItem;
- CFWL_Widget* m_pAssociate;
- uint32_t m_nEventKey;
- IFWL_WidgetDelegate* m_pDelegate; // Not owned.
-};
-
-#endif // XFA_FWL_CORE_IFWL_WIDGET_H_