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 "../../include/pdfwindow/PDFWindow.h" | 7 #include "../../include/pdfwindow/PDFWindow.h" |
8 #include "../../include/pdfwindow/PWL_Wnd.h" | 8 #include "../../include/pdfwindow/PWL_Wnd.h" |
9 #include "../../include/pdfwindow/PWL_EditCtrl.h" | 9 #include "../../include/pdfwindow/PWL_EditCtrl.h" |
10 #include "../../include/pdfwindow/PWL_Edit.h" | 10 #include "../../include/pdfwindow/PWL_Edit.h" |
11 #include "../../include/pdfwindow/PWL_ListBox.h" | 11 #include "../../include/pdfwindow/PWL_ListBox.h" |
12 #include "../../include/pdfwindow/PWL_ComboBox.h" | 12 #include "../../include/pdfwindow/PWL_ComboBox.h" |
13 #include "../../include/pdfwindow/PWL_Utils.h" | 13 #include "../../include/pdfwindow/PWL_Utils.h" |
14 | 14 |
15 #define PWLCB_DEFAULTFONTSIZE 12.0f | 15 #define PWLCB_DEFAULTFONTSIZE 12.0f |
16 | 16 |
17 #define IsFloatZero(f) ((f) < 0.0001 &&
(f) > -0.0001) | 17 #define IsFloatZero(f) ((f) < 0.0001 &&
(f) > -0.0001) |
18 #define IsFloatBigger(fa,fb) ((fa) > (fb) && !IsFloat
Zero((fa) - (fb))) | 18 #define IsFloatBigger(fa,fb) ((fa) > (fb) && !IsFloat
Zero((fa) - (fb))) |
19 #define IsFloatSmaller(fa,fb) ((fa) < (fb) && !IsFloat
Zero((fa) - (fb))) | 19 #define IsFloatSmaller(fa,fb) ((fa) < (fb) && !IsFloat
Zero((fa) - (fb))) |
20 #define IsFloatEqual(fa,fb) IsFloatZero((fa)
-(fb)) | 20 #define IsFloatEqual(fa,fb) IsFloatZero((fa)
-(fb)) |
21 | 21 |
22 | 22 |
23 /* ---------------------------- CPWL_CBListBox ---------------------------- */ | 23 /* ---------------------------- CPWL_CBListBox ---------------------------- */ |
24 | 24 |
25 FX_BOOL»CPWL_CBListBox::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag) | 25 bool» CPWL_CBListBox::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag) |
26 { | 26 { |
27 CPWL_Wnd::OnLButtonUp(point,nFlag); | 27 CPWL_Wnd::OnLButtonUp(point,nFlag); |
28 | 28 |
29 if (m_bMouseDown) | 29 if (m_bMouseDown) |
30 { | 30 { |
31 ReleaseCapture(); | 31 ReleaseCapture(); |
32 » » m_bMouseDown = FALSE; | 32 » » m_bMouseDown = false; |
33 | 33 |
34 if (ClientHitTest(point)) | 34 if (ClientHitTest(point)) |
35 { | 35 { |
36 if (CPWL_Wnd * pParent = GetParentWindow()) | 36 if (CPWL_Wnd * pParent = GetParentWindow()) |
37 { | 37 { |
38 pParent->OnNotify(this,PNM_LBUTTONUP,0,PWL_MAKED
WORD(point.x,point.y)); | 38 pParent->OnNotify(this,PNM_LBUTTONUP,0,PWL_MAKED
WORD(point.x,point.y)); |
39 } | 39 } |
40 | 40 |
41 » » » FX_BOOL bExit = FALSE; | 41 » » » bool bExit = false; |
42 » » » OnNotifySelChanged(FALSE,bExit, nFlag); | 42 » » » OnNotifySelChanged(false,bExit, nFlag); |
43 » » » if (bExit) return FALSE; | 43 » » » if (bExit) return false; |
44 } | 44 } |
45 } | 45 } |
46 | 46 |
47 » return TRUE; | 47 » return true; |
48 } | 48 } |
49 | 49 |
50 FX_BOOL CPWL_CBListBox::OnKeyDownWithExit(FX_WORD nChar, FX_BOOL & bExit, FX_DWO
RD nFlag) | 50 bool CPWL_CBListBox::OnKeyDownWithExit(FX_WORD nChar, bool & bExit, FX_DWORD nFl
ag) |
51 { | 51 { |
52 » if (!m_pList) return FALSE; | 52 » if (!m_pList) return false; |
53 | 53 |
54 switch (nChar) | 54 switch (nChar) |
55 { | 55 { |
56 default: | 56 default: |
57 » » return FALSE; | 57 » » return false; |
58 case FWL_VKEY_Up: | 58 case FWL_VKEY_Up: |
59 case FWL_VKEY_Down: | 59 case FWL_VKEY_Down: |
60 case FWL_VKEY_Home: | 60 case FWL_VKEY_Home: |
61 case FWL_VKEY_Left: | 61 case FWL_VKEY_Left: |
62 case FWL_VKEY_End: | 62 case FWL_VKEY_End: |
63 case FWL_VKEY_Right: | 63 case FWL_VKEY_Right: |
64 break; | 64 break; |
65 } | 65 } |
66 | 66 |
67 switch (nChar) | 67 switch (nChar) |
(...skipping 13 matching lines...) Expand all Loading... |
81 case FWL_VKEY_End: | 81 case FWL_VKEY_End: |
82 m_pList->OnVK_END(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag)); | 82 m_pList->OnVK_END(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag)); |
83 break; | 83 break; |
84 case FWL_VKEY_Right: | 84 case FWL_VKEY_Right: |
85 m_pList->OnVK_RIGHT(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag)); | 85 m_pList->OnVK_RIGHT(IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag)); |
86 break; | 86 break; |
87 case FWL_VKEY_Delete: | 87 case FWL_VKEY_Delete: |
88 break; | 88 break; |
89 } | 89 } |
90 | 90 |
91 » OnNotifySelChanged(TRUE,bExit, nFlag); | 91 » OnNotifySelChanged(true,bExit, nFlag); |
92 | 92 |
93 » return TRUE; | 93 » return true; |
94 } | 94 } |
95 | 95 |
96 FX_BOOL»CPWL_CBListBox::OnCharWithExit(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD
nFlag) | 96 bool» CPWL_CBListBox::OnCharWithExit(FX_WORD nChar, bool & bExit, FX_DWORD nFl
ag) |
97 { | 97 { |
98 » if (!m_pList) return FALSE; | 98 » if (!m_pList) return false; |
99 | 99 |
100 » if (!m_pList->OnChar(nChar,IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag)))
return FALSE; | 100 » if (!m_pList->OnChar(nChar,IsSHIFTpressed(nFlag),IsCTRLpressed(nFlag)))
return false; |
101 | 101 |
102 if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetParentWindow()) | 102 if (CPWL_ComboBox* pComboBox = (CPWL_ComboBox*)GetParentWindow()) |
103 { | 103 { |
104 pComboBox->SetSelectText(); | 104 pComboBox->SetSelectText(); |
105 } | 105 } |
106 | 106 |
107 » OnNotifySelChanged(TRUE,bExit,nFlag); | 107 » OnNotifySelChanged(true,bExit,nFlag); |
108 | 108 |
109 » return TRUE; | 109 » return true; |
110 } | 110 } |
111 | 111 |
112 /* ---------------------------- CPWL_CBButton ---------------------------- */ | 112 /* ---------------------------- CPWL_CBButton ---------------------------- */ |
113 | 113 |
114 void CPWL_CBButton::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream) | 114 void CPWL_CBButton::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream) |
115 { | 115 { |
116 CPWL_Wnd::GetThisAppearanceStream(sAppStream); | 116 CPWL_Wnd::GetThisAppearanceStream(sAppStream); |
117 | 117 |
118 CPDF_Rect rectWnd = CPWL_Wnd::GetWindowRect(); | 118 CPDF_Rect rectWnd = CPWL_Wnd::GetWindowRect(); |
119 | 119 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO); | 170 path.SetPoint(2, pt3.x, pt3.y, FXPT_LINETO); |
171 path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO); | 171 path.SetPoint(3, pt1.x, pt1.y, FXPT_LINETO); |
172 | 172 |
173 pDevice->DrawPath(&path, pUser2Device, NULL, | 173 pDevice->DrawPath(&path, pUser2Device, NULL, |
174 CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_BLACKC
OLOR,GetTransparency()), | 174 CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_BLACKC
OLOR,GetTransparency()), |
175 0, FXFILL_ALTERNATE); | 175 0, FXFILL_ALTERNATE); |
176 } | 176 } |
177 } | 177 } |
178 } | 178 } |
179 | 179 |
180 FX_BOOL»CPWL_CBButton::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag) | 180 bool» CPWL_CBButton::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag) |
181 { | 181 { |
182 CPWL_Wnd::OnLButtonDown(point,nFlag); | 182 CPWL_Wnd::OnLButtonDown(point,nFlag); |
183 | 183 |
184 SetCapture(); | 184 SetCapture(); |
185 | 185 |
186 if (CPWL_Wnd * pParent = GetParentWindow()) | 186 if (CPWL_Wnd * pParent = GetParentWindow()) |
187 { | 187 { |
188 pParent->OnNotify(this,PNM_LBUTTONDOWN,0,PWL_MAKEDWORD(point.x,p
oint.y)); | 188 pParent->OnNotify(this,PNM_LBUTTONDOWN,0,PWL_MAKEDWORD(point.x,p
oint.y)); |
189 } | 189 } |
190 | 190 |
191 » return TRUE; | 191 » return true; |
192 } | 192 } |
193 | 193 |
194 FX_BOOL»CPWL_CBButton::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag) | 194 bool» CPWL_CBButton::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag) |
195 { | 195 { |
196 CPWL_Wnd::OnLButtonUp(point, nFlag); | 196 CPWL_Wnd::OnLButtonUp(point, nFlag); |
197 | 197 |
198 ReleaseCapture(); | 198 ReleaseCapture(); |
199 | 199 |
200 » return TRUE; | 200 » return true; |
201 } | 201 } |
202 | 202 |
203 /* ---------------------------- CPWL_ComboBox ---------------------------- */ | 203 /* ---------------------------- CPWL_ComboBox ---------------------------- */ |
204 | 204 |
205 CPWL_ComboBox::CPWL_ComboBox() : m_pEdit(NULL), | 205 CPWL_ComboBox::CPWL_ComboBox() : m_pEdit(NULL), |
206 m_pButton(NULL), | 206 m_pButton(NULL), |
207 m_pList(NULL), | 207 m_pList(NULL), |
208 » m_bPopup(FALSE), | 208 » m_bPopup(false), |
209 m_nPopupWhere(0), | 209 m_nPopupWhere(0), |
210 m_nSelectItem(-1), | 210 m_nSelectItem(-1), |
211 m_pFillerNotify(NULL) | 211 m_pFillerNotify(NULL) |
212 { | 212 { |
213 } | 213 } |
214 | 214 |
215 CFX_ByteString CPWL_ComboBox::GetClassName() const | 215 CFX_ByteString CPWL_ComboBox::GetClassName() const |
216 { | 216 { |
217 return "CPWL_ComboBox"; | 217 return "CPWL_ComboBox"; |
218 } | 218 } |
219 | 219 |
220 void CPWL_ComboBox::OnCreate(PWL_CREATEPARAM & cp) | 220 void CPWL_ComboBox::OnCreate(PWL_CREATEPARAM & cp) |
221 { | 221 { |
222 cp.dwFlags &= ~PWS_HSCROLL; | 222 cp.dwFlags &= ~PWS_HSCROLL; |
223 cp.dwFlags &= ~PWS_VSCROLL; | 223 cp.dwFlags &= ~PWS_VSCROLL; |
224 } | 224 } |
225 | 225 |
226 void CPWL_ComboBox::SetFocus() | 226 void CPWL_ComboBox::SetFocus() |
227 { | 227 { |
228 if (m_pEdit) | 228 if (m_pEdit) |
229 m_pEdit->SetFocus(); | 229 m_pEdit->SetFocus(); |
230 } | 230 } |
231 | 231 |
232 void CPWL_ComboBox::KillFocus() | 232 void CPWL_ComboBox::KillFocus() |
233 { | 233 { |
234 » SetPopup(FALSE); | 234 » SetPopup(false); |
235 CPWL_Wnd::KillFocus(); | 235 CPWL_Wnd::KillFocus(); |
236 } | 236 } |
237 | 237 |
238 CFX_WideString CPWL_ComboBox::GetText() const | 238 CFX_WideString CPWL_ComboBox::GetText() const |
239 { | 239 { |
240 if (m_pEdit) | 240 if (m_pEdit) |
241 { | 241 { |
242 return m_pEdit->GetText(); | 242 return m_pEdit->GetText(); |
243 } | 243 } |
244 return CFX_WideString(); | 244 return CFX_WideString(); |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 rcEdit.right = rcEdit.left; | 432 rcEdit.right = rcEdit.left; |
433 | 433 |
434 rcEdit.top = rcEdit.bottom + fOldClientHeight; | 434 rcEdit.top = rcEdit.bottom + fOldClientHeight; |
435 | 435 |
436 rcList.bottom += fOldWindowHeight; | 436 rcList.bottom += fOldWindowHeight; |
437 | 437 |
438 break; | 438 break; |
439 } | 439 } |
440 | 440 |
441 if (m_pButton) | 441 if (m_pButton) |
442 » » » m_pButton->Move(rcButton,TRUE,FALSE); | 442 » » » m_pButton->Move(rcButton,true,false); |
443 | 443 |
444 if (m_pEdit) | 444 if (m_pEdit) |
445 » » » m_pEdit->Move(rcEdit,TRUE,FALSE); | 445 » » » m_pEdit->Move(rcEdit,true,false); |
446 | 446 |
447 if (m_pList) | 447 if (m_pList) |
448 { | 448 { |
449 » » » m_pList->SetVisible(TRUE); | 449 » » » m_pList->SetVisible(true); |
450 » » » m_pList->Move(rcList,TRUE,FALSE); | 450 » » » m_pList->Move(rcList,true,false); |
451 m_pList->ScrollToListItem(m_nSelectItem); | 451 m_pList->ScrollToListItem(m_nSelectItem); |
452 } | 452 } |
453 } | 453 } |
454 else | 454 else |
455 { | 455 { |
456 CPDF_Rect rcButton = rcClient; | 456 CPDF_Rect rcButton = rcClient; |
457 | 457 |
458 rcButton.left = rcButton.right - PWL_COMBOBOX_BUTTON_WIDTH; | 458 rcButton.left = rcButton.right - PWL_COMBOBOX_BUTTON_WIDTH; |
459 | 459 |
460 if (rcButton.left < rcClient.left) | 460 if (rcButton.left < rcClient.left) |
461 rcButton.left = rcClient.left; | 461 rcButton.left = rcClient.left; |
462 | 462 |
463 if (m_pButton) | 463 if (m_pButton) |
464 » » » m_pButton->Move(rcButton,TRUE,FALSE); | 464 » » » m_pButton->Move(rcButton,true,false); |
465 | 465 |
466 CPDF_Rect rcEdit = rcClient; | 466 CPDF_Rect rcEdit = rcClient; |
467 rcEdit.right = rcButton.left - 1.0f; | 467 rcEdit.right = rcButton.left - 1.0f; |
468 | 468 |
469 if (rcEdit.left < rcClient.left) | 469 if (rcEdit.left < rcClient.left) |
470 rcEdit.left = rcClient.left; | 470 rcEdit.left = rcClient.left; |
471 | 471 |
472 if (rcEdit.right < rcEdit.left) | 472 if (rcEdit.right < rcEdit.left) |
473 rcEdit.right = rcEdit.left; | 473 rcEdit.right = rcEdit.left; |
474 | 474 |
475 if (m_pEdit) | 475 if (m_pEdit) |
476 » » » m_pEdit->Move(rcEdit,TRUE,FALSE); | 476 » » » m_pEdit->Move(rcEdit,true,false); |
477 | 477 |
478 if (m_pList) | 478 if (m_pList) |
479 » » » m_pList->SetVisible(FALSE); | 479 » » » m_pList->SetVisible(false); |
480 } | 480 } |
481 } | 481 } |
482 | 482 |
483 void CPWL_ComboBox::SelectAll() | 483 void CPWL_ComboBox::SelectAll() |
484 { | 484 { |
485 if (m_pEdit && HasFlag(PCBS_ALLOWCUSTOMTEXT)) | 485 if (m_pEdit && HasFlag(PCBS_ALLOWCUSTOMTEXT)) |
486 m_pEdit->SelectAll(); | 486 m_pEdit->SelectAll(); |
487 } | 487 } |
488 | 488 |
489 CPDF_Rect CPWL_ComboBox::GetFocusRect() const | 489 CPDF_Rect CPWL_ComboBox::GetFocusRect() const |
490 { | 490 { |
491 return CPDF_Rect(); | 491 return CPDF_Rect(); |
492 } | 492 } |
493 | 493 |
494 void CPWL_ComboBox::SetPopup(FX_BOOL bPopup) | 494 void CPWL_ComboBox::SetPopup(bool bPopup) |
495 { | 495 { |
496 if (!m_pList) return; | 496 if (!m_pList) return; |
497 if (bPopup == m_bPopup) return; | 497 if (bPopup == m_bPopup) return; |
498 FX_FLOAT fListHeight = m_pList->GetContentRect().Height(); | 498 FX_FLOAT fListHeight = m_pList->GetContentRect().Height(); |
499 if (!IsFloatBigger(fListHeight,0.0f)) return; | 499 if (!IsFloatBigger(fListHeight,0.0f)) return; |
500 | 500 |
501 if (bPopup) | 501 if (bPopup) |
502 { | 502 { |
503 if (m_pFillerNotify) | 503 if (m_pFillerNotify) |
504 { | 504 { |
(...skipping 16 matching lines...) Expand all Loading... |
521 default: | 521 default: |
522 case 0: | 522 case 0: |
523 rcWindow.bottom -= fPopupRet; | 523 rcWindow.bottom -= fPopupRet; |
524 break; | 524 break; |
525 case 1: | 525 case 1: |
526 rcWindow.top += fPopupRet; | 526 rcWindow.top += fPopupRet; |
527 break; | 527 break; |
528 } | 528 } |
529 | 529 |
530 m_nPopupWhere = nWhere; | 530 m_nPopupWhere = nWhere; |
531 » » » » Move(rcWindow, TRUE, TRUE); | 531 » » » » Move(rcWindow, true, true); |
532 } | 532 } |
533 } | 533 } |
534 } | 534 } |
535 else | 535 else |
536 { | 536 { |
537 m_bPopup = bPopup; | 537 m_bPopup = bPopup; |
538 » » Move(m_rcOldWindow, TRUE, TRUE); | 538 » » Move(m_rcOldWindow, true, true); |
539 } | 539 } |
540 } | 540 } |
541 | 541 |
542 FX_BOOL CPWL_ComboBox::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) | 542 bool CPWL_ComboBox::OnKeyDown(FX_WORD nChar, FX_DWORD nFlag) |
543 { | 543 { |
544 » if (!m_pList) return FALSE; | 544 » if (!m_pList) return false; |
545 » if (!m_pEdit) return FALSE; | 545 » if (!m_pEdit) return false; |
546 | 546 |
547 m_nSelectItem = -1; | 547 m_nSelectItem = -1; |
548 | 548 |
549 switch (nChar) | 549 switch (nChar) |
550 { | 550 { |
551 case FWL_VKEY_Up: | 551 case FWL_VKEY_Up: |
552 if (m_pList->GetCurSel() > 0) | 552 if (m_pList->GetCurSel() > 0) |
553 { | 553 { |
554 » » » FX_BOOL bExit = FALSE; | 554 » » » bool bExit = false; |
555 if (m_pList->OnKeyDownWithExit(nChar,bExit,nFlag)) | 555 if (m_pList->OnKeyDownWithExit(nChar,bExit,nFlag)) |
556 { | 556 { |
557 » » » » if (bExit) return FALSE; | 557 » » » » if (bExit) return false; |
558 SetSelectText(); | 558 SetSelectText(); |
559 } | 559 } |
560 } | 560 } |
561 » » return TRUE; | 561 » » return true; |
562 case FWL_VKEY_Down: | 562 case FWL_VKEY_Down: |
563 if (m_pList->GetCurSel() < m_pList->GetCount() - 1) | 563 if (m_pList->GetCurSel() < m_pList->GetCount() - 1) |
564 { | 564 { |
565 » » » FX_BOOL bExit = FALSE; | 565 » » » bool bExit = false; |
566 if (m_pList->OnKeyDownWithExit(nChar,bExit,nFlag)) | 566 if (m_pList->OnKeyDownWithExit(nChar,bExit,nFlag)) |
567 { | 567 { |
568 » » » » if (bExit) return FALSE; | 568 » » » » if (bExit) return false; |
569 SetSelectText(); | 569 SetSelectText(); |
570 } | 570 } |
571 } | 571 } |
572 » » return TRUE; | 572 » » return true; |
573 } | 573 } |
574 | 574 |
575 if (HasFlag(PCBS_ALLOWCUSTOMTEXT)) | 575 if (HasFlag(PCBS_ALLOWCUSTOMTEXT)) |
576 return m_pEdit->OnKeyDown(nChar,nFlag); | 576 return m_pEdit->OnKeyDown(nChar,nFlag); |
577 else | 577 else |
578 » » return FALSE; | 578 » » return false; |
579 } | 579 } |
580 | 580 |
581 FX_BOOL CPWL_ComboBox::OnChar(FX_WORD nChar, FX_DWORD nFlag) | 581 bool CPWL_ComboBox::OnChar(FX_WORD nChar, FX_DWORD nFlag) |
582 { | 582 { |
583 » if (!m_pList) return FALSE; | 583 » if (!m_pList) return false; |
584 » if (!m_pEdit) return FALSE; | 584 » if (!m_pEdit) return false; |
585 | 585 |
586 m_nSelectItem = -1; | 586 m_nSelectItem = -1; |
587 » FX_BOOL bExit = FALSE; | 587 » bool bExit = false; |
588 | 588 |
589 if (HasFlag(PCBS_ALLOWCUSTOMTEXT)) | 589 if (HasFlag(PCBS_ALLOWCUSTOMTEXT)) |
590 { | 590 { |
591 return m_pEdit->OnChar(nChar,nFlag); | 591 return m_pEdit->OnChar(nChar,nFlag); |
592 } | 592 } |
593 else | 593 else |
594 { | 594 { |
595 if (m_pList->OnCharWithExit(nChar,bExit,nFlag)) | 595 if (m_pList->OnCharWithExit(nChar,bExit,nFlag)) |
596 { | 596 { |
597 return bExit; | 597 return bExit; |
598 } | 598 } |
599 else | 599 else |
600 » » » return FALSE; | 600 » » » return false; |
601 } | 601 } |
602 } | 602 } |
603 | 603 |
604 void CPWL_ComboBox::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intp
tr_t lParam) | 604 void CPWL_ComboBox::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, intp
tr_t lParam) |
605 { | 605 { |
606 switch (msg) | 606 switch (msg) |
607 { | 607 { |
608 case PNM_LBUTTONDOWN: | 608 case PNM_LBUTTONDOWN: |
609 if (pWnd == m_pButton) | 609 if (pWnd == m_pButton) |
610 { | 610 { |
611 SetPopup(!m_bPopup); | 611 SetPopup(!m_bPopup); |
612 return; | 612 return; |
613 } | 613 } |
614 break; | 614 break; |
615 case PNM_LBUTTONUP: | 615 case PNM_LBUTTONUP: |
616 if (m_pEdit && m_pList) | 616 if (m_pEdit && m_pList) |
617 { | 617 { |
618 if (pWnd == m_pList) | 618 if (pWnd == m_pList) |
619 { | 619 { |
620 SetSelectText(); | 620 SetSelectText(); |
621 SelectAll(); | 621 SelectAll(); |
622 m_pEdit->SetFocus(); | 622 m_pEdit->SetFocus(); |
623 » » » » SetPopup(FALSE); | 623 » » » » SetPopup(false); |
624 return; | 624 return; |
625 } | 625 } |
626 } | 626 } |
627 } | 627 } |
628 | 628 |
629 CPWL_Wnd::OnNotify(pWnd,msg,wParam,lParam); | 629 CPWL_Wnd::OnNotify(pWnd,msg,wParam,lParam); |
630 } | 630 } |
631 | 631 |
632 FX_BOOL CPWL_ComboBox::IsPopup() const | 632 bool CPWL_ComboBox::IsPopup() const |
633 { | 633 { |
634 return m_bPopup; | 634 return m_bPopup; |
635 } | 635 } |
636 | 636 |
637 void CPWL_ComboBox::SetSelectText() | 637 void CPWL_ComboBox::SetSelectText() |
638 { | 638 { |
639 CFX_WideString swText = m_pList->GetText(); | 639 CFX_WideString swText = m_pList->GetText(); |
640 m_pEdit->SelectAll(); | 640 m_pEdit->SelectAll(); |
641 m_pEdit->ReplaceSel(m_pList->GetText().c_str()); | 641 m_pEdit->ReplaceSel(m_pList->GetText().c_str()); |
642 m_pEdit->SelectAll(); | 642 m_pEdit->SelectAll(); |
643 | 643 |
644 m_nSelectItem = m_pList->GetCurSel(); | 644 m_nSelectItem = m_pList->GetCurSel(); |
645 } | 645 } |
646 | 646 |
647 FX_BOOL CPWL_ComboBox::IsModified() const | 647 bool CPWL_ComboBox::IsModified() const |
648 { | 648 { |
649 return m_pEdit->IsModified(); | 649 return m_pEdit->IsModified(); |
650 } | 650 } |
651 | 651 |
652 void CPWL_ComboBox::SetFillerNotify(IPWL_Filler_Notify* pNotify) | 652 void CPWL_ComboBox::SetFillerNotify(IPWL_Filler_Notify* pNotify) |
653 { | 653 { |
654 m_pFillerNotify = pNotify; | 654 m_pFillerNotify = pNotify; |
655 | 655 |
656 if (m_pEdit) | 656 if (m_pEdit) |
657 m_pEdit->SetFillerNotify(pNotify); | 657 m_pEdit->SetFillerNotify(pNotify); |
658 | 658 |
659 if (m_pList) | 659 if (m_pList) |
660 m_pList->SetFillerNotify(pNotify); | 660 m_pList->SetFillerNotify(pNotify); |
661 } | 661 } |
662 | 662 |
OLD | NEW |