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

Side by Side Diff: xfa/fwl/core/ifwl_combobox.cpp

Issue 2488953003: Cleanup IFWL_Widget visibility and virtual parameters (Closed)
Patch Set: fixes Created 4 years, 1 month 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/core/ifwl_combobox.h ('k') | xfa/fwl/core/ifwl_datetimepicker.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/core/ifwl_combobox.h" 7 #include "xfa/fwl/core/ifwl_combobox.h"
8 8
9 #include "third_party/base/ptr_util.h" 9 #include "third_party/base/ptr_util.h"
10 #include "xfa/fde/cfde_txtedtengine.h" 10 #include "xfa/fde/cfde_txtedtengine.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 SetStates(m_pProperties->m_dwStates); 60 SetStates(m_pProperties->m_dwStates);
61 } 61 }
62 62
63 IFWL_ComboBox::~IFWL_ComboBox() {} 63 IFWL_ComboBox::~IFWL_ComboBox() {}
64 64
65 FWL_Type IFWL_ComboBox::GetClassID() const { 65 FWL_Type IFWL_ComboBox::GetClassID() const {
66 return FWL_Type::ComboBox; 66 return FWL_Type::ComboBox;
67 } 67 }
68 68
69 FWL_Error IFWL_ComboBox::GetWidgetRect(CFX_RectF& rect, bool bAutoSize) { 69 void IFWL_ComboBox::GetWidgetRect(CFX_RectF& rect, bool bAutoSize) {
70 if (bAutoSize) { 70 if (bAutoSize) {
71 rect.Reset(); 71 rect.Reset();
72 bool bIsDropDown = IsDropDownStyle(); 72 bool bIsDropDown = IsDropDownStyle();
73 if (bIsDropDown && m_pEdit) { 73 if (bIsDropDown && m_pEdit) {
74 m_pEdit->GetWidgetRect(rect, true); 74 m_pEdit->GetWidgetRect(rect, true);
75 } else { 75 } else {
76 rect.width = 100; 76 rect.width = 100;
77 rect.height = 16; 77 rect.height = 16;
78 } 78 }
79 if (!m_pProperties->m_pThemeProvider) { 79 if (!m_pProperties->m_pThemeProvider) {
80 ReSetTheme(); 80 ReSetTheme();
81 } 81 }
82 FX_FLOAT* pFWidth = static_cast<FX_FLOAT*>( 82 FX_FLOAT* pFWidth = static_cast<FX_FLOAT*>(
83 GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth)); 83 GetThemeCapacity(CFWL_WidgetCapacity::ScrollBarWidth));
84 if (!pFWidth) 84 if (!pFWidth)
85 return FWL_Error::Indefinite; 85 return;
86 rect.Inflate(0, 0, *pFWidth, 0); 86 rect.Inflate(0, 0, *pFWidth, 0);
87 IFWL_Widget::GetWidgetRect(rect, true); 87 IFWL_Widget::GetWidgetRect(rect, true);
88 } else { 88 } else {
89 rect = m_pProperties->m_rtWidget; 89 rect = m_pProperties->m_rtWidget;
90 } 90 }
91 return FWL_Error::Succeeded;
92 } 91 }
93 92
94 FWL_Error IFWL_ComboBox::ModifyStylesEx(uint32_t dwStylesExAdded, 93 void IFWL_ComboBox::ModifyStylesEx(uint32_t dwStylesExAdded,
95 uint32_t dwStylesExRemoved) { 94 uint32_t dwStylesExRemoved) {
96 if (m_pWidgetMgr->IsFormDisabled()) { 95 if (m_pWidgetMgr->IsFormDisabled()) {
97 return DisForm_ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved); 96 DisForm_ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved);
97 return;
98 } 98 }
99 bool bAddDropDown = !!(dwStylesExAdded & FWL_STYLEEXT_CMB_DropDown); 99 bool bAddDropDown = !!(dwStylesExAdded & FWL_STYLEEXT_CMB_DropDown);
100 bool bRemoveDropDown = !!(dwStylesExRemoved & FWL_STYLEEXT_CMB_DropDown); 100 bool bRemoveDropDown = !!(dwStylesExRemoved & FWL_STYLEEXT_CMB_DropDown);
101 if (bAddDropDown && !m_pEdit) { 101 if (bAddDropDown && !m_pEdit) {
102 m_pEdit.reset(new IFWL_ComboEdit( 102 m_pEdit.reset(new IFWL_ComboEdit(
103 m_pOwnerApp, pdfium::MakeUnique<CFWL_WidgetProperties>(), nullptr)); 103 m_pOwnerApp, pdfium::MakeUnique<CFWL_WidgetProperties>(), nullptr));
104 m_pEdit->SetOuter(this); 104 m_pEdit->SetOuter(this);
105 m_pEdit->SetParent(this); 105 m_pEdit->SetParent(this);
106 } else if (bRemoveDropDown && m_pEdit) { 106 } else if (bRemoveDropDown && m_pEdit) {
107 m_pEdit->SetStates(FWL_WGTSTATE_Invisible, true); 107 m_pEdit->SetStates(FWL_WGTSTATE_Invisible, true);
108 } 108 }
109 return IFWL_Widget::ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved); 109 IFWL_Widget::ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved);
110 } 110 }
111 111
112 FWL_Error IFWL_ComboBox::Update() { 112 void IFWL_ComboBox::Update() {
113 if (m_pWidgetMgr->IsFormDisabled()) { 113 if (m_pWidgetMgr->IsFormDisabled()) {
114 return DisForm_Update(); 114 DisForm_Update();
115 return;
115 } 116 }
116 if (IsLocked()) { 117 if (IsLocked()) {
117 return FWL_Error::Indefinite; 118 return;
118 } 119 }
119 ReSetTheme(); 120 ReSetTheme();
120 bool bDropDown = IsDropDownStyle(); 121 bool bDropDown = IsDropDownStyle();
121 if (bDropDown && m_pEdit) { 122 if (bDropDown && m_pEdit) {
122 ReSetEditAlignment(); 123 ReSetEditAlignment();
123 } 124 }
124 if (!m_pProperties->m_pThemeProvider) { 125 if (!m_pProperties->m_pThemeProvider) {
125 m_pProperties->m_pThemeProvider = GetAvailableTheme(); 126 m_pProperties->m_pThemeProvider = GetAvailableTheme();
126 } 127 }
127 Layout(); 128 Layout();
128 CFWL_ThemePart part; 129 CFWL_ThemePart part;
129 part.m_pWidget = this; 130 part.m_pWidget = this;
130 m_fComboFormHandler = 131 m_fComboFormHandler =
131 *static_cast<FX_FLOAT*>(m_pProperties->m_pThemeProvider->GetCapacity( 132 *static_cast<FX_FLOAT*>(m_pProperties->m_pThemeProvider->GetCapacity(
132 &part, CFWL_WidgetCapacity::ComboFormHandler)); 133 &part, CFWL_WidgetCapacity::ComboFormHandler));
133 return FWL_Error::Succeeded;
134 } 134 }
135 135
136 FWL_WidgetHit IFWL_ComboBox::HitTest(FX_FLOAT fx, FX_FLOAT fy) { 136 FWL_WidgetHit IFWL_ComboBox::HitTest(FX_FLOAT fx, FX_FLOAT fy) {
137 if (m_pWidgetMgr->IsFormDisabled()) { 137 if (m_pWidgetMgr->IsFormDisabled()) {
138 return DisForm_HitTest(fx, fy); 138 return DisForm_HitTest(fx, fy);
139 } 139 }
140 return IFWL_Widget::HitTest(fx, fy); 140 return IFWL_Widget::HitTest(fx, fy);
141 } 141 }
142 142
143 FWL_Error IFWL_ComboBox::DrawWidget(CFX_Graphics* pGraphics, 143 void IFWL_ComboBox::DrawWidget(CFX_Graphics* pGraphics,
144 const CFX_Matrix* pMatrix) { 144 const CFX_Matrix* pMatrix) {
145 if (m_pWidgetMgr->IsFormDisabled()) { 145 if (m_pWidgetMgr->IsFormDisabled()) {
146 return DisForm_DrawWidget(pGraphics, pMatrix); 146 DisForm_DrawWidget(pGraphics, pMatrix);
147 return;
147 } 148 }
148 if (!pGraphics) 149 if (!pGraphics)
149 return FWL_Error::Indefinite; 150 return;
150 if (!m_pProperties->m_pThemeProvider) 151 if (!m_pProperties->m_pThemeProvider)
151 return FWL_Error::Indefinite; 152 return;
152 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; 153 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider;
153 bool bIsDropDown = IsDropDownStyle(); 154 bool bIsDropDown = IsDropDownStyle();
154 if (HasBorder()) { 155 if (HasBorder()) {
155 DrawBorder(pGraphics, CFWL_Part::Border, pTheme, pMatrix); 156 DrawBorder(pGraphics, CFWL_Part::Border, pTheme, pMatrix);
156 } 157 }
157 if (HasEdge()) { 158 if (HasEdge()) {
158 DrawEdge(pGraphics, CFWL_Part::Edge, pTheme, pMatrix); 159 DrawEdge(pGraphics, CFWL_Part::Edge, pTheme, pMatrix);
159 } 160 }
160 if (!bIsDropDown) { 161 if (!bIsDropDown) {
161 CFX_RectF rtTextBk(m_rtClient); 162 CFX_RectF rtTextBk(m_rtClient);
(...skipping 19 matching lines...) Expand all
181 param.m_dwStates = CFWL_PartState_Disabled; 182 param.m_dwStates = CFWL_PartState_Disabled;
182 } else if ((m_pProperties->m_dwStates & FWL_WGTSTATE_Focused) && 183 } else if ((m_pProperties->m_dwStates & FWL_WGTSTATE_Focused) &&
183 (m_iCurSel >= 0)) { 184 (m_iCurSel >= 0)) {
184 param.m_dwStates = CFWL_PartState_Selected; 185 param.m_dwStates = CFWL_PartState_Selected;
185 } else { 186 } else {
186 param.m_dwStates = CFWL_PartState_Normal; 187 param.m_dwStates = CFWL_PartState_Normal;
187 } 188 }
188 pTheme->DrawBackground(&param); 189 pTheme->DrawBackground(&param);
189 if (m_iCurSel >= 0) { 190 if (m_iCurSel >= 0) {
190 if (!m_pListBox) 191 if (!m_pListBox)
191 return FWL_Error::Indefinite; 192 return;
192 CFX_WideString wsText; 193 CFX_WideString wsText;
193 IFWL_ComboBoxDP* pData = 194 IFWL_ComboBoxDP* pData =
194 static_cast<IFWL_ComboBoxDP*>(m_pProperties->m_pDataProvider); 195 static_cast<IFWL_ComboBoxDP*>(m_pProperties->m_pDataProvider);
195 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel); 196 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel);
196 m_pListBox->GetItemText(hItem, wsText); 197 m_pListBox->GetItemText(hItem, wsText);
197 CFWL_ThemeText theme_text; 198 CFWL_ThemeText theme_text;
198 theme_text.m_pWidget = this; 199 theme_text.m_pWidget = this;
199 theme_text.m_iPart = CFWL_Part::Caption; 200 theme_text.m_iPart = CFWL_Part::Caption;
200 theme_text.m_dwStates = m_iBtnState; 201 theme_text.m_dwStates = m_iBtnState;
201 theme_text.m_pGraphics = pGraphics; 202 theme_text.m_pGraphics = pGraphics;
(...skipping 13 matching lines...) Expand all
215 param.m_pWidget = this; 216 param.m_pWidget = this;
216 param.m_iPart = CFWL_Part::DropDownButton; 217 param.m_iPart = CFWL_Part::DropDownButton;
217 param.m_dwStates = (m_pProperties->m_dwStates & FWL_WGTSTATE_Disabled) 218 param.m_dwStates = (m_pProperties->m_dwStates & FWL_WGTSTATE_Disabled)
218 ? CFWL_PartState_Disabled 219 ? CFWL_PartState_Disabled
219 : m_iBtnState; 220 : m_iBtnState;
220 param.m_pGraphics = pGraphics; 221 param.m_pGraphics = pGraphics;
221 param.m_matrix.Concat(*pMatrix); 222 param.m_matrix.Concat(*pMatrix);
222 param.m_rtPart = m_rtBtn; 223 param.m_rtPart = m_rtBtn;
223 pTheme->DrawBackground(&param); 224 pTheme->DrawBackground(&param);
224 } 225 }
225 return FWL_Error::Succeeded;
226 } 226 }
227 227
228 FWL_Error IFWL_ComboBox::SetThemeProvider(IFWL_ThemeProvider* pThemeProvider) { 228 void IFWL_ComboBox::SetThemeProvider(IFWL_ThemeProvider* pThemeProvider) {
229 if (!pThemeProvider) 229 if (!pThemeProvider)
230 return FWL_Error::Indefinite; 230 return;
231 m_pProperties->m_pThemeProvider = pThemeProvider; 231 m_pProperties->m_pThemeProvider = pThemeProvider;
232 if (m_pListBox) 232 if (m_pListBox)
233 m_pListBox->SetThemeProvider(pThemeProvider); 233 m_pListBox->SetThemeProvider(pThemeProvider);
234 if (m_pEdit) 234 if (m_pEdit)
235 m_pEdit->SetThemeProvider(pThemeProvider); 235 m_pEdit->SetThemeProvider(pThemeProvider);
236 return FWL_Error::Succeeded;
237 } 236 }
238 237
239 int32_t IFWL_ComboBox::GetCurSel() { 238 int32_t IFWL_ComboBox::GetCurSel() {
240 return m_iCurSel; 239 return m_iCurSel;
241 } 240 }
242 241
243 FWL_Error IFWL_ComboBox::SetCurSel(int32_t iSel) { 242 FWL_Error IFWL_ComboBox::SetCurSel(int32_t iSel) {
244 int32_t iCount = m_pListBox->CountItems(); 243 int32_t iCount = m_pListBox->CountItems();
245 bool bClearSel = iSel < 0 || iSel >= iCount; 244 bool bClearSel = iSel < 0 || iSel >= iCount;
246 bool bDropDown = IsDropDownStyle(); 245 bool bDropDown = IsDropDownStyle();
(...skipping 16 matching lines...) Expand all
263 262
264 void IFWL_ComboBox::SetStates(uint32_t dwStates, bool bSet) { 263 void IFWL_ComboBox::SetStates(uint32_t dwStates, bool bSet) {
265 bool bIsDropDown = IsDropDownStyle(); 264 bool bIsDropDown = IsDropDownStyle();
266 if (bIsDropDown && m_pEdit) 265 if (bIsDropDown && m_pEdit)
267 m_pEdit->SetStates(dwStates, bSet); 266 m_pEdit->SetStates(dwStates, bSet);
268 if (m_pListBox) 267 if (m_pListBox)
269 m_pListBox->SetStates(dwStates, bSet); 268 m_pListBox->SetStates(dwStates, bSet);
270 IFWL_Widget::SetStates(dwStates, bSet); 269 IFWL_Widget::SetStates(dwStates, bSet);
271 } 270 }
272 271
273 FWL_Error IFWL_ComboBox::SetEditText(const CFX_WideString& wsText) { 272 void IFWL_ComboBox::SetEditText(const CFX_WideString& wsText) {
274 if (!m_pEdit) 273 if (!m_pEdit)
275 return FWL_Error::Indefinite; 274 return;
276 m_pEdit->SetText(wsText); 275 m_pEdit->SetText(wsText);
277 return m_pEdit->Update(); 276 m_pEdit->Update();
278 } 277 }
279 278
280 int32_t IFWL_ComboBox::GetEditTextLength() const { 279 int32_t IFWL_ComboBox::GetEditTextLength() const {
281 if (!m_pEdit) 280 if (!m_pEdit)
282 return -1; 281 return -1;
283 return m_pEdit->GetTextLength(); 282 return m_pEdit->GetTextLength();
284 } 283 }
285 284
286 FWL_Error IFWL_ComboBox::GetEditText(CFX_WideString& wsText, 285 FWL_Error IFWL_ComboBox::GetEditText(CFX_WideString& wsText,
287 int32_t nStart, 286 int32_t nStart,
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 rect = m_pProperties->m_rtWidget; 419 rect = m_pProperties->m_rtWidget;
421 if (m_pListBox && IsDropListShowed()) { 420 if (m_pListBox && IsDropListShowed()) {
422 CFX_RectF rtList; 421 CFX_RectF rtList;
423 m_pListBox->GetWidgetRect(rtList); 422 m_pListBox->GetWidgetRect(rtList);
424 rtList.Offset(rect.left, rect.top); 423 rtList.Offset(rect.left, rect.top);
425 rect.Union(rtList); 424 rect.Union(rtList);
426 } 425 }
427 return FWL_Error::Succeeded; 426 return FWL_Error::Succeeded;
428 } 427 }
429 428
430 FWL_Error IFWL_ComboBox::EditModifyStylesEx(uint32_t dwStylesExAdded, 429 void IFWL_ComboBox::EditModifyStylesEx(uint32_t dwStylesExAdded,
431 uint32_t dwStylesExRemoved) { 430 uint32_t dwStylesExRemoved) {
432 if (!m_pEdit) 431 if (m_pEdit)
433 return FWL_Error::ParameterInvalid; 432 m_pEdit->ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved);
434 return m_pEdit->ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved);
435 } 433 }
436 434
437 FX_FLOAT IFWL_ComboBox::GetListHeight() { 435 FX_FLOAT IFWL_ComboBox::GetListHeight() {
438 return static_cast<IFWL_ComboBoxDP*>(m_pProperties->m_pDataProvider) 436 return static_cast<IFWL_ComboBoxDP*>(m_pProperties->m_pDataProvider)
439 ->GetListHeight(this); 437 ->GetListHeight(this);
440 } 438 }
441 439
442 void IFWL_ComboBox::DrawStretchHandler(CFX_Graphics* pGraphics, 440 void IFWL_ComboBox::DrawStretchHandler(CFX_Graphics* pGraphics,
443 const CFX_Matrix* pMatrix) { 441 const CFX_Matrix* pMatrix) {
444 CFWL_ThemeBackground param; 442 CFWL_ThemeBackground param;
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
770 CFX_RectF rect; 768 CFX_RectF rect;
771 m_pListBox->GetWidgetRect(rect); 769 m_pListBox->GetWidgetRect(rect);
772 rect.Inflate(2, 2); 770 rect.Inflate(2, 2);
773 Repaint(&rect); 771 Repaint(&rect);
774 } 772 }
775 773
776 bool IFWL_ComboBox::DisForm_IsDropListShowed() { 774 bool IFWL_ComboBox::DisForm_IsDropListShowed() {
777 return !(m_pListBox->GetStates() & FWL_WGTSTATE_Invisible); 775 return !(m_pListBox->GetStates() & FWL_WGTSTATE_Invisible);
778 } 776 }
779 777
780 FWL_Error IFWL_ComboBox::DisForm_ModifyStylesEx(uint32_t dwStylesExAdded, 778 void IFWL_ComboBox::DisForm_ModifyStylesEx(uint32_t dwStylesExAdded,
781 uint32_t dwStylesExRemoved) { 779 uint32_t dwStylesExRemoved) {
782 if (!m_pEdit) 780 if (!m_pEdit)
783 DisForm_InitComboEdit(); 781 DisForm_InitComboEdit();
784 782
785 bool bAddDropDown = !!(dwStylesExAdded & FWL_STYLEEXT_CMB_DropDown); 783 bool bAddDropDown = !!(dwStylesExAdded & FWL_STYLEEXT_CMB_DropDown);
786 bool bDelDropDown = !!(dwStylesExRemoved & FWL_STYLEEXT_CMB_DropDown); 784 bool bDelDropDown = !!(dwStylesExRemoved & FWL_STYLEEXT_CMB_DropDown);
787 dwStylesExRemoved &= ~FWL_STYLEEXT_CMB_DropDown; 785 dwStylesExRemoved &= ~FWL_STYLEEXT_CMB_DropDown;
788 m_pProperties->m_dwStyleExes |= FWL_STYLEEXT_CMB_DropDown; 786 m_pProperties->m_dwStyleExes |= FWL_STYLEEXT_CMB_DropDown;
789 if (bAddDropDown) { 787 if (bAddDropDown) {
790 m_pEdit->ModifyStylesEx(0, FWL_STYLEEXT_EDT_ReadOnly); 788 m_pEdit->ModifyStylesEx(0, FWL_STYLEEXT_EDT_ReadOnly);
791 } else if (bDelDropDown) { 789 } else if (bDelDropDown) {
792 m_pEdit->ModifyStylesEx(FWL_STYLEEXT_EDT_ReadOnly, 0); 790 m_pEdit->ModifyStylesEx(FWL_STYLEEXT_EDT_ReadOnly, 0);
793 } 791 }
794 return IFWL_Widget::ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved); 792 IFWL_Widget::ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved);
795 } 793 }
796 794
797 FWL_Error IFWL_ComboBox::DisForm_Update() { 795 void IFWL_ComboBox::DisForm_Update() {
798 if (m_iLock) { 796 if (m_iLock) {
799 return FWL_Error::Indefinite; 797 return;
800 } 798 }
801 if (m_pEdit) { 799 if (m_pEdit) {
802 ReSetEditAlignment(); 800 ReSetEditAlignment();
803 } 801 }
804 ReSetTheme(); 802 ReSetTheme();
805 Layout(); 803 Layout();
806 return FWL_Error::Succeeded;
807 } 804 }
808 805
809 FWL_WidgetHit IFWL_ComboBox::DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy) { 806 FWL_WidgetHit IFWL_ComboBox::DisForm_HitTest(FX_FLOAT fx, FX_FLOAT fy) {
810 CFX_RectF rect; 807 CFX_RectF rect;
811 rect.Set(0, 0, m_pProperties->m_rtWidget.width - m_rtBtn.width, 808 rect.Set(0, 0, m_pProperties->m_rtWidget.width - m_rtBtn.width,
812 m_pProperties->m_rtWidget.height); 809 m_pProperties->m_rtWidget.height);
813 if (rect.Contains(fx, fy)) 810 if (rect.Contains(fx, fy))
814 return FWL_WidgetHit::Edit; 811 return FWL_WidgetHit::Edit;
815 if (m_rtBtn.Contains(fx, fy)) 812 if (m_rtBtn.Contains(fx, fy))
816 return FWL_WidgetHit::Client; 813 return FWL_WidgetHit::Client;
817 if (DisForm_IsDropListShowed()) { 814 if (DisForm_IsDropListShowed()) {
818 m_pListBox->GetWidgetRect(rect); 815 m_pListBox->GetWidgetRect(rect);
819 if (rect.Contains(fx, fy)) 816 if (rect.Contains(fx, fy))
820 return FWL_WidgetHit::Client; 817 return FWL_WidgetHit::Client;
821 } 818 }
822 return FWL_WidgetHit::Unknown; 819 return FWL_WidgetHit::Unknown;
823 } 820 }
824 821
825 FWL_Error IFWL_ComboBox::DisForm_DrawWidget(CFX_Graphics* pGraphics, 822 void IFWL_ComboBox::DisForm_DrawWidget(CFX_Graphics* pGraphics,
826 const CFX_Matrix* pMatrix) { 823 const CFX_Matrix* pMatrix) {
827 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; 824 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider;
828 CFX_Matrix mtOrg; 825 CFX_Matrix mtOrg;
829 mtOrg.Set(1, 0, 0, 1, 0, 0); 826 mtOrg.Set(1, 0, 0, 1, 0, 0);
830 if (pMatrix) { 827 if (pMatrix) {
831 mtOrg = *pMatrix; 828 mtOrg = *pMatrix;
832 } 829 }
833 bool bListShowed = m_pListBox && DisForm_IsDropListShowed(); 830 bool bListShowed = m_pListBox && DisForm_IsDropListShowed();
834 pGraphics->SaveGraphState(); 831 pGraphics->SaveGraphState();
835 pGraphics->ConcatMatrix(&mtOrg); 832 pGraphics->ConcatMatrix(&mtOrg);
836 if (!m_rtBtn.IsEmpty(0.1f)) { 833 if (!m_rtBtn.IsEmpty(0.1f)) {
(...skipping 15 matching lines...) Expand all
852 m_pEdit->DrawWidget(pGraphics, &mt); 849 m_pEdit->DrawWidget(pGraphics, &mt);
853 } 850 }
854 if (bListShowed) { 851 if (bListShowed) {
855 CFX_RectF rtList; 852 CFX_RectF rtList;
856 m_pListBox->GetWidgetRect(rtList); 853 m_pListBox->GetWidgetRect(rtList);
857 CFX_Matrix mt; 854 CFX_Matrix mt;
858 mt.Set(1, 0, 0, 1, rtList.left, rtList.top); 855 mt.Set(1, 0, 0, 1, rtList.left, rtList.top);
859 mt.Concat(mtOrg); 856 mt.Concat(mtOrg);
860 m_pListBox->DrawWidget(pGraphics, &mt); 857 m_pListBox->DrawWidget(pGraphics, &mt);
861 } 858 }
862 return FWL_Error::Succeeded;
863 } 859 }
864 860
865 FWL_Error IFWL_ComboBox::DisForm_GetBBox(CFX_RectF& rect) { 861 FWL_Error IFWL_ComboBox::DisForm_GetBBox(CFX_RectF& rect) {
866 rect = m_pProperties->m_rtWidget; 862 rect = m_pProperties->m_rtWidget;
867 if (m_pListBox && DisForm_IsDropListShowed()) { 863 if (m_pListBox && DisForm_IsDropListShowed()) {
868 CFX_RectF rtList; 864 CFX_RectF rtList;
869 m_pListBox->GetWidgetRect(rtList); 865 m_pListBox->GetWidgetRect(rtList);
870 rtList.Offset(rect.left, rect.top); 866 rtList.Offset(rect.left, rect.top);
871 rect.Union(rtList); 867 rect.Union(rtList);
872 } 868 }
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
1255 else 1251 else
1256 iCurSel++; 1252 iCurSel++;
1257 } 1253 }
1258 m_iCurSel = iCurSel; 1254 m_iCurSel = iCurSel;
1259 SynchrEditText(m_iCurSel); 1255 SynchrEditText(m_iCurSel);
1260 return; 1256 return;
1261 } 1257 }
1262 if (m_pEdit) 1258 if (m_pEdit)
1263 m_pEdit->GetDelegate()->OnProcessMessage(pMsg); 1259 m_pEdit->GetDelegate()->OnProcessMessage(pMsg);
1264 } 1260 }
OLDNEW
« no previous file with comments | « xfa/fwl/core/ifwl_combobox.h ('k') | xfa/fwl/core/ifwl_datetimepicker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698