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

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

Issue 2530993002: Cleanup FWL Event and Message code. (Closed)
Patch Set: Review feedback Created 4 years 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
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/cfwl_datetimepicker.h" 7 #include "xfa/fwl/core/cfwl_datetimepicker.h"
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
11 11
12 #include "third_party/base/ptr_util.h" 12 #include "third_party/base/ptr_util.h"
13 #include "xfa/fwl/core/cfwl_evteditchanged.h" 13 #include "xfa/fwl/core/cfwl_event.h"
14 #include "xfa/fwl/core/cfwl_evtselectchanged.h" 14 #include "xfa/fwl/core/cfwl_evtselectchanged.h"
15 #include "xfa/fwl/core/cfwl_formproxy.h" 15 #include "xfa/fwl/core/cfwl_formproxy.h"
16 #include "xfa/fwl/core/cfwl_msgmouse.h" 16 #include "xfa/fwl/core/cfwl_msgmouse.h"
17 #include "xfa/fwl/core/cfwl_msgsetfocus.h" 17 #include "xfa/fwl/core/cfwl_msgsetfocus.h"
18 #include "xfa/fwl/core/cfwl_notedriver.h" 18 #include "xfa/fwl/core/cfwl_notedriver.h"
19 #include "xfa/fwl/core/cfwl_spinbutton.h" 19 #include "xfa/fwl/core/cfwl_spinbutton.h"
20 #include "xfa/fwl/core/cfwl_themebackground.h" 20 #include "xfa/fwl/core/cfwl_themebackground.h"
21 #include "xfa/fwl/core/cfwl_widgetmgr.h" 21 #include "xfa/fwl/core/cfwl_widgetmgr.h"
22 #include "xfa/fwl/core/ifwl_themeprovider.h" 22 #include "xfa/fwl/core/ifwl_themeprovider.h"
23 23
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 m_pMonthCal->SetSelect(iYear, iMonth, iDay); 185 m_pMonthCal->SetSelect(iYear, iMonth, iDay);
186 } 186 }
187 187
188 void CFWL_DateTimePicker::SetEditText(const CFX_WideString& wsText) { 188 void CFWL_DateTimePicker::SetEditText(const CFX_WideString& wsText) {
189 if (!m_pEdit) 189 if (!m_pEdit)
190 return; 190 return;
191 191
192 m_pEdit->SetText(wsText); 192 m_pEdit->SetText(wsText);
193 Repaint(&m_rtClient); 193 Repaint(&m_rtClient);
194 194
195 CFWL_EvtEditChanged ev; 195 CFWL_Event ev(CFWL_Event::Type::EditChanged);
196 DispatchEvent(&ev); 196 DispatchEvent(&ev);
197 } 197 }
198 198
199 CFX_WideString CFWL_DateTimePicker::GetEditText(int32_t nStart, 199 CFX_WideString CFWL_DateTimePicker::GetEditText(int32_t nStart,
200 int32_t nCount) const { 200 int32_t nCount) const {
201 return m_pEdit ? m_pEdit->GetText(nStart, nCount) : L""; 201 return m_pEdit ? m_pEdit->GetText(nStart, nCount) : L"";
202 } 202 }
203 203
204 void CFWL_DateTimePicker::GetBBox(CFX_RectF& rect) const { 204 void CFWL_DateTimePicker::GetBBox(CFX_RectF& rect) const {
205 if (m_pWidgetMgr->IsFormDisabled()) { 205 if (m_pWidgetMgr->IsFormDisabled()) {
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 m_iYear = iYear; 340 m_iYear = iYear;
341 m_iMonth = iMonth; 341 m_iMonth = iMonth;
342 m_iDay = iDay; 342 m_iDay = iDay;
343 343
344 CFX_WideString wsText; 344 CFX_WideString wsText;
345 FormatDateString(m_iYear, m_iMonth, m_iDay, wsText); 345 FormatDateString(m_iYear, m_iMonth, m_iDay, wsText);
346 m_pEdit->SetText(wsText); 346 m_pEdit->SetText(wsText);
347 m_pEdit->Update(); 347 m_pEdit->Update();
348 Repaint(&m_rtClient); 348 Repaint(&m_rtClient);
349 349
350 CFWL_EvtSelectChanged ev; 350 CFWL_EvtSelectChanged ev(this);
351 ev.m_pSrcTarget = this;
352 ev.iYear = m_iYear; 351 ev.iYear = m_iYear;
353 ev.iMonth = m_iMonth; 352 ev.iMonth = m_iMonth;
354 ev.iDay = m_iDay; 353 ev.iDay = m_iDay;
355 DispatchEvent(&ev); 354 DispatchEvent(&ev);
356 } 355 }
357 356
358 void CFWL_DateTimePicker::InitProxyForm() { 357 void CFWL_DateTimePicker::InitProxyForm() {
359 if (m_pForm) 358 if (m_pForm)
360 return; 359 return;
361 if (!m_pMonthCal) 360 if (!m_pMonthCal)
(...skipping 30 matching lines...) Expand all
392 rtMonthCal.top = rtAnchor.Height(); 391 rtMonthCal.top = rtAnchor.Height();
393 GetPopupPos(fPopupMin, fPopupMax, rtAnchor, rtMonthCal); 392 GetPopupPos(fPopupMin, fPopupMax, rtAnchor, rtMonthCal);
394 m_pMonthCal->SetWidgetRect(rtMonthCal); 393 m_pMonthCal->SetWidgetRect(rtMonthCal);
395 if (m_iYear > 0 && m_iMonth > 0 && m_iDay > 0) 394 if (m_iYear > 0 && m_iMonth > 0 && m_iDay > 0)
396 m_pMonthCal->SetSelect(m_iYear, m_iMonth, m_iDay); 395 m_pMonthCal->SetSelect(m_iYear, m_iMonth, m_iDay);
397 m_pMonthCal->Update(); 396 m_pMonthCal->Update();
398 } 397 }
399 m_pMonthCal->SetStates(FWL_WGTSTATE_Invisible, !bActivate); 398 m_pMonthCal->SetStates(FWL_WGTSTATE_Invisible, !bActivate);
400 399
401 if (bActivate) { 400 if (bActivate) {
402 CFWL_MsgSetFocus msg; 401 CFWL_MsgSetFocus msg(m_pEdit.get(), m_pMonthCal.get());
403 msg.m_pDstTarget = m_pMonthCal.get();
404 msg.m_pSrcTarget = m_pEdit.get();
405 m_pEdit->GetDelegate()->OnProcessMessage(&msg); 402 m_pEdit->GetDelegate()->OnProcessMessage(&msg);
406 } 403 }
407 404
408 CFX_RectF rtInvalidate, rtCal; 405 CFX_RectF rtInvalidate, rtCal;
409 rtInvalidate.Set(0, 0, m_pProperties->m_rtWidget.width, 406 rtInvalidate.Set(0, 0, m_pProperties->m_rtWidget.width,
410 m_pProperties->m_rtWidget.height); 407 m_pProperties->m_rtWidget.height);
411 m_pMonthCal->GetWidgetRect(rtCal); 408 m_pMonthCal->GetWidgetRect(rtCal);
412 rtInvalidate.Union(rtCal); 409 rtInvalidate.Union(rtCal);
413 rtInvalidate.Inflate(2, 2); 410 rtInvalidate.Inflate(2, 2);
414 Repaint(&rtInvalidate); 411 Repaint(&rtInvalidate);
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 mt.Set(1, 0, 0, 1, rtMonth.left, rtMonth.top); 510 mt.Set(1, 0, 0, 1, rtMonth.left, rtMonth.top);
514 if (pMatrix) 511 if (pMatrix)
515 mt.Concat(*pMatrix); 512 mt.Concat(*pMatrix);
516 m_pMonthCal->DrawWidget(pGraphics, &mt); 513 m_pMonthCal->DrawWidget(pGraphics, &mt);
517 } 514 }
518 515
519 void CFWL_DateTimePicker::OnProcessMessage(CFWL_Message* pMessage) { 516 void CFWL_DateTimePicker::OnProcessMessage(CFWL_Message* pMessage) {
520 if (!pMessage) 517 if (!pMessage)
521 return; 518 return;
522 519
523 switch (pMessage->GetClassID()) { 520 switch (pMessage->GetType()) {
524 case CFWL_MessageType::SetFocus: 521 case CFWL_Message::Type::SetFocus:
525 OnFocusChanged(pMessage, true); 522 OnFocusChanged(pMessage, true);
526 break; 523 break;
527 case CFWL_MessageType::KillFocus: 524 case CFWL_Message::Type::KillFocus:
528 OnFocusChanged(pMessage, false); 525 OnFocusChanged(pMessage, false);
529 break; 526 break;
530 case CFWL_MessageType::Mouse: { 527 case CFWL_Message::Type::Mouse: {
531 CFWL_MsgMouse* pMouse = static_cast<CFWL_MsgMouse*>(pMessage); 528 CFWL_MsgMouse* pMouse = static_cast<CFWL_MsgMouse*>(pMessage);
532 switch (pMouse->m_dwCmd) { 529 switch (pMouse->m_dwCmd) {
533 case FWL_MouseCommand::LeftButtonDown: 530 case FWL_MouseCommand::LeftButtonDown:
534 OnLButtonDown(pMouse); 531 OnLButtonDown(pMouse);
535 break; 532 break;
536 case FWL_MouseCommand::LeftButtonUp: 533 case FWL_MouseCommand::LeftButtonUp:
537 OnLButtonUp(pMouse); 534 OnLButtonUp(pMouse);
538 break; 535 break;
539 case FWL_MouseCommand::Move: 536 case FWL_MouseCommand::Move:
540 OnMouseMove(pMouse); 537 OnMouseMove(pMouse);
541 break; 538 break;
542 case FWL_MouseCommand::Leave: 539 case FWL_MouseCommand::Leave:
543 OnMouseLeave(pMouse); 540 OnMouseLeave(pMouse);
544 break; 541 break;
545 default: 542 default:
546 break; 543 break;
547 } 544 }
548 break; 545 break;
549 } 546 }
550 case CFWL_MessageType::Key: { 547 case CFWL_Message::Type::Key: {
551 if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) { 548 if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) {
552 m_pEdit->GetDelegate()->OnProcessMessage(pMessage); 549 m_pEdit->GetDelegate()->OnProcessMessage(pMessage);
553 return; 550 return;
554 } 551 }
555 break; 552 break;
556 } 553 }
557 default: 554 default:
558 break; 555 break;
559 } 556 }
560 557
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 if (DisForm_IsMonthCalendarVisible()) 644 if (DisForm_IsMonthCalendarVisible())
648 ShowMonthCalendar(false); 645 ShowMonthCalendar(false);
649 if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) { 646 if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) {
650 pMsg->m_pSrcTarget = m_pEdit.get(); 647 pMsg->m_pSrcTarget = m_pEdit.get();
651 m_pEdit->GetDelegate()->OnProcessMessage(pMsg); 648 m_pEdit->GetDelegate()->OnProcessMessage(pMsg);
652 } 649 }
653 } 650 }
654 rtInvalidate.Inflate(2, 2); 651 rtInvalidate.Inflate(2, 2);
655 Repaint(&rtInvalidate); 652 Repaint(&rtInvalidate);
656 } 653 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698