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/basewidget/fwl_tooltipctrlimp.h" | 7 #include "xfa/fwl/basewidget/fwl_tooltipctrlimp.h" |
8 | 8 |
9 #include "xfa/fde/tto/fde_textout.h" | 9 #include "xfa/fde/tto/fde_textout.h" |
10 #include "xfa/fwl/basewidget/ifwl_tooltip.h" | 10 #include "xfa/fwl/basewidget/ifwl_tooltip.h" |
11 #include "xfa/fwl/core/cfwl_themebackground.h" | 11 #include "xfa/fwl/core/cfwl_themebackground.h" |
12 #include "xfa/fwl/core/cfwl_themepart.h" | 12 #include "xfa/fwl/core/cfwl_themepart.h" |
13 #include "xfa/fwl/core/cfwl_themetext.h" | 13 #include "xfa/fwl/core/cfwl_themetext.h" |
14 #include "xfa/fwl/core/fwl_formimp.h" | 14 #include "xfa/fwl/core/fwl_formimp.h" |
15 #include "xfa/fwl/core/fwl_noteimp.h" | 15 #include "xfa/fwl/core/fwl_noteimp.h" |
16 #include "xfa/fwl/core/fwl_widgetimp.h" | 16 #include "xfa/fwl/core/fwl_widgetimp.h" |
17 #include "xfa/fwl/core/ifwl_themeprovider.h" | 17 #include "xfa/fwl/core/ifwl_themeprovider.h" |
18 #include "xfa/fwl/core/ifwl_tooltiptarget.h" | 18 #include "xfa/fwl/core/ifwl_tooltiptarget.h" |
19 #include "xfa/fwl/theme/cfwl_widgettp.h" | 19 #include "xfa/fwl/theme/cfwl_widgettp.h" |
20 | 20 |
21 // static | 21 // static |
22 IFWL_ToolTip* IFWL_ToolTip::Create(const CFWL_WidgetImpProperties& properties, | 22 IFWL_ToolTip* IFWL_ToolTip::Create(const CFWL_WidgetImpProperties& properties, |
23 IFWL_Widget* pOuter) { | 23 IFWL_Widget* pOuter) { |
24 IFWL_ToolTip* pToolTip = new IFWL_ToolTip; | 24 IFWL_ToolTip* pToolTip = new IFWL_ToolTip; |
25 CFWL_ToolTipImp* pToolTipImpl = new CFWL_ToolTipImp(properties, pOuter); | 25 CFWL_ToolTipImp* pToolTipImpl = new CFWL_ToolTipImp(properties, pOuter); |
26 pToolTip->SetImpl(pToolTipImpl); | 26 pToolTip->SetImpl(pToolTipImpl); |
27 pToolTipImpl->SetInterface(pToolTip); | 27 pToolTipImpl->SetInterface(pToolTip); |
28 return pToolTip; | 28 return pToolTip; |
29 } | 29 } |
30 FWL_ERR IFWL_ToolTip::SetAnchor(const CFX_RectF& rtAnchor) { | 30 |
31 return static_cast<CFWL_ToolTipImp*>(GetImpl())->SetAnchor(rtAnchor); | 31 void IFWL_ToolTip::SetAnchor(const CFX_RectF& rtAnchor) { |
| 32 static_cast<CFWL_ToolTipImp*>(GetImpl())->SetAnchor(rtAnchor); |
32 } | 33 } |
33 FWL_ERR IFWL_ToolTip::Show() { | 34 |
34 return static_cast<CFWL_ToolTipImp*>(GetImpl())->Show(); | 35 void IFWL_ToolTip::Show() { |
| 36 static_cast<CFWL_ToolTipImp*>(GetImpl())->Show(); |
35 } | 37 } |
36 FWL_ERR IFWL_ToolTip::Hide() { | 38 |
37 return static_cast<CFWL_ToolTipImp*>(GetImpl())->Hide(); | 39 void IFWL_ToolTip::Hide() { |
| 40 static_cast<CFWL_ToolTipImp*>(GetImpl())->Hide(); |
38 } | 41 } |
| 42 |
39 IFWL_ToolTip::IFWL_ToolTip() {} | 43 IFWL_ToolTip::IFWL_ToolTip() {} |
| 44 |
40 CFWL_ToolTipImp::CFWL_ToolTipImp(const CFWL_WidgetImpProperties& properties, | 45 CFWL_ToolTipImp::CFWL_ToolTipImp(const CFWL_WidgetImpProperties& properties, |
41 IFWL_Widget* pOuter) | 46 IFWL_Widget* pOuter) |
42 : CFWL_FormImp(properties, pOuter), | 47 : CFWL_FormImp(properties, pOuter), |
43 m_bBtnDown(FALSE), | 48 m_bBtnDown(FALSE), |
44 m_dwTTOStyles(FDE_TTOSTYLE_SingleLine), | 49 m_dwTTOStyles(FDE_TTOSTYLE_SingleLine), |
45 m_iTTOAlign(FDE_TTOALIGNMENT_Center), | 50 m_iTTOAlign(FDE_TTOALIGNMENT_Center), |
46 m_hTimerShow(NULL), | 51 m_hTimerShow(NULL), |
47 m_hTimerHide(NULL), | 52 m_hTimerHide(NULL), |
48 m_pTimer(NULL) { | 53 m_pTimer(NULL) { |
49 m_rtClient.Set(0, 0, 0, 0); | 54 m_rtClient.Set(0, 0, 0, 0); |
50 m_rtCaption.Set(0, 0, 0, 0); | 55 m_rtCaption.Set(0, 0, 0, 0); |
51 m_rtAnchor.Set(0, 0, 0, 0); | 56 m_rtAnchor.Set(0, 0, 0, 0); |
52 m_TimerShow.m_pToolTip = this; | 57 m_TimerShow.m_pToolTip = this; |
53 m_TimerHide.m_pToolTip = this; | 58 m_TimerHide.m_pToolTip = this; |
54 } | 59 } |
55 CFWL_ToolTipImp::~CFWL_ToolTipImp() { | 60 CFWL_ToolTipImp::~CFWL_ToolTipImp() { |
56 if (m_pTimer) { | 61 if (m_pTimer) { |
57 delete m_pTimer; | 62 delete m_pTimer; |
58 m_pTimer = NULL; | 63 m_pTimer = NULL; |
59 } | 64 } |
60 } | 65 } |
61 FWL_ERR CFWL_ToolTipImp::GetClassName(CFX_WideString& wsClass) const { | 66 FWL_Error CFWL_ToolTipImp::GetClassName(CFX_WideString& wsClass) const { |
62 wsClass = FWL_CLASS_ToolTip; | 67 wsClass = FWL_CLASS_ToolTip; |
63 return FWL_ERR_Succeeded; | 68 return FWL_Error::Succeeded; |
64 } | 69 } |
65 uint32_t CFWL_ToolTipImp::GetClassID() const { | 70 uint32_t CFWL_ToolTipImp::GetClassID() const { |
66 return FWL_CLASSHASH_ToolTip; | 71 return FWL_CLASSHASH_ToolTip; |
67 } | 72 } |
68 FWL_ERR CFWL_ToolTipImp::Initialize() { | 73 FWL_Error CFWL_ToolTipImp::Initialize() { |
69 m_pProperties->m_dwStyles |= FWL_WGTSTYLE_Popup; | 74 m_pProperties->m_dwStyles |= FWL_WGTSTYLE_Popup; |
70 m_pProperties->m_dwStyles &= ~FWL_WGTSTYLE_Child; | 75 m_pProperties->m_dwStyles &= ~FWL_WGTSTYLE_Child; |
71 if (CFWL_WidgetImp::Initialize() != FWL_ERR_Succeeded) | 76 if (CFWL_WidgetImp::Initialize() != FWL_Error::Succeeded) |
72 return FWL_ERR_Indefinite; | 77 return FWL_Error::Indefinite; |
73 m_pDelegate = new CFWL_ToolTipImpDelegate(this); | 78 m_pDelegate = new CFWL_ToolTipImpDelegate(this); |
74 return FWL_ERR_Succeeded; | 79 return FWL_Error::Succeeded; |
75 } | 80 } |
76 FWL_ERR CFWL_ToolTipImp::Finalize() { | 81 FWL_Error CFWL_ToolTipImp::Finalize() { |
77 delete m_pDelegate; | 82 delete m_pDelegate; |
78 m_pDelegate = nullptr; | 83 m_pDelegate = nullptr; |
79 return CFWL_WidgetImp::Finalize(); | 84 return CFWL_WidgetImp::Finalize(); |
80 } | 85 } |
81 FWL_ERR CFWL_ToolTipImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { | 86 FWL_Error CFWL_ToolTipImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { |
82 if (bAutoSize) { | 87 if (bAutoSize) { |
83 rect.Set(0, 0, 0, 0); | 88 rect.Set(0, 0, 0, 0); |
84 if (m_pProperties->m_pThemeProvider == NULL) { | 89 if (m_pProperties->m_pThemeProvider == NULL) { |
85 m_pProperties->m_pThemeProvider = GetAvailableTheme(); | 90 m_pProperties->m_pThemeProvider = GetAvailableTheme(); |
86 } | 91 } |
87 CFX_WideString wsCaption; | 92 CFX_WideString wsCaption; |
88 IFWL_ToolTipDP* pData = | 93 IFWL_ToolTipDP* pData = |
89 static_cast<IFWL_ToolTipDP*>(m_pProperties->m_pDataProvider); | 94 static_cast<IFWL_ToolTipDP*>(m_pProperties->m_pDataProvider); |
90 if (pData) { | 95 if (pData) { |
91 pData->GetCaption(m_pInterface, wsCaption); | 96 pData->GetCaption(m_pInterface, wsCaption); |
92 } | 97 } |
93 int32_t iLen = wsCaption.GetLength(); | 98 int32_t iLen = wsCaption.GetLength(); |
94 if (iLen > 0) { | 99 if (iLen > 0) { |
95 CFX_SizeF sz = CalcTextSize(wsCaption, m_pProperties->m_pThemeProvider); | 100 CFX_SizeF sz = CalcTextSize(wsCaption, m_pProperties->m_pThemeProvider); |
96 rect.Set(0, 0, sz.x, sz.y); | 101 rect.Set(0, 0, sz.x, sz.y); |
97 rect.width += 25; | 102 rect.width += 25; |
98 rect.height += 16; | 103 rect.height += 16; |
99 } | 104 } |
100 CFWL_WidgetImp::GetWidgetRect(rect, TRUE); | 105 CFWL_WidgetImp::GetWidgetRect(rect, TRUE); |
101 } else { | 106 } else { |
102 rect = m_pProperties->m_rtWidget; | 107 rect = m_pProperties->m_rtWidget; |
103 } | 108 } |
104 return FWL_ERR_Succeeded; | 109 return FWL_Error::Succeeded; |
105 } | 110 } |
106 FWL_ERR CFWL_ToolTipImp::Update() { | 111 FWL_Error CFWL_ToolTipImp::Update() { |
107 if (IsLocked()) { | 112 if (IsLocked()) { |
108 return FWL_ERR_Indefinite; | 113 return FWL_Error::Indefinite; |
109 } | 114 } |
110 if (!m_pProperties->m_pThemeProvider) { | 115 if (!m_pProperties->m_pThemeProvider) { |
111 m_pProperties->m_pThemeProvider = GetAvailableTheme(); | 116 m_pProperties->m_pThemeProvider = GetAvailableTheme(); |
112 } | 117 } |
113 UpdateTextOutStyles(); | 118 UpdateTextOutStyles(); |
114 GetClientRect(m_rtClient); | 119 GetClientRect(m_rtClient); |
115 m_rtCaption = m_rtClient; | 120 m_rtCaption = m_rtClient; |
116 return FWL_ERR_Succeeded; | 121 return FWL_Error::Succeeded; |
117 } | 122 } |
118 FWL_ERR CFWL_ToolTipImp::GetClientRect(CFX_RectF& rect) { | 123 FWL_Error CFWL_ToolTipImp::GetClientRect(CFX_RectF& rect) { |
119 FX_FLOAT x = 0; | 124 FX_FLOAT x = 0; |
120 FX_FLOAT y = 0; | 125 FX_FLOAT y = 0; |
121 FX_FLOAT t = 0; | 126 FX_FLOAT t = 0; |
122 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; | 127 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; |
123 if (pTheme) { | 128 if (pTheme) { |
124 CFWL_ThemePart part; | 129 CFWL_ThemePart part; |
125 part.m_pWidget = m_pInterface; | 130 part.m_pWidget = m_pInterface; |
126 x = *static_cast<FX_FLOAT*>( | 131 x = *static_cast<FX_FLOAT*>( |
127 pTheme->GetCapacity(&part, CFWL_WidgetCapacity::CXBorder)); | 132 pTheme->GetCapacity(&part, CFWL_WidgetCapacity::CXBorder)); |
128 y = *static_cast<FX_FLOAT*>( | 133 y = *static_cast<FX_FLOAT*>( |
129 pTheme->GetCapacity(&part, CFWL_WidgetCapacity::CYBorder)); | 134 pTheme->GetCapacity(&part, CFWL_WidgetCapacity::CYBorder)); |
130 } | 135 } |
131 rect = m_pProperties->m_rtWidget; | 136 rect = m_pProperties->m_rtWidget; |
132 rect.Offset(-rect.left, -rect.top); | 137 rect.Offset(-rect.left, -rect.top); |
133 rect.Deflate(x, t, x, y); | 138 rect.Deflate(x, t, x, y); |
134 return FWL_ERR_Succeeded; | 139 return FWL_Error::Succeeded; |
135 } | 140 } |
136 FWL_ERR CFWL_ToolTipImp::DrawWidget(CFX_Graphics* pGraphics, | 141 FWL_Error CFWL_ToolTipImp::DrawWidget(CFX_Graphics* pGraphics, |
137 const CFX_Matrix* pMatrix) { | 142 const CFX_Matrix* pMatrix) { |
138 IFWL_ToolTipTarget* toolTipTarget = | 143 IFWL_ToolTipTarget* toolTipTarget = |
139 CFWL_ToolTipContainer::getInstance()->GetCurrentToolTipTarget(); | 144 CFWL_ToolTipContainer::getInstance()->GetCurrentToolTipTarget(); |
140 if (toolTipTarget && !toolTipTarget->UseDefaultTheme()) { | 145 if (toolTipTarget && !toolTipTarget->UseDefaultTheme()) { |
141 return toolTipTarget->DrawToolTip(pGraphics, pMatrix, m_pInterface); | 146 return toolTipTarget->DrawToolTip(pGraphics, pMatrix, m_pInterface); |
142 } | 147 } |
143 if (!pGraphics) | 148 if (!pGraphics) |
144 return FWL_ERR_Indefinite; | 149 return FWL_Error::Indefinite; |
145 if (!m_pProperties->m_pThemeProvider) | 150 if (!m_pProperties->m_pThemeProvider) |
146 return FWL_ERR_Indefinite; | 151 return FWL_Error::Indefinite; |
147 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; | 152 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; |
148 DrawBkground(pGraphics, pTheme, pMatrix); | 153 DrawBkground(pGraphics, pTheme, pMatrix); |
149 DrawText(pGraphics, pTheme, pMatrix); | 154 DrawText(pGraphics, pTheme, pMatrix); |
150 return FWL_ERR_Succeeded; | 155 return FWL_Error::Succeeded; |
151 } | 156 } |
152 void CFWL_ToolTipImp::DrawBkground(CFX_Graphics* pGraphics, | 157 void CFWL_ToolTipImp::DrawBkground(CFX_Graphics* pGraphics, |
153 IFWL_ThemeProvider* pTheme, | 158 IFWL_ThemeProvider* pTheme, |
154 const CFX_Matrix* pMatrix) { | 159 const CFX_Matrix* pMatrix) { |
155 CFWL_ThemeBackground param; | 160 CFWL_ThemeBackground param; |
156 param.m_pWidget = m_pInterface; | 161 param.m_pWidget = m_pInterface; |
157 param.m_iPart = CFWL_Part::Background; | 162 param.m_iPart = CFWL_Part::Background; |
158 param.m_dwStates = m_pProperties->m_dwStates; | 163 param.m_dwStates = m_pProperties->m_dwStates; |
159 param.m_pGraphics = pGraphics; | 164 param.m_pGraphics = pGraphics; |
160 if (pMatrix) { | 165 if (pMatrix) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 void CFWL_ToolTipImp::UpdateTextOutStyles() { | 198 void CFWL_ToolTipImp::UpdateTextOutStyles() { |
194 m_iTTOAlign = FDE_TTOALIGNMENT_Center; | 199 m_iTTOAlign = FDE_TTOALIGNMENT_Center; |
195 m_dwTTOStyles = FDE_TTOSTYLE_SingleLine; | 200 m_dwTTOStyles = FDE_TTOSTYLE_SingleLine; |
196 if (m_pProperties->m_dwStyleExes & FWL_WGTSTYLE_RTLReading) { | 201 if (m_pProperties->m_dwStyleExes & FWL_WGTSTYLE_RTLReading) { |
197 m_dwTTOStyles |= FDE_TTOSTYLE_RTL; | 202 m_dwTTOStyles |= FDE_TTOSTYLE_RTL; |
198 } | 203 } |
199 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_TTP_Multiline) { | 204 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_TTP_Multiline) { |
200 m_dwTTOStyles &= ~FDE_TTOSTYLE_SingleLine; | 205 m_dwTTOStyles &= ~FDE_TTOSTYLE_SingleLine; |
201 } | 206 } |
202 } | 207 } |
203 FWL_ERR CFWL_ToolTipImp::SetAnchor(const CFX_RectF& rtAnchor) { | 208 |
| 209 void CFWL_ToolTipImp::SetAnchor(const CFX_RectF& rtAnchor) { |
204 m_rtAnchor = rtAnchor; | 210 m_rtAnchor = rtAnchor; |
205 return TRUE; | |
206 } | 211 } |
207 FWL_ERR CFWL_ToolTipImp::Show() { | 212 |
| 213 void CFWL_ToolTipImp::Show() { |
208 IFWL_ToolTipDP* pData = | 214 IFWL_ToolTipDP* pData = |
209 static_cast<IFWL_ToolTipDP*>(m_pProperties->m_pDataProvider); | 215 static_cast<IFWL_ToolTipDP*>(m_pProperties->m_pDataProvider); |
210 int32_t nInitDelay = pData->GetInitialDelay(m_pInterface); | 216 int32_t nInitDelay = pData->GetInitialDelay(m_pInterface); |
211 if ((m_pProperties->m_dwStates & FWL_WGTSTATE_Invisible)) { | 217 if ((m_pProperties->m_dwStates & FWL_WGTSTATE_Invisible)) |
212 m_hTimerShow = FWL_StartTimer(&m_TimerShow, nInitDelay, FALSE); | 218 m_hTimerShow = FWL_StartTimer(&m_TimerShow, nInitDelay, FALSE); |
213 } | |
214 return TRUE; | |
215 } | 219 } |
216 FWL_ERR CFWL_ToolTipImp::Hide() { | 220 |
| 221 void CFWL_ToolTipImp::Hide() { |
217 SetStates(FWL_WGTSTATE_Invisible, TRUE); | 222 SetStates(FWL_WGTSTATE_Invisible, TRUE); |
218 if (m_hTimerHide) { | 223 if (m_hTimerHide) { |
219 FWL_StopTimer(m_hTimerHide); | 224 FWL_StopTimer(m_hTimerHide); |
220 m_hTimerHide = NULL; | 225 m_hTimerHide = nullptr; |
221 } | 226 } |
222 if (m_hTimerShow) { | 227 if (m_hTimerShow) { |
223 FWL_StopTimer(m_hTimerShow); | 228 FWL_StopTimer(m_hTimerShow); |
224 m_hTimerShow = NULL; | 229 m_hTimerShow = nullptr; |
225 } | 230 } |
226 return TRUE; | |
227 } | 231 } |
228 FWL_ERR CFWL_ToolTipImp::SetStates(uint32_t dwStates, FX_BOOL bSet) { | 232 |
| 233 FWL_Error CFWL_ToolTipImp::SetStates(uint32_t dwStates, FX_BOOL bSet) { |
229 if ((dwStates & FWL_WGTSTATE_Invisible) && !bSet) { | 234 if ((dwStates & FWL_WGTSTATE_Invisible) && !bSet) { |
230 IFWL_ToolTipDP* pData = | 235 IFWL_ToolTipDP* pData = |
231 static_cast<IFWL_ToolTipDP*>(m_pProperties->m_pDataProvider); | 236 static_cast<IFWL_ToolTipDP*>(m_pProperties->m_pDataProvider); |
232 int32_t nAutoPopDelay = pData->GetAutoPopDelay(m_pInterface); | 237 int32_t nAutoPopDelay = pData->GetAutoPopDelay(m_pInterface); |
233 m_hTimerHide = FWL_StartTimer(&m_TimerHide, nAutoPopDelay, FALSE); | 238 m_hTimerHide = FWL_StartTimer(&m_TimerHide, nAutoPopDelay, FALSE); |
234 } | 239 } |
235 return CFWL_WidgetImp::SetStates(dwStates, bSet); | 240 return CFWL_WidgetImp::SetStates(dwStates, bSet); |
236 } | 241 } |
237 void CFWL_ToolTipImp::RefreshToolTipPos() { | 242 void CFWL_ToolTipImp::RefreshToolTipPos() { |
238 if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_TTP_NoAnchor) == 0) { | 243 if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_TTP_NoAnchor) == 0) { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 } | 280 } |
276 } | 281 } |
277 if (m_pToolTip->m_hTimerHide == hTimer && m_pToolTip->m_hTimerHide) { | 282 if (m_pToolTip->m_hTimerHide == hTimer && m_pToolTip->m_hTimerHide) { |
278 m_pToolTip->SetStates(FWL_WGTSTATE_Invisible, TRUE); | 283 m_pToolTip->SetStates(FWL_WGTSTATE_Invisible, TRUE); |
279 FWL_StopTimer(m_pToolTip->m_hTimerHide); | 284 FWL_StopTimer(m_pToolTip->m_hTimerHide); |
280 m_pToolTip->m_hTimerHide = NULL; | 285 m_pToolTip->m_hTimerHide = NULL; |
281 return TRUE; | 286 return TRUE; |
282 } | 287 } |
283 return TRUE; | 288 return TRUE; |
284 } | 289 } |
| 290 |
285 CFWL_ToolTipImpDelegate::CFWL_ToolTipImpDelegate(CFWL_ToolTipImp* pOwner) | 291 CFWL_ToolTipImpDelegate::CFWL_ToolTipImpDelegate(CFWL_ToolTipImp* pOwner) |
286 : m_pOwner(pOwner) {} | 292 : m_pOwner(pOwner) {} |
287 int32_t CFWL_ToolTipImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { | 293 |
288 return CFWL_WidgetImpDelegate::OnProcessMessage(pMessage); | 294 void CFWL_ToolTipImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { |
| 295 CFWL_WidgetImpDelegate::OnProcessMessage(pMessage); |
289 } | 296 } |
290 FWL_ERR CFWL_ToolTipImpDelegate::OnProcessEvent(CFWL_Event* pEvent) { | 297 |
291 return FWL_ERR_Succeeded; | 298 void CFWL_ToolTipImpDelegate::OnProcessEvent(CFWL_Event* pEvent) {} |
| 299 |
| 300 void CFWL_ToolTipImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, |
| 301 const CFX_Matrix* pMatrix) { |
| 302 m_pOwner->DrawWidget(pGraphics, pMatrix); |
292 } | 303 } |
293 FWL_ERR CFWL_ToolTipImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, | |
294 const CFX_Matrix* pMatrix) { | |
295 return m_pOwner->DrawWidget(pGraphics, pMatrix); | |
296 } | |
OLD | NEW |