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 "../../../foxitlib.h" | 7 #include "../../../foxitlib.h" |
8 #include "../core/include/fwl_targetimp.h" | 8 #include "../core/include/fwl_targetimp.h" |
9 #include "../core/include/fwl_noteimp.h" | 9 #include "../core/include/fwl_noteimp.h" |
10 #include "../core/include/fwl_widgetimp.h" | 10 #include "../core/include/fwl_widgetimp.h" |
11 #include "../core/include/fwl_panelimp.h" | 11 #include "../core/include/fwl_panelimp.h" |
12 #include "../core/include/fwl_formimp.h" | 12 #include "../core/include/fwl_formimp.h" |
13 #include "../core/include/fwl_widgetmgrimp.h" | 13 #include "../core/include/fwl_widgetmgrimp.h" |
14 #include "include/fwl_formproxyimp.h" | 14 #include "include/fwl_formproxyimp.h" |
15 #include "include/fwl_editimp.h" | 15 #include "include/fwl_editimp.h" |
16 #include "include/fwl_monthcalendarimp.h" | 16 #include "include/fwl_monthcalendarimp.h" |
17 #include "include/fwl_datetimepickerimp.h" | 17 #include "include/fwl_datetimepickerimp.h" |
18 #define FWL_DTP_WIDTH 100 | 18 #define FWL_DTP_WIDTH 100 |
19 #define FWL_DTP_HEIGHT 20 | 19 #define FWL_DTP_HEIGHT 20 |
20 IFWL_DateTimePicker* IFWL_DateTimePicker::Create() { | 20 IFWL_DateTimePicker* IFWL_DateTimePicker::Create() { |
21 return new IFWL_DateTimePicker; | 21 return new IFWL_DateTimePicker; |
22 } | 22 } |
23 FWL_ERR IFWL_DateTimeForm::Initialize( | 23 FWL_ERR IFWL_DateTimeForm::Initialize( |
24 const CFWL_WidgetImpProperties& properties, | 24 const CFWL_WidgetImpProperties& properties, |
25 IFWL_Widget* pOuter) { | 25 IFWL_Widget* pOuter) { |
26 m_pImpl = new CFWL_FormProxyImp(properties, pOuter); | 26 CFWL_FormProxyImp* pFormProxyImpl = new CFWL_FormProxyImp(properties, pOuter); |
27 ((CFWL_FormProxyImp*)m_pImpl)->SetInterface(this); | 27 SetImpl(pFormProxyImpl); |
28 return ((CFWL_FormProxyImp*)m_pImpl)->Initialize(); | 28 pFormProxyImpl->SetInterface(this); |
| 29 return pFormProxyImpl->Initialize(); |
29 } | 30 } |
30 FWL_ERR IFWL_DateTimeCalender::Initialize( | 31 FWL_ERR IFWL_DateTimeCalender::Initialize( |
31 const CFWL_WidgetImpProperties& properties, | 32 const CFWL_WidgetImpProperties& properties, |
32 IFWL_Widget* pOuter) { | 33 IFWL_Widget* pOuter) { |
33 m_pImpl = new CFWL_DateTimeCalendar(properties, pOuter); | 34 CFWL_DateTimeCalendar* pDateTimeCalendarImpl = |
34 ((CFWL_DateTimeCalendar*)m_pImpl)->SetInterface(this); | 35 new CFWL_DateTimeCalendar(properties, pOuter); |
35 return ((CFWL_DateTimeCalendar*)m_pImpl)->Initialize(); | 36 SetImpl(pDateTimeCalendarImpl); |
| 37 pDateTimeCalendarImpl->SetInterface(this); |
| 38 return pDateTimeCalendarImpl->Initialize(); |
36 } | 39 } |
37 FWL_ERR IFWL_DateTimeEdit::Initialize( | 40 FWL_ERR IFWL_DateTimeEdit::Initialize( |
38 const CFWL_WidgetImpProperties& properties, | 41 const CFWL_WidgetImpProperties& properties, |
39 IFWL_Widget* pOuter) { | 42 IFWL_Widget* pOuter) { |
40 m_pImpl = new CFWL_DateTimeEdit(properties, pOuter); | 43 CFWL_DateTimeEdit* pDateTimeEditImpl = |
41 ((CFWL_DateTimeEdit*)m_pImpl)->SetInterface(this); | 44 new CFWL_DateTimeEdit(properties, pOuter); |
42 return ((CFWL_DateTimeEdit*)m_pImpl)->Initialize(); | 45 SetImpl(pDateTimeEditImpl); |
| 46 pDateTimeEditImpl->SetInterface(this); |
| 47 return pDateTimeEditImpl->Initialize(); |
43 } | 48 } |
44 IFWL_DateTimePicker::IFWL_DateTimePicker() { | 49 IFWL_DateTimePicker::IFWL_DateTimePicker() { |
45 m_pImpl = NULL; | |
46 } | |
47 IFWL_DateTimePicker::~IFWL_DateTimePicker() { | |
48 if (m_pImpl) { | |
49 delete (CFWL_DateTimePickerImp*)m_pImpl; | |
50 m_pImpl = NULL; | |
51 } | |
52 } | 50 } |
53 FWL_ERR IFWL_DateTimePicker::Initialize(IFWL_Widget* pOuter) { | 51 FWL_ERR IFWL_DateTimePicker::Initialize(IFWL_Widget* pOuter) { |
54 m_pImpl = new CFWL_DateTimePickerImp(pOuter); | 52 CFWL_DateTimePickerImp* pDateTimePickerImpl = |
55 ((CFWL_DateTimePickerImp*)m_pImpl)->SetInterface(this); | 53 new CFWL_DateTimePickerImp(pOuter); |
56 return ((CFWL_DateTimePickerImp*)m_pImpl)->Initialize(); | 54 SetImpl(pDateTimePickerImpl); |
| 55 pDateTimePickerImpl->SetInterface(this); |
| 56 return pDateTimePickerImpl->Initialize(); |
57 } | 57 } |
58 FWL_ERR IFWL_DateTimePicker::Initialize( | 58 FWL_ERR IFWL_DateTimePicker::Initialize( |
59 const CFWL_WidgetImpProperties& properties, | 59 const CFWL_WidgetImpProperties& properties, |
60 IFWL_Widget* pOuter) { | 60 IFWL_Widget* pOuter) { |
61 m_pImpl = new CFWL_DateTimePickerImp(properties, pOuter); | 61 CFWL_DateTimePickerImp* pDateTimePickerImpl = |
62 ((CFWL_DateTimePickerImp*)m_pImpl)->SetInterface(this); | 62 new CFWL_DateTimePickerImp(properties, pOuter); |
63 return ((CFWL_DateTimePickerImp*)m_pImpl)->Initialize(); | 63 SetImpl(pDateTimePickerImpl); |
| 64 pDateTimePickerImpl->SetInterface(this); |
| 65 return pDateTimePickerImpl->Initialize(); |
64 } | 66 } |
65 int32_t IFWL_DateTimePicker::CountSelRanges() { | 67 int32_t IFWL_DateTimePicker::CountSelRanges() { |
66 return ((CFWL_DateTimePickerImp*)m_pImpl) | 68 return static_cast<CFWL_DateTimePickerImp*>(GetImpl()) |
67 ->GetDataTimeEdit() | 69 ->GetDataTimeEdit() |
68 ->CountSelRanges(); | 70 ->CountSelRanges(); |
69 } | 71 } |
70 int32_t IFWL_DateTimePicker::GetSelRange(int32_t nIndex, int32_t& nStart) { | 72 int32_t IFWL_DateTimePicker::GetSelRange(int32_t nIndex, int32_t& nStart) { |
71 return ((CFWL_DateTimePickerImp*)m_pImpl) | 73 return static_cast<CFWL_DateTimePickerImp*>(GetImpl()) |
72 ->GetDataTimeEdit() | 74 ->GetDataTimeEdit() |
73 ->GetSelRange(nIndex, nStart); | 75 ->GetSelRange(nIndex, nStart); |
74 } | 76 } |
75 FWL_ERR IFWL_DateTimePicker::GetCurSel(int32_t& iYear, | 77 FWL_ERR IFWL_DateTimePicker::GetCurSel(int32_t& iYear, |
76 int32_t& iMonth, | 78 int32_t& iMonth, |
77 int32_t& iDay) { | 79 int32_t& iDay) { |
78 return ((CFWL_DateTimePickerImp*)m_pImpl)->GetCurSel(iYear, iMonth, iDay); | 80 return static_cast<CFWL_DateTimePickerImp*>(GetImpl()) |
| 81 ->GetCurSel(iYear, iMonth, iDay); |
79 } | 82 } |
80 FWL_ERR IFWL_DateTimePicker::SetCurSel(int32_t iYear, | 83 FWL_ERR IFWL_DateTimePicker::SetCurSel(int32_t iYear, |
81 int32_t iMonth, | 84 int32_t iMonth, |
82 int32_t iDay) { | 85 int32_t iDay) { |
83 return ((CFWL_DateTimePickerImp*)m_pImpl)->SetCurSel(iYear, iMonth, iDay); | 86 return static_cast<CFWL_DateTimePickerImp*>(GetImpl()) |
| 87 ->SetCurSel(iYear, iMonth, iDay); |
84 } | 88 } |
85 FWL_ERR IFWL_DateTimePicker::SetEditText(const CFX_WideString& wsText) { | 89 FWL_ERR IFWL_DateTimePicker::SetEditText(const CFX_WideString& wsText) { |
86 return ((CFWL_DateTimePickerImp*)m_pImpl)->SetEditText(wsText); | 90 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->SetEditText(wsText); |
87 } | 91 } |
88 FWL_ERR IFWL_DateTimePicker::GetEditText(CFX_WideString& wsText, | 92 FWL_ERR IFWL_DateTimePicker::GetEditText(CFX_WideString& wsText, |
89 int32_t nStart, | 93 int32_t nStart, |
90 int32_t nCount) const { | 94 int32_t nCount) const { |
91 return ((CFWL_DateTimePickerImp*)m_pImpl) | 95 return static_cast<CFWL_DateTimePickerImp*>(GetImpl()) |
92 ->GetEditText(wsText, nStart, nCount); | 96 ->GetEditText(wsText, nStart, nCount); |
93 } | 97 } |
94 FX_BOOL IFWL_DateTimePicker::CanUndo() { | 98 FX_BOOL IFWL_DateTimePicker::CanUndo() { |
95 return ((CFWL_DateTimePickerImp*)m_pImpl)->CanUndo(); | 99 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->CanUndo(); |
96 } | 100 } |
97 FX_BOOL IFWL_DateTimePicker::CanRedo() { | 101 FX_BOOL IFWL_DateTimePicker::CanRedo() { |
98 return ((CFWL_DateTimePickerImp*)m_pImpl)->CanRedo(); | 102 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->CanRedo(); |
99 } | 103 } |
100 FX_BOOL IFWL_DateTimePicker::Undo() { | 104 FX_BOOL IFWL_DateTimePicker::Undo() { |
101 return ((CFWL_DateTimePickerImp*)m_pImpl)->Undo(); | 105 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->Undo(); |
102 } | 106 } |
103 FX_BOOL IFWL_DateTimePicker::Redo() { | 107 FX_BOOL IFWL_DateTimePicker::Redo() { |
104 return ((CFWL_DateTimePickerImp*)m_pImpl)->Redo(); | 108 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->Redo(); |
105 } | 109 } |
106 FX_BOOL IFWL_DateTimePicker::CanCopy() { | 110 FX_BOOL IFWL_DateTimePicker::CanCopy() { |
107 return ((CFWL_DateTimePickerImp*)m_pImpl)->CanCopy(); | 111 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->CanCopy(); |
108 } | 112 } |
109 FX_BOOL IFWL_DateTimePicker::CanCut() { | 113 FX_BOOL IFWL_DateTimePicker::CanCut() { |
110 return ((CFWL_DateTimePickerImp*)m_pImpl)->CanCut(); | 114 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->CanCut(); |
111 } | 115 } |
112 FX_BOOL IFWL_DateTimePicker::CanSelectAll() { | 116 FX_BOOL IFWL_DateTimePicker::CanSelectAll() { |
113 return ((CFWL_DateTimePickerImp*)m_pImpl)->CanSelectAll(); | 117 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->CanSelectAll(); |
114 } | 118 } |
115 FX_BOOL IFWL_DateTimePicker::Copy(CFX_WideString& wsCopy) { | 119 FX_BOOL IFWL_DateTimePicker::Copy(CFX_WideString& wsCopy) { |
116 return ((CFWL_DateTimePickerImp*)m_pImpl)->Copy(wsCopy); | 120 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->Copy(wsCopy); |
117 } | 121 } |
118 FX_BOOL IFWL_DateTimePicker::Cut(CFX_WideString& wsCut) { | 122 FX_BOOL IFWL_DateTimePicker::Cut(CFX_WideString& wsCut) { |
119 return ((CFWL_DateTimePickerImp*)m_pImpl)->Cut(wsCut); | 123 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->Cut(wsCut); |
120 } | 124 } |
121 FX_BOOL IFWL_DateTimePicker::Paste(const CFX_WideString& wsPaste) { | 125 FX_BOOL IFWL_DateTimePicker::Paste(const CFX_WideString& wsPaste) { |
122 return ((CFWL_DateTimePickerImp*)m_pImpl)->Paste(wsPaste); | 126 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->Paste(wsPaste); |
123 } | 127 } |
124 FX_BOOL IFWL_DateTimePicker::SelectAll() { | 128 FX_BOOL IFWL_DateTimePicker::SelectAll() { |
125 return ((CFWL_DateTimePickerImp*)m_pImpl)->SelectAll(); | 129 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->SelectAll(); |
126 } | 130 } |
127 FX_BOOL IFWL_DateTimePicker::Delete() { | 131 FX_BOOL IFWL_DateTimePicker::Delete() { |
128 return ((CFWL_DateTimePickerImp*)m_pImpl)->Delete(); | 132 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->Delete(); |
129 } | 133 } |
130 FX_BOOL IFWL_DateTimePicker::DeSelect() { | 134 FX_BOOL IFWL_DateTimePicker::DeSelect() { |
131 return ((CFWL_DateTimePickerImp*)m_pImpl)->DeSelect(); | 135 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->DeSelect(); |
132 } | 136 } |
133 FWL_ERR IFWL_DateTimePicker::GetBBox(CFX_RectF& rect) { | 137 FWL_ERR IFWL_DateTimePicker::GetBBox(CFX_RectF& rect) { |
134 return ((CFWL_DateTimePickerImp*)m_pImpl)->GetBBox(rect); | 138 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->GetBBox(rect); |
135 } | 139 } |
136 FWL_ERR IFWL_DateTimePicker::SetEditLimit(int32_t nLimit) { | 140 FWL_ERR IFWL_DateTimePicker::SetEditLimit(int32_t nLimit) { |
137 return ((CFWL_DateTimePickerImp*)m_pImpl)->SetEditLimit(nLimit); | 141 return static_cast<CFWL_DateTimePickerImp*>(GetImpl())->SetEditLimit(nLimit); |
138 } | 142 } |
139 FWL_ERR IFWL_DateTimePicker::ModifyEditStylesEx(FX_DWORD dwStylesExAdded, | 143 FWL_ERR IFWL_DateTimePicker::ModifyEditStylesEx(FX_DWORD dwStylesExAdded, |
140 FX_DWORD dwStylesExRemoved) { | 144 FX_DWORD dwStylesExRemoved) { |
141 return ((CFWL_DateTimePickerImp*)m_pImpl) | 145 return static_cast<CFWL_DateTimePickerImp*>(GetImpl()) |
142 ->ModifyEditStylesEx(dwStylesExAdded, dwStylesExRemoved); | 146 ->ModifyEditStylesEx(dwStylesExAdded, dwStylesExRemoved); |
143 } | 147 } |
144 CFWL_DateTimeEdit::CFWL_DateTimeEdit(const CFWL_WidgetImpProperties& properties, | 148 CFWL_DateTimeEdit::CFWL_DateTimeEdit(const CFWL_WidgetImpProperties& properties, |
145 IFWL_Widget* pOuter) | 149 IFWL_Widget* pOuter) |
146 : CFWL_EditImp(properties, pOuter) {} | 150 : CFWL_EditImp(properties, pOuter) {} |
147 FWL_ERR CFWL_DateTimeEdit::Initialize() { | 151 FWL_ERR CFWL_DateTimeEdit::Initialize() { |
148 m_pDelegate = (IFWL_WidgetDelegate*)new CFWL_DateTimeEditImpDelegate(this); | 152 m_pDelegate = (IFWL_WidgetDelegate*)new CFWL_DateTimeEditImpDelegate(this); |
149 _FWL_ERR_CHECK_RETURN_VALUE_IF_FAIL(CFWL_EditImp::Initialize(), | 153 _FWL_ERR_CHECK_RETURN_VALUE_IF_FAIL(CFWL_EditImp::Initialize(), |
150 FWL_ERR_Indefinite); | 154 FWL_ERR_Indefinite); |
151 return FWL_ERR_Succeeded; | 155 return FWL_ERR_Succeeded; |
(...skipping 1008 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1160 } | 1164 } |
1161 if (m_pOwner->m_pEdit->GetStates() & FWL_WGTSTATE_Focused) { | 1165 if (m_pOwner->m_pEdit->GetStates() & FWL_WGTSTATE_Focused) { |
1162 pMsg->m_pSrcTarget = m_pOwner->m_pEdit; | 1166 pMsg->m_pSrcTarget = m_pOwner->m_pEdit; |
1163 IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pEdit->SetDelegate(NULL); | 1167 IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pEdit->SetDelegate(NULL); |
1164 pDelegate->OnProcessMessage(pMsg); | 1168 pDelegate->OnProcessMessage(pMsg); |
1165 } | 1169 } |
1166 } | 1170 } |
1167 rtInvalidate.Inflate(2, 2); | 1171 rtInvalidate.Inflate(2, 2); |
1168 m_pOwner->Repaint(&rtInvalidate); | 1172 m_pOwner->Repaint(&rtInvalidate); |
1169 } | 1173 } |
OLD | NEW |