• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The PDFium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #include "xfa/fwl/cfwl_datetimeedit.h"
8 
9 #include "xfa/fwl/cfwl_datetimepicker.h"
10 #include "xfa/fwl/cfwl_messagemouse.h"
11 #include "xfa/fwl/cfwl_widgetmgr.h"
12 
13 namespace pdfium {
14 
CFWL_DateTimeEdit(CFWL_App * app,const Properties & properties,CFWL_Widget * pOuter)15 CFWL_DateTimeEdit::CFWL_DateTimeEdit(CFWL_App* app,
16                                      const Properties& properties,
17                                      CFWL_Widget* pOuter)
18     : CFWL_Edit(app, properties, pOuter) {}
19 
20 CFWL_DateTimeEdit::~CFWL_DateTimeEdit() = default;
21 
OnProcessMessage(CFWL_Message * pMessage)22 void CFWL_DateTimeEdit::OnProcessMessage(CFWL_Message* pMessage) {
23   if (pMessage->GetType() != CFWL_Message::Type::kMouse) {
24     CFWL_Edit::OnProcessMessage(pMessage);
25     return;
26   }
27 
28   CFWL_MessageMouse* pMouse = static_cast<CFWL_MessageMouse*>(pMessage);
29   if (pMouse->m_dwCmd == CFWL_MessageMouse::MouseCommand::kLeftButtonDown ||
30       pMouse->m_dwCmd == CFWL_MessageMouse::MouseCommand::kRightButtonDown) {
31     if ((m_Properties.m_dwStates & FWL_STATE_WGT_Focused) == 0)
32       m_Properties.m_dwStates |= FWL_STATE_WGT_Focused;
33 
34     CFWL_DateTimePicker* pDateTime =
35         static_cast<CFWL_DateTimePicker*>(GetOuter());
36     if (pDateTime->IsMonthCalendarVisible()) {
37       CFX_RectF rtInvalidate = pDateTime->GetWidgetRect();
38       pDateTime->HideMonthCalendar();
39       rtInvalidate.Offset(-rtInvalidate.left, -rtInvalidate.top);
40       pDateTime->RepaintRect(rtInvalidate);
41     }
42   }
43   CFWL_Edit::OnProcessMessage(pMessage);
44 }
45 
46 }  // namespace pdfium
47