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

Side by Side Diff: fpdfsdk/pdfwindow/PWL_ListBox.cpp

Issue 2142213002: Remove some IFX_* wrappers. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 5 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 | « fpdfsdk/pdfwindow/PWL_ListBox.h ('k') | fpdfsdk/pdfwindow/PWL_Utils.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 "fpdfsdk/pdfwindow/PWL_ListBox.h" 7 #include "fpdfsdk/pdfwindow/PWL_ListBox.h"
8 8
9 #include "fpdfsdk/fxedit/include/fxet_edit.h"
10 #include "fpdfsdk/fxedit/include/fxet_list.h"
9 #include "fpdfsdk/pdfwindow/PWL_Edit.h" 11 #include "fpdfsdk/pdfwindow/PWL_Edit.h"
10 #include "fpdfsdk/pdfwindow/PWL_EditCtrl.h" 12 #include "fpdfsdk/pdfwindow/PWL_EditCtrl.h"
11 #include "fpdfsdk/pdfwindow/PWL_ScrollBar.h" 13 #include "fpdfsdk/pdfwindow/PWL_ScrollBar.h"
12 #include "fpdfsdk/pdfwindow/PWL_Utils.h" 14 #include "fpdfsdk/pdfwindow/PWL_Utils.h"
13 #include "fpdfsdk/pdfwindow/PWL_Wnd.h" 15 #include "fpdfsdk/pdfwindow/PWL_Wnd.h"
14 #include "public/fpdf_fwlevent.h" 16 #include "public/fpdf_fwlevent.h"
15 17
16 #define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001) 18 #define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
17 #define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb))) 19 #define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
18 #define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb))) 20 #define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb)))
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 60
59 void CPWL_List_Notify::IOnSetScrollPosY(FX_FLOAT fy) { 61 void CPWL_List_Notify::IOnSetScrollPosY(FX_FLOAT fy) {
60 m_pList->OnNotify(m_pList, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&fy); 62 m_pList->OnNotify(m_pList, PNM_SETSCROLLPOS, SBT_VSCROLL, (intptr_t)&fy);
61 } 63 }
62 64
63 void CPWL_List_Notify::IOnInvalidateRect(CFX_FloatRect* pRect) { 65 void CPWL_List_Notify::IOnInvalidateRect(CFX_FloatRect* pRect) {
64 m_pList->InvalidateRect(pRect); 66 m_pList->InvalidateRect(pRect);
65 } 67 }
66 68
67 CPWL_ListBox::CPWL_ListBox() 69 CPWL_ListBox::CPWL_ListBox()
68 : m_pList(nullptr), 70 : m_pList(new CFX_ListCtrl),
69 m_pListNotify(nullptr),
70 m_bMouseDown(FALSE), 71 m_bMouseDown(FALSE),
71 m_bHoverSel(FALSE), 72 m_bHoverSel(FALSE),
72 m_pFillerNotify(nullptr) { 73 m_pFillerNotify(nullptr) {}
73 m_pList = IFX_List::NewList();
74 }
75 74
76 CPWL_ListBox::~CPWL_ListBox() { 75 CPWL_ListBox::~CPWL_ListBox() {
77 IFX_List::DelList(m_pList);
78 delete m_pListNotify;
79 m_pListNotify = nullptr;
80 } 76 }
81 77
82 CFX_ByteString CPWL_ListBox::GetClassName() const { 78 CFX_ByteString CPWL_ListBox::GetClassName() const {
83 return "CPWL_ListBox"; 79 return "CPWL_ListBox";
84 } 80 }
85 81
86 void CPWL_ListBox::OnCreated() { 82 void CPWL_ListBox::OnCreated() {
87 if (m_pList) { 83 if (m_pList) {
88 delete m_pListNotify;
89
90 m_pList->SetFontMap(GetFontMap()); 84 m_pList->SetFontMap(GetFontMap());
91 m_pList->SetNotify(m_pListNotify = new CPWL_List_Notify(this)); 85 m_pListNotify.reset(new CPWL_List_Notify(this));
86 m_pList->SetNotify(m_pListNotify.get());
92 87
93 SetHoverSel(HasFlag(PLBS_HOVERSEL)); 88 SetHoverSel(HasFlag(PLBS_HOVERSEL));
94 m_pList->SetMultipleSel(HasFlag(PLBS_MULTIPLESEL)); 89 m_pList->SetMultipleSel(HasFlag(PLBS_MULTIPLESEL));
95 m_pList->SetFontSize(GetCreationParam().fFontSize); 90 m_pList->SetFontSize(GetCreationParam().fFontSize);
96 91
97 m_bHoverSel = HasFlag(PLBS_HOVERSEL); 92 m_bHoverSel = HasFlag(PLBS_HOVERSEL);
98 } 93 }
99 } 94 }
100 95
101 void CPWL_ListBox::OnDestroy() { 96 void CPWL_ListBox::OnDestroy() {
102 delete m_pListNotify; 97 m_pListNotify.reset();
103 m_pListNotify = nullptr;
104 } 98 }
105 99
106 void CPWL_ListBox::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) { 100 void CPWL_ListBox::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
107 CPWL_Wnd::GetThisAppearanceStream(sAppStream); 101 CPWL_Wnd::GetThisAppearanceStream(sAppStream);
108 102
109 CFX_ByteTextBuf sListItems; 103 CFX_ByteTextBuf sListItems;
110 104
111 if (m_pList) { 105 if (m_pList) {
112 CFX_FloatRect rcPlate = m_pList->GetPlateRect(); 106 CFX_FloatRect rcPlate = m_pList->GetPlateRect();
113 for (int32_t i = 0, sz = m_pList->GetCount(); i < sz; i++) { 107 for (int32_t i = 0, sz = m_pList->GetCount(); i < sz; i++) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 CFX_FloatRect rcPlate = m_pList->GetPlateRect(); 159 CFX_FloatRect rcPlate = m_pList->GetPlateRect();
166 CFX_FloatRect rcList = GetListRect(); 160 CFX_FloatRect rcList = GetListRect();
167 CFX_FloatRect rcClient = GetClientRect(); 161 CFX_FloatRect rcClient = GetClientRect();
168 162
169 for (int32_t i = 0, sz = m_pList->GetCount(); i < sz; i++) { 163 for (int32_t i = 0, sz = m_pList->GetCount(); i < sz; i++) {
170 CFX_FloatRect rcItem = m_pList->GetItemRect(i); 164 CFX_FloatRect rcItem = m_pList->GetItemRect(i);
171 if (rcItem.bottom > rcPlate.top || rcItem.top < rcPlate.bottom) 165 if (rcItem.bottom > rcPlate.top || rcItem.top < rcPlate.bottom)
172 continue; 166 continue;
173 167
174 CFX_FloatPoint ptOffset(rcItem.left, (rcItem.top + rcItem.bottom) * 0.5f); 168 CFX_FloatPoint ptOffset(rcItem.left, (rcItem.top + rcItem.bottom) * 0.5f);
175 if (IFX_Edit* pEdit = m_pList->GetItemEdit(i)) { 169 if (CFX_Edit* pEdit = m_pList->GetItemEdit(i)) {
176 CFX_FloatRect rcContent = pEdit->GetContentRect(); 170 CFX_FloatRect rcContent = pEdit->GetContentRect();
177 if (rcContent.Width() > rcClient.Width()) 171 if (rcContent.Width() > rcClient.Width())
178 rcItem.Intersect(rcList); 172 rcItem.Intersect(rcList);
179 else 173 else
180 rcItem.Intersect(rcClient); 174 rcItem.Intersect(rcClient);
181 } 175 }
182 176
183 if (m_pList->IsItemSelected(i)) { 177 if (m_pList->IsItemSelected(i)) {
184 CFX_SystemHandler* pSysHandler = GetSystemHandler(); 178 CFX_SystemHandler* pSysHandler = GetSystemHandler();
185 if (pSysHandler && pSysHandler->IsSelectionImplemented()) { 179 if (pSysHandler && pSysHandler->IsSelectionImplemented()) {
186 IFX_Edit::DrawEdit( 180 CFX_Edit::DrawEdit(
187 pDevice, pUser2Device, m_pList->GetItemEdit(i), 181 pDevice, pUser2Device, m_pList->GetItemEdit(i),
188 CPWL_Utils::PWLColorToFXColor(GetTextColor()), 182 CPWL_Utils::PWLColorToFXColor(GetTextColor()),
189 CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor()), rcList, 183 CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor()), rcList,
190 ptOffset, nullptr, pSysHandler, m_pFormFiller); 184 ptOffset, nullptr, pSysHandler, m_pFormFiller);
191 pSysHandler->OutputSelectedRect(m_pFormFiller, rcItem); 185 pSysHandler->OutputSelectedRect(m_pFormFiller, rcItem);
192 } else { 186 } else {
193 CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcItem, 187 CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rcItem,
194 ArgbEncode(255, 0, 51, 113)); 188 ArgbEncode(255, 0, 51, 113));
195 IFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i), 189 CFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i),
196 ArgbEncode(255, 255, 255, 255), 0, rcList, 190 ArgbEncode(255, 255, 255, 255), 0, rcList,
197 ptOffset, nullptr, pSysHandler, m_pFormFiller); 191 ptOffset, nullptr, pSysHandler, m_pFormFiller);
198 } 192 }
199 } else { 193 } else {
200 CFX_SystemHandler* pSysHandler = GetSystemHandler(); 194 CFX_SystemHandler* pSysHandler = GetSystemHandler();
201 IFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i), 195 CFX_Edit::DrawEdit(pDevice, pUser2Device, m_pList->GetItemEdit(i),
202 CPWL_Utils::PWLColorToFXColor(GetTextColor()), 196 CPWL_Utils::PWLColorToFXColor(GetTextColor()),
203 CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor()), 197 CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor()),
204 rcList, ptOffset, nullptr, pSysHandler, nullptr); 198 rcList, ptOffset, nullptr, pSysHandler, nullptr);
205 } 199 }
206 } 200 }
207 } 201 }
208 } 202 }
209 203
210 FX_BOOL CPWL_ListBox::OnKeyDown(uint16_t nChar, uint32_t nFlag) { 204 FX_BOOL CPWL_ListBox::OnKeyDown(uint16_t nChar, uint32_t nFlag) {
211 CPWL_Wnd::OnKeyDown(nChar, nFlag); 205 CPWL_Wnd::OnKeyDown(nChar, nFlag);
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 if (zDelta < 0) { 522 if (zDelta < 0) {
529 m_pList->OnVK_DOWN(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)); 523 m_pList->OnVK_DOWN(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
530 } else { 524 } else {
531 m_pList->OnVK_UP(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)); 525 m_pList->OnVK_UP(IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
532 } 526 }
533 527
534 FX_BOOL bExit = FALSE; 528 FX_BOOL bExit = FALSE;
535 OnNotifySelChanged(FALSE, bExit, nFlag); 529 OnNotifySelChanged(FALSE, bExit, nFlag);
536 return TRUE; 530 return TRUE;
537 } 531 }
OLDNEW
« no previous file with comments | « fpdfsdk/pdfwindow/PWL_ListBox.h ('k') | fpdfsdk/pdfwindow/PWL_Utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698