OLD | NEW |
| (Empty) |
1 // Copyright 2014 PDFium Authors. All rights reserved. | |
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/include/fwl/lightwidget/edit.h" | |
8 | |
9 #include <memory> | |
10 #include <vector> | |
11 | |
12 #include "xfa/include/fwl/basewidget/fwl_edit.h" | |
13 | |
14 CFWL_Edit* CFWL_Edit::Create() { | |
15 return new CFWL_Edit; | |
16 } | |
17 FWL_ERR CFWL_Edit::Initialize(const CFWL_WidgetProperties* pProperties) { | |
18 if (m_pIface) | |
19 return FWL_ERR_Indefinite; | |
20 if (pProperties) { | |
21 *m_pProperties = *pProperties; | |
22 } | |
23 std::unique_ptr<IFWL_Edit> pEdit(IFWL_Edit::Create( | |
24 m_pProperties->MakeWidgetImpProperties(nullptr), nullptr)); | |
25 FWL_ERR ret = pEdit->Initialize(); | |
26 if (ret != FWL_ERR_Succeeded) { | |
27 return ret; | |
28 } | |
29 m_pIface = pEdit.release(); | |
30 CFWL_Widget::Initialize(); | |
31 return FWL_ERR_Succeeded; | |
32 } | |
33 FWL_ERR CFWL_Edit::SetText(const CFX_WideString& wsText) { | |
34 if (!m_pIface) | |
35 return FWL_ERR_Indefinite; | |
36 return static_cast<IFWL_Edit*>(m_pIface)->SetText(wsText); | |
37 } | |
38 int32_t CFWL_Edit::GetTextLength() const { | |
39 if (!m_pIface) | |
40 return 0; | |
41 return static_cast<IFWL_Edit*>(m_pIface)->GetTextLength(); | |
42 } | |
43 FWL_ERR CFWL_Edit::GetText(CFX_WideString& wsText, | |
44 int32_t nStart, | |
45 int32_t nCount) const { | |
46 if (!m_pIface) | |
47 return FWL_ERR_Indefinite; | |
48 return static_cast<IFWL_Edit*>(m_pIface)->GetText(wsText, nStart, nCount); | |
49 } | |
50 FWL_ERR CFWL_Edit::ClearText() { | |
51 if (!m_pIface) | |
52 return FWL_ERR_Indefinite; | |
53 return static_cast<IFWL_Edit*>(m_pIface)->ClearText(); | |
54 } | |
55 int32_t CFWL_Edit::GetCaretPos() const { | |
56 if (!m_pIface) | |
57 return -1; | |
58 return static_cast<IFWL_Edit*>(m_pIface)->GetCaretPos(); | |
59 } | |
60 int32_t CFWL_Edit::SetCaretPos(int32_t nIndex, FX_BOOL bBefore) { | |
61 if (!m_pIface) | |
62 return -1; | |
63 return static_cast<IFWL_Edit*>(m_pIface)->SetCaretPos(nIndex, bBefore); | |
64 } | |
65 FWL_ERR CFWL_Edit::AddSelRange(int32_t nStart, int32_t nCount) { | |
66 if (!m_pIface) | |
67 return FWL_ERR_Indefinite; | |
68 static_cast<IFWL_Edit*>(m_pIface)->AddSelRange(nStart, nCount); | |
69 int32_t pos = 0; | |
70 int32_t sum = static_cast<IFWL_Edit*>(m_pIface)->GetTextLength(); | |
71 if (nCount == -1) { | |
72 pos = sum; | |
73 } else { | |
74 pos = nStart + nCount; | |
75 } | |
76 return static_cast<IFWL_Edit*>(m_pIface)->SetCaretPos(pos); | |
77 } | |
78 int32_t CFWL_Edit::CountSelRanges() { | |
79 if (!m_pIface) | |
80 return 0; | |
81 return static_cast<IFWL_Edit*>(m_pIface)->CountSelRanges(); | |
82 } | |
83 int32_t CFWL_Edit::GetSelRange(int32_t nIndex, int32_t& nStart) { | |
84 if (!m_pIface) | |
85 return 0; | |
86 return static_cast<IFWL_Edit*>(m_pIface)->GetSelRange(nIndex, nStart); | |
87 } | |
88 FWL_ERR CFWL_Edit::ClearSelections() { | |
89 if (!m_pIface) | |
90 return FWL_ERR_Indefinite; | |
91 return static_cast<IFWL_Edit*>(m_pIface)->ClearSelections(); | |
92 } | |
93 int32_t CFWL_Edit::GetLimit() { | |
94 if (!m_pIface) | |
95 return -1; | |
96 return static_cast<IFWL_Edit*>(m_pIface)->GetLimit(); | |
97 } | |
98 FWL_ERR CFWL_Edit::SetLimit(int32_t nLimit) { | |
99 if (!m_pIface) | |
100 return FWL_ERR_Indefinite; | |
101 return static_cast<IFWL_Edit*>(m_pIface)->SetLimit(nLimit); | |
102 } | |
103 FWL_ERR CFWL_Edit::SetAliasChar(FX_WCHAR wAlias) { | |
104 if (!m_pIface) | |
105 return FWL_ERR_Indefinite; | |
106 return static_cast<IFWL_Edit*>(m_pIface)->SetAliasChar(wAlias); | |
107 } | |
108 FWL_ERR CFWL_Edit::Insert(int32_t nStart, | |
109 const FX_WCHAR* lpText, | |
110 int32_t nLen) { | |
111 if (!m_pIface) | |
112 return FWL_ERR_Indefinite; | |
113 return static_cast<IFWL_Edit*>(m_pIface)->Insert(nStart, lpText, nLen); | |
114 } | |
115 FWL_ERR CFWL_Edit::DeleteSelections() { | |
116 if (!m_pIface) | |
117 return FWL_ERR_Indefinite; | |
118 return static_cast<IFWL_Edit*>(m_pIface)->DeleteSelections(); | |
119 } | |
120 FWL_ERR CFWL_Edit::DeleteRange(int32_t nStart, int32_t nCount) { | |
121 if (!m_pIface) | |
122 return FWL_ERR_Indefinite; | |
123 return static_cast<IFWL_Edit*>(m_pIface)->DeleteRange(nStart, nCount); | |
124 } | |
125 FWL_ERR CFWL_Edit::ReplaceSelections(const CFX_WideStringC& wsReplace) { | |
126 if (!m_pIface) | |
127 return FWL_ERR_Indefinite; | |
128 return static_cast<IFWL_Edit*>(m_pIface)->ReplaceSelections(wsReplace); | |
129 } | |
130 FWL_ERR CFWL_Edit::Replace(int32_t nStart, | |
131 int32_t nLen, | |
132 const CFX_WideStringC& wsReplace) { | |
133 if (!m_pIface) | |
134 return FWL_ERR_Indefinite; | |
135 return static_cast<IFWL_Edit*>(m_pIface)->Replace(nStart, nLen, wsReplace); | |
136 } | |
137 FWL_ERR CFWL_Edit::DoClipboard(int32_t iCmd) { | |
138 if (!m_pIface) | |
139 return FWL_ERR_Indefinite; | |
140 return static_cast<IFWL_Edit*>(m_pIface)->DoClipboard(iCmd); | |
141 } | |
142 FX_BOOL CFWL_Edit::Redo(const CFX_ByteStringC& bsRecord) { | |
143 if (!m_pIface) | |
144 return FALSE; | |
145 return static_cast<IFWL_Edit*>(m_pIface)->Redo(bsRecord); | |
146 } | |
147 FX_BOOL CFWL_Edit::Undo(const CFX_ByteStringC& bsRecord) { | |
148 if (!m_pIface) | |
149 return FALSE; | |
150 return static_cast<IFWL_Edit*>(m_pIface)->Undo(bsRecord); | |
151 } | |
152 FWL_ERR CFWL_Edit::SetTabWidth(FX_FLOAT fTabWidth, FX_BOOL bEquidistant) { | |
153 if (!m_pIface) | |
154 return FWL_ERR_Indefinite; | |
155 return static_cast<IFWL_Edit*>(m_pIface) | |
156 ->SetTabWidth(fTabWidth, bEquidistant); | |
157 } | |
158 FWL_ERR CFWL_Edit::SetNumberRange(int32_t iMin, int32_t iMax) { | |
159 if (iMin > iMax) { | |
160 return FWL_ERR_Parameter_Invalid; | |
161 } | |
162 return static_cast<IFWL_Edit*>(m_pIface)->SetNumberRange(iMin, iMax); | |
163 } | |
164 FWL_ERR CFWL_Edit::SetBackColor(FX_DWORD dwColor) { | |
165 if (!m_pIface) | |
166 return FWL_ERR_Indefinite; | |
167 return static_cast<IFWL_Edit*>(m_pIface)->SetBackColor(dwColor); | |
168 } | |
169 FWL_ERR CFWL_Edit::SetFont(const CFX_WideString& wsFont, FX_FLOAT fSize) { | |
170 if (!m_pIface) | |
171 return FWL_ERR_Indefinite; | |
172 return static_cast<IFWL_Edit*>(m_pIface)->SetFont(wsFont, fSize); | |
173 } | |
174 FX_BOOL CFWL_Edit::CanUndo() { | |
175 return static_cast<IFWL_Edit*>(m_pIface)->CanUndo(); | |
176 } | |
177 FX_BOOL CFWL_Edit::CanRedo() { | |
178 return static_cast<IFWL_Edit*>(m_pIface)->CanRedo(); | |
179 } | |
180 FX_BOOL CFWL_Edit::Undo() { | |
181 return static_cast<IFWL_Edit*>(m_pIface)->Undo(); | |
182 } | |
183 FX_BOOL CFWL_Edit::Redo() { | |
184 return static_cast<IFWL_Edit*>(m_pIface)->Undo(); | |
185 } | |
186 FX_BOOL CFWL_Edit::Copy(CFX_WideString& wsCopy) { | |
187 return static_cast<IFWL_Edit*>(m_pIface)->Copy(wsCopy); | |
188 } | |
189 FX_BOOL CFWL_Edit::Cut(CFX_WideString& wsCut) { | |
190 return static_cast<IFWL_Edit*>(m_pIface)->Cut(wsCut); | |
191 } | |
192 FX_BOOL CFWL_Edit::Paste(const CFX_WideString& wsPaste) { | |
193 return static_cast<IFWL_Edit*>(m_pIface)->Paste(wsPaste); | |
194 } | |
195 FX_BOOL CFWL_Edit::Delete() { | |
196 return static_cast<IFWL_Edit*>(m_pIface)->Delete(); | |
197 } | |
198 void CFWL_Edit::SetScrollOffset(FX_FLOAT fScrollOffset) { | |
199 return static_cast<IFWL_Edit*>(m_pIface)->SetScrollOffset(fScrollOffset); | |
200 } | |
201 FX_BOOL CFWL_Edit::GetSuggestWords(CFX_PointF pointf, | |
202 std::vector<CFX_ByteString>& sSuggest) { | |
203 return static_cast<IFWL_Edit*>(m_pIface)->GetSuggestWords(pointf, sSuggest); | |
204 } | |
205 FX_BOOL CFWL_Edit::ReplaceSpellCheckWord(CFX_PointF pointf, | |
206 const CFX_ByteStringC& bsReplace) { | |
207 return static_cast<IFWL_Edit*>(m_pIface) | |
208 ->ReplaceSpellCheckWord(pointf, bsReplace); | |
209 } | |
210 CFWL_Edit::CFWL_Edit() {} | |
211 CFWL_Edit::~CFWL_Edit() {} | |
OLD | NEW |