OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/fwl/core/ifwl_caret.h" | 7 #include "xfa/fwl/core/ifwl_caret.h" |
8 | 8 |
9 #include "third_party/base/ptr_util.h" | 9 #include "third_party/base/ptr_util.h" |
10 #include "xfa/fwl/core/cfwl_themebackground.h" | 10 #include "xfa/fwl/core/cfwl_themebackground.h" |
11 #include "xfa/fwl/core/cfwl_widgetimpproperties.h" | 11 #include "xfa/fwl/core/cfwl_widgetimpproperties.h" |
12 #include "xfa/fwl/core/fwl_noteimp.h" | 12 #include "xfa/fwl/core/fwl_noteimp.h" |
13 #include "xfa/fwl/core/ifwl_caret.h" | 13 #include "xfa/fwl/core/ifwl_caret.h" |
14 #include "xfa/fwl/core/ifwl_themeprovider.h" | 14 #include "xfa/fwl/core/ifwl_themeprovider.h" |
15 | 15 |
16 IFWL_Caret::IFWL_Caret(const IFWL_App* app, | 16 IFWL_Caret::IFWL_Caret(const IFWL_App* app, |
17 const CFWL_WidgetImpProperties& properties, | 17 const CFWL_WidgetImpProperties& properties, |
18 IFWL_Widget* pOuter) | 18 IFWL_Widget* pOuter) |
19 : IFWL_Widget(app, properties, pOuter), | 19 : IFWL_Widget(app, properties, pOuter), |
20 m_pTimer(new IFWL_Caret::Timer(this)), | 20 m_pTimer(new IFWL_Caret::Timer(this)), |
21 m_pTimerInfo(nullptr), | 21 m_pTimerInfo(nullptr), |
22 m_dwElapse(400), | 22 m_dwElapse(400), |
23 m_bSetColor(FALSE) { | 23 m_bSetColor(false) { |
24 SetStates(FWL_STATE_CAT_HightLight); | 24 SetStates(FWL_STATE_CAT_HightLight); |
25 } | 25 } |
26 | 26 |
27 IFWL_Caret::~IFWL_Caret() { | 27 IFWL_Caret::~IFWL_Caret() { |
28 if (m_pTimerInfo) { | 28 if (m_pTimerInfo) { |
29 m_pTimerInfo->StopTimer(); | 29 m_pTimerInfo->StopTimer(); |
30 m_pTimerInfo = nullptr; | 30 m_pTimerInfo = nullptr; |
31 } | 31 } |
32 } | 32 } |
33 | 33 |
34 FWL_Type IFWL_Caret::GetClassID() const { | 34 FWL_Type IFWL_Caret::GetClassID() const { |
35 return FWL_Type::Caret; | 35 return FWL_Type::Caret; |
36 } | 36 } |
37 | 37 |
38 FWL_Error IFWL_Caret::DrawWidget(CFX_Graphics* pGraphics, | 38 FWL_Error IFWL_Caret::DrawWidget(CFX_Graphics* pGraphics, |
39 const CFX_Matrix* pMatrix) { | 39 const CFX_Matrix* pMatrix) { |
40 if (!pGraphics) | 40 if (!pGraphics) |
41 return FWL_Error::Indefinite; | 41 return FWL_Error::Indefinite; |
42 if (!m_pProperties->m_pThemeProvider) | 42 if (!m_pProperties->m_pThemeProvider) |
43 m_pProperties->m_pThemeProvider = GetAvailableTheme(); | 43 m_pProperties->m_pThemeProvider = GetAvailableTheme(); |
44 if (!m_pProperties->m_pThemeProvider) | 44 if (!m_pProperties->m_pThemeProvider) |
45 return FWL_Error::Indefinite; | 45 return FWL_Error::Indefinite; |
46 | 46 |
47 DrawCaretBK(pGraphics, m_pProperties->m_pThemeProvider, pMatrix); | 47 DrawCaretBK(pGraphics, m_pProperties->m_pThemeProvider, pMatrix); |
48 return FWL_Error::Succeeded; | 48 return FWL_Error::Succeeded; |
49 } | 49 } |
50 | 50 |
51 void IFWL_Caret::ShowCaret(FX_BOOL bFlag) { | 51 void IFWL_Caret::ShowCaret(bool bFlag) { |
52 if (m_pTimerInfo) { | 52 if (m_pTimerInfo) { |
53 m_pTimerInfo->StopTimer(); | 53 m_pTimerInfo->StopTimer(); |
54 m_pTimerInfo = nullptr; | 54 m_pTimerInfo = nullptr; |
55 } | 55 } |
56 if (bFlag) | 56 if (bFlag) |
57 m_pTimerInfo = m_pTimer->StartTimer(m_dwElapse, true); | 57 m_pTimerInfo = m_pTimer->StartTimer(m_dwElapse, true); |
58 | 58 |
59 SetStates(FWL_WGTSTATE_Invisible, !bFlag); | 59 SetStates(FWL_WGTSTATE_Invisible, !bFlag); |
60 } | 60 } |
61 | 61 |
62 FWL_Error IFWL_Caret::GetFrequency(uint32_t& elapse) { | 62 FWL_Error IFWL_Caret::GetFrequency(uint32_t& elapse) { |
63 elapse = m_dwElapse; | 63 elapse = m_dwElapse; |
64 return FWL_Error::Succeeded; | 64 return FWL_Error::Succeeded; |
65 } | 65 } |
66 | 66 |
67 FWL_Error IFWL_Caret::SetFrequency(uint32_t elapse) { | 67 FWL_Error IFWL_Caret::SetFrequency(uint32_t elapse) { |
68 m_dwElapse = elapse; | 68 m_dwElapse = elapse; |
69 return FWL_Error::Succeeded; | 69 return FWL_Error::Succeeded; |
70 } | 70 } |
71 | 71 |
72 FWL_Error IFWL_Caret::SetColor(CFX_Color crFill) { | 72 FWL_Error IFWL_Caret::SetColor(CFX_Color crFill) { |
73 m_bSetColor = TRUE; | 73 m_bSetColor = true; |
74 m_crFill = crFill; | 74 m_crFill = crFill; |
75 return FWL_Error::Succeeded; | 75 return FWL_Error::Succeeded; |
76 } | 76 } |
77 | 77 |
78 void IFWL_Caret::DrawCaretBK(CFX_Graphics* pGraphics, | 78 void IFWL_Caret::DrawCaretBK(CFX_Graphics* pGraphics, |
79 IFWL_ThemeProvider* pTheme, | 79 IFWL_ThemeProvider* pTheme, |
80 const CFX_Matrix* pMatrix) { | 80 const CFX_Matrix* pMatrix) { |
81 CFX_RectF rect; | 81 CFX_RectF rect; |
82 GetWidgetRect(rect); | 82 GetWidgetRect(rect); |
83 rect.Set(0, 0, rect.width, rect.height); | 83 rect.Set(0, 0, rect.width, rect.height); |
(...skipping 26 matching lines...) Expand all Loading... |
110 void IFWL_Caret::Timer::Run(IFWL_TimerInfo* pTimerInfo) { | 110 void IFWL_Caret::Timer::Run(IFWL_TimerInfo* pTimerInfo) { |
111 IFWL_Caret* pCaret = static_cast<IFWL_Caret*>(m_pWidget); | 111 IFWL_Caret* pCaret = static_cast<IFWL_Caret*>(m_pWidget); |
112 bool toggle = !(pCaret->GetStates() & FWL_STATE_CAT_HightLight); | 112 bool toggle = !(pCaret->GetStates() & FWL_STATE_CAT_HightLight); |
113 pCaret->SetStates(FWL_STATE_CAT_HightLight, toggle); | 113 pCaret->SetStates(FWL_STATE_CAT_HightLight, toggle); |
114 | 114 |
115 CFX_RectF rt; | 115 CFX_RectF rt; |
116 pCaret->GetWidgetRect(rt); | 116 pCaret->GetWidgetRect(rt); |
117 rt.Set(0, 0, rt.width + 1, rt.height); | 117 rt.Set(0, 0, rt.width + 1, rt.height); |
118 pCaret->Repaint(&rt); | 118 pCaret->Repaint(&rt); |
119 } | 119 } |
OLD | NEW |