Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(443)

Side by Side Diff: xfa/fwl/basewidget/fwl_tooltipctrlimp.cpp

Issue 1952693003: Convert FWL_ERR into an enum class. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fwl/basewidget/fwl_tooltipctrlimp.h ('k') | xfa/fwl/basewidget/ifwl_caret.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 232
229 void CFWL_ToolTipImp::SetStates(uint32_t dwStates, FX_BOOL bSet) { 233 void CFWL_ToolTipImp::SetStates(uint32_t dwStates, FX_BOOL bSet) {
230 if ((dwStates & FWL_WGTSTATE_Invisible) && !bSet) { 234 if ((dwStates & FWL_WGTSTATE_Invisible) && !bSet) {
231 IFWL_ToolTipDP* pData = 235 IFWL_ToolTipDP* pData =
232 static_cast<IFWL_ToolTipDP*>(m_pProperties->m_pDataProvider); 236 static_cast<IFWL_ToolTipDP*>(m_pProperties->m_pDataProvider);
233 int32_t nAutoPopDelay = pData->GetAutoPopDelay(m_pInterface); 237 int32_t nAutoPopDelay = pData->GetAutoPopDelay(m_pInterface);
234 m_hTimerHide = FWL_StartTimer(&m_TimerHide, nAutoPopDelay, FALSE); 238 m_hTimerHide = FWL_StartTimer(&m_TimerHide, nAutoPopDelay, FALSE);
235 } 239 }
236 CFWL_WidgetImp::SetStates(dwStates, bSet); 240 CFWL_WidgetImp::SetStates(dwStates, bSet);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 } 281 }
278 } 282 }
279 if (m_pToolTip->m_hTimerHide == hTimer && m_pToolTip->m_hTimerHide) { 283 if (m_pToolTip->m_hTimerHide == hTimer && m_pToolTip->m_hTimerHide) {
280 m_pToolTip->SetStates(FWL_WGTSTATE_Invisible, TRUE); 284 m_pToolTip->SetStates(FWL_WGTSTATE_Invisible, TRUE);
281 FWL_StopTimer(m_pToolTip->m_hTimerHide); 285 FWL_StopTimer(m_pToolTip->m_hTimerHide);
282 m_pToolTip->m_hTimerHide = NULL; 286 m_pToolTip->m_hTimerHide = NULL;
283 return TRUE; 287 return TRUE;
284 } 288 }
285 return TRUE; 289 return TRUE;
286 } 290 }
291
287 CFWL_ToolTipImpDelegate::CFWL_ToolTipImpDelegate(CFWL_ToolTipImp* pOwner) 292 CFWL_ToolTipImpDelegate::CFWL_ToolTipImpDelegate(CFWL_ToolTipImp* pOwner)
288 : m_pOwner(pOwner) {} 293 : m_pOwner(pOwner) {}
289 int32_t CFWL_ToolTipImpDelegate::OnProcessMessage(CFWL_Message* pMessage) { 294
290 return CFWL_WidgetImpDelegate::OnProcessMessage(pMessage); 295 void CFWL_ToolTipImpDelegate::OnProcessMessage(CFWL_Message* pMessage) {
296 CFWL_WidgetImpDelegate::OnProcessMessage(pMessage);
291 } 297 }
292 FWL_ERR CFWL_ToolTipImpDelegate::OnProcessEvent(CFWL_Event* pEvent) { 298
293 return FWL_ERR_Succeeded; 299 void CFWL_ToolTipImpDelegate::OnProcessEvent(CFWL_Event* pEvent) {}
300
301 void CFWL_ToolTipImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics,
302 const CFX_Matrix* pMatrix) {
303 m_pOwner->DrawWidget(pGraphics, pMatrix);
294 } 304 }
295 FWL_ERR CFWL_ToolTipImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics,
296 const CFX_Matrix* pMatrix) {
297 return m_pOwner->DrawWidget(pGraphics, pMatrix);
298 }
OLDNEW
« no previous file with comments | « xfa/fwl/basewidget/fwl_tooltipctrlimp.h ('k') | xfa/fwl/basewidget/ifwl_caret.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698