Index: xfa/fwl/core/cfwl_pushbutton.h |
diff --git a/xfa/fwl/core/cfwl_pushbutton.h b/xfa/fwl/core/cfwl_pushbutton.h |
index 66fa406fe9916735eb3866d9cd782fc60af80172..3bfae6c42b46da4196af90c959aba1e253389dc5 100644 |
--- a/xfa/fwl/core/cfwl_pushbutton.h |
+++ b/xfa/fwl/core/cfwl_pushbutton.h |
@@ -7,15 +7,65 @@ |
#ifndef XFA_FWL_CORE_CFWL_PUSHBUTTON_H_ |
#define XFA_FWL_CORE_CFWL_PUSHBUTTON_H_ |
+#include <memory> |
+ |
#include "xfa/fwl/core/cfwl_widget.h" |
-#include "xfa/fwl/core/ifwl_pushbutton.h" |
+#include "xfa/fwl/core/cfwl_widgetproperties.h" |
+ |
+#define FWL_STYLEEXT_PSB_Left (0L << 0) |
+#define FWL_STYLEEXT_PSB_Center (1L << 0) |
+#define FWL_STYLEEXT_PSB_Right (2L << 0) |
+#define FWL_STYLEEXT_PSB_Top (0L << 2) |
+#define FWL_STYLEEXT_PSB_VCenter (1L << 2) |
+#define FWL_STYLEEXT_PSB_Bottom (2L << 2) |
+#define FWL_STYLEEXT_PSB_TextOnly (0L << 4) |
+#define FWL_STYLEEXT_PSB_IconOnly (1L << 4) |
+#define FWL_STYLEEXT_PSB_TextIcon (2L << 4) |
+#define FWL_STYLEEXT_PSB_HLayoutMask (3L << 0) |
+#define FWL_STYLEEXT_PSB_VLayoutMask (3L << 2) |
+#define FWL_STYLEEXT_PSB_ModeMask (3L << 4) |
+#define FWL_STATE_PSB_Hovered (1 << FWL_WGTSTATE_MAX) |
+#define FWL_STATE_PSB_Pressed (1 << (FWL_WGTSTATE_MAX + 1)) |
+#define FWL_STATE_PSB_Default (1 << (FWL_WGTSTATE_MAX + 2)) |
+ |
+class CFWL_MsgMouse; |
+class CFX_DIBitmap; |
+class CFWL_Widget; |
class CFWL_PushButton : public CFWL_Widget { |
public: |
explicit CFWL_PushButton(const CFWL_App*); |
~CFWL_PushButton() override; |
- void Initialize(); |
+ // CFWL_Widget |
+ FWL_Type GetClassID() const override; |
+ void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override; |
+ void SetStates(uint32_t dwStates, bool bSet = true) override; |
+ void Update() override; |
+ void DrawWidget(CFX_Graphics* pGraphics, |
+ const CFX_Matrix* pMatrix = nullptr) override; |
+ void OnProcessMessage(CFWL_Message* pMessage) override; |
+ void OnDrawWidget(CFX_Graphics* pGraphics, |
+ const CFX_Matrix* pMatrix) override; |
+ |
+ private: |
+ void DrawBkground(CFX_Graphics* pGraphics, |
+ IFWL_ThemeProvider* pTheme, |
+ const CFX_Matrix* pMatrix); |
+ uint32_t GetPartStates(); |
+ void UpdateTextOutStyles(); |
+ void OnFocusChanged(CFWL_Message* pMsg, bool bSet); |
+ void OnLButtonDown(CFWL_MsgMouse* pMsg); |
+ void OnLButtonUp(CFWL_MsgMouse* pMsg); |
+ void OnMouseMove(CFWL_MsgMouse* pMsg); |
+ void OnMouseLeave(CFWL_MsgMouse* pMsg); |
+ void OnKeyDown(CFWL_MsgKey* pMsg); |
+ |
+ CFX_RectF m_rtClient; |
+ CFX_RectF m_rtCaption; |
+ bool m_bBtnDown; |
+ uint32_t m_dwTTOStyles; |
+ int32_t m_iTTOAlign; |
}; |
#endif // XFA_FWL_CORE_CFWL_PUSHBUTTON_H_ |