summaryrefslogtreecommitdiff
path: root/xfa/fwl/core/cfwl_spinbutton.h
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-11-23 16:03:10 -0800
committerCommit bot <commit-bot@chromium.org>2016-11-23 16:03:10 -0800
commit0ce11eef157b791c661d7e82e1c5641605b9f03d (patch)
treee5166163947824e52c417b4a65c2c7d965c00dad /xfa/fwl/core/cfwl_spinbutton.h
parent2430b30088c3e3396ccf26a10d360d0553404bb0 (diff)
downloadpdfium-0ce11eef157b791c661d7e82e1c5641605b9f03d.tar.xz
Rename IFWL classes which do not have CFWL equivalents
This CL moves the IFWL classes that do not have CFWL class buddies to have the CFWL name. This CL leaves the tree in a weird state of having CFWL be two hierarchies, one of which is intertwined with the IFWL hierarchy. This should be commited just before the CL to move the rest of IFWL to CFWL. Review-Url: https://codereview.chromium.org/2525083002
Diffstat (limited to 'xfa/fwl/core/cfwl_spinbutton.h')
-rw-r--r--xfa/fwl/core/cfwl_spinbutton.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/xfa/fwl/core/cfwl_spinbutton.h b/xfa/fwl/core/cfwl_spinbutton.h
new file mode 100644
index 0000000000..87cf16727c
--- /dev/null
+++ b/xfa/fwl/core/cfwl_spinbutton.h
@@ -0,0 +1,76 @@
+// 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_CFWL_SPINBUTTON_H_
+#define XFA_FWL_CORE_CFWL_SPINBUTTON_H_
+
+#include <memory>
+
+#include "xfa/fwl/core/cfwl_event.h"
+#include "xfa/fwl/core/cfwl_timer.h"
+#include "xfa/fwl/core/ifwl_widget.h"
+#include "xfa/fxfa/cxfa_eventparam.h"
+
+#define FWL_STYLEEXE_SPB_Vert (1L << 0)
+
+class CFWL_MsgMouse;
+class CFWL_WidgetProperties;
+
+class CFWL_SpinButton : public IFWL_Widget {
+ public:
+ CFWL_SpinButton(const CFWL_App* app,
+ std::unique_ptr<CFWL_WidgetProperties> properties);
+ ~CFWL_SpinButton() override;
+
+ // IFWL_Widget
+ FWL_Type GetClassID() const override;
+ void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override;
+ void Update() override;
+ FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy) override;
+ void DrawWidget(CFX_Graphics* pGraphics,
+ const CFX_Matrix* pMatrix = nullptr) override;
+ void OnProcessMessage(CFWL_Message* pMessage) override;
+ void OnProcessEvent(CFWL_Event* pEvent) override;
+ void OnDrawWidget(CFX_Graphics* pGraphics,
+ const CFX_Matrix* pMatrix) override;
+
+ private:
+ class Timer : public CFWL_Timer {
+ public:
+ explicit Timer(CFWL_SpinButton* pToolTip);
+ ~Timer() override {}
+
+ void Run(CFWL_TimerInfo* pTimerInfo) override;
+ };
+ friend class CFWL_SpinButton::Timer;
+
+ void EnableButton(bool bEnable, bool bUp = true);
+ bool IsButtonEnabled(bool bUp = true);
+ void DrawUpButton(CFX_Graphics* pGraphics,
+ IFWL_ThemeProvider* pTheme,
+ const CFX_Matrix* pMatrix);
+ void DrawDownButton(CFX_Graphics* pGraphics,
+ IFWL_ThemeProvider* pTheme,
+ const CFX_Matrix* pMatrix);
+ 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_rtUpButton;
+ CFX_RectF m_rtDnButton;
+ uint32_t m_dwUpState;
+ uint32_t m_dwDnState;
+ int32_t m_iButtonIndex;
+ bool m_bLButtonDwn;
+ CFWL_TimerInfo* m_pTimerInfo;
+ CFWL_SpinButton::Timer m_Timer;
+};
+
+#endif // XFA_FWL_CORE_CFWL_SPINBUTTON_H_