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 "xfa/fxfa/app/xfa_ffcheckbutton.h" | 7 #include "xfa/fxfa/app/xfa_ffcheckbutton.h" |
8 | 8 |
9 #include "xfa/fwl/core/cfwl_message.h" | 9 #include "xfa/fwl/core/cfwl_message.h" |
10 #include "xfa/fwl/core/ifwl_notedriver.h" | 10 #include "xfa/fwl/core/ifwl_notedriver.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 m_pNormalWidget->UnlockUpdate(); | 45 m_pNormalWidget->UnlockUpdate(); |
46 return CXFA_FFField::LoadWidget(); | 46 return CXFA_FFField::LoadWidget(); |
47 } | 47 } |
48 void CXFA_FFCheckButton::UpdateWidgetProperty() { | 48 void CXFA_FFCheckButton::UpdateWidgetProperty() { |
49 CFWL_CheckBox* pCheckBox = (CFWL_CheckBox*)m_pNormalWidget; | 49 CFWL_CheckBox* pCheckBox = (CFWL_CheckBox*)m_pNormalWidget; |
50 if (!m_pNormalWidget) { | 50 if (!m_pNormalWidget) { |
51 return; | 51 return; |
52 } | 52 } |
53 FX_FLOAT fSize = m_pDataAcc->GetCheckButtonSize(); | 53 FX_FLOAT fSize = m_pDataAcc->GetCheckButtonSize(); |
54 pCheckBox->SetBoxSize(fSize); | 54 pCheckBox->SetBoxSize(fSize); |
55 FX_DWORD dwStyleEx = FWL_STYLEEXT_CKB_SignShapeCross; | 55 uint32_t dwStyleEx = FWL_STYLEEXT_CKB_SignShapeCross; |
56 int32_t iCheckMark = m_pDataAcc->GetCheckButtonMark(); | 56 int32_t iCheckMark = m_pDataAcc->GetCheckButtonMark(); |
57 switch (iCheckMark) { | 57 switch (iCheckMark) { |
58 case XFA_ATTRIBUTEENUM_Check: | 58 case XFA_ATTRIBUTEENUM_Check: |
59 dwStyleEx = FWL_STYLEEXT_CKB_SignShapeCheck; | 59 dwStyleEx = FWL_STYLEEXT_CKB_SignShapeCheck; |
60 break; | 60 break; |
61 case XFA_ATTRIBUTEENUM_Circle: | 61 case XFA_ATTRIBUTEENUM_Circle: |
62 dwStyleEx = FWL_STYLEEXT_CKB_SignShapeCircle; | 62 dwStyleEx = FWL_STYLEEXT_CKB_SignShapeCircle; |
63 break; | 63 break; |
64 case XFA_ATTRIBUTEENUM_Cross: | 64 case XFA_ATTRIBUTEENUM_Cross: |
65 break; | 65 break; |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 if (m_rtUI.height < fTopAddBottom) { | 207 if (m_rtUI.height < fTopAddBottom) { |
208 if (iCapPlacement == XFA_ATTRIBUTEENUM_Right) { | 208 if (iCapPlacement == XFA_ATTRIBUTEENUM_Right) { |
209 m_rtUI.left -= fTopAddBottom - m_rtUI.height; | 209 m_rtUI.left -= fTopAddBottom - m_rtUI.height; |
210 } | 210 } |
211 m_rtUI.top -= fTopAddBottom - m_rtUI.height; | 211 m_rtUI.top -= fTopAddBottom - m_rtUI.height; |
212 m_rtUI.height += 2 * (fTopAddBottom - m_rtUI.height); | 212 m_rtUI.height += 2 * (fTopAddBottom - m_rtUI.height); |
213 } | 213 } |
214 } | 214 } |
215 void CXFA_FFCheckButton::RenderWidget(CFX_Graphics* pGS, | 215 void CXFA_FFCheckButton::RenderWidget(CFX_Graphics* pGS, |
216 CFX_Matrix* pMatrix, | 216 CFX_Matrix* pMatrix, |
217 FX_DWORD dwStatus, | 217 uint32_t dwStatus, |
218 int32_t iRotate) { | 218 int32_t iRotate) { |
219 if (!IsMatchVisibleStatus(dwStatus)) { | 219 if (!IsMatchVisibleStatus(dwStatus)) { |
220 return; | 220 return; |
221 } | 221 } |
222 CFX_Matrix mtRotate; | 222 CFX_Matrix mtRotate; |
223 GetRotateMatrix(mtRotate); | 223 GetRotateMatrix(mtRotate); |
224 if (pMatrix) { | 224 if (pMatrix) { |
225 mtRotate.Concat(*pMatrix); | 225 mtRotate.Concat(*pMatrix); |
226 } | 226 } |
227 CXFA_FFWidget::RenderWidget(pGS, &mtRotate, dwStatus); | 227 CXFA_FFWidget::RenderWidget(pGS, &mtRotate, dwStatus); |
228 CXFA_Border borderUI = m_pDataAcc->GetUIBorder(); | 228 CXFA_Border borderUI = m_pDataAcc->GetUIBorder(); |
229 DrawBorder(pGS, borderUI, m_rtUI, &mtRotate, | 229 DrawBorder(pGS, borderUI, m_rtUI, &mtRotate, |
230 m_pDataAcc->GetCheckButtonShape() == XFA_ATTRIBUTEENUM_Round | 230 m_pDataAcc->GetCheckButtonShape() == XFA_ATTRIBUTEENUM_Round |
231 ? XFA_DRAWBOX_ForceRound | 231 ? XFA_DRAWBOX_ForceRound |
232 : 0); | 232 : 0); |
233 RenderCaption(pGS, &mtRotate); | 233 RenderCaption(pGS, &mtRotate); |
234 DrawHighlight(pGS, &mtRotate, dwStatus, | 234 DrawHighlight(pGS, &mtRotate, dwStatus, |
235 m_pDataAcc->GetCheckButtonShape() == XFA_ATTRIBUTEENUM_Round); | 235 m_pDataAcc->GetCheckButtonShape() == XFA_ATTRIBUTEENUM_Round); |
236 CFX_Matrix mt; | 236 CFX_Matrix mt; |
237 mt.Set(1, 0, 0, 1, m_rtCheckBox.left, m_rtCheckBox.top); | 237 mt.Set(1, 0, 0, 1, m_rtCheckBox.left, m_rtCheckBox.top); |
238 mt.Concat(mtRotate); | 238 mt.Concat(mtRotate); |
239 GetApp()->GetWidgetMgrDelegate()->OnDrawWidget(m_pNormalWidget->GetWidget(), | 239 GetApp()->GetWidgetMgrDelegate()->OnDrawWidget(m_pNormalWidget->GetWidget(), |
240 pGS, &mt); | 240 pGS, &mt); |
241 } | 241 } |
242 FX_BOOL CXFA_FFCheckButton::OnLButtonUp(FX_DWORD dwFlags, | 242 FX_BOOL CXFA_FFCheckButton::OnLButtonUp(uint32_t dwFlags, |
243 FX_FLOAT fx, | 243 FX_FLOAT fx, |
244 FX_FLOAT fy) { | 244 FX_FLOAT fy) { |
245 if (!m_pNormalWidget) { | 245 if (!m_pNormalWidget) { |
246 return FALSE; | 246 return FALSE; |
247 } | 247 } |
248 if (!IsButtonDown()) { | 248 if (!IsButtonDown()) { |
249 return FALSE; | 249 return FALSE; |
250 } | 250 } |
251 SetButtonDown(FALSE); | 251 SetButtonDown(FALSE); |
252 CFWL_MsgMouse ms; | 252 CFWL_MsgMouse ms; |
253 ms.m_dwCmd = FWL_MSGMOUSECMD_LButtonUp; | 253 ms.m_dwCmd = FWL_MSGMOUSECMD_LButtonUp; |
254 ms.m_dwFlags = dwFlags; | 254 ms.m_dwFlags = dwFlags; |
255 ms.m_fx = fx; | 255 ms.m_fx = fx; |
256 ms.m_fy = fy; | 256 ms.m_fy = fy; |
257 FWLToClient(ms.m_fx, ms.m_fy); | 257 FWLToClient(ms.m_fx, ms.m_fy); |
258 ms.m_pDstTarget = m_pNormalWidget->m_pIface; | 258 ms.m_pDstTarget = m_pNormalWidget->m_pIface; |
259 TranslateFWLMessage(&ms); | 259 TranslateFWLMessage(&ms); |
260 return TRUE; | 260 return TRUE; |
261 } | 261 } |
262 XFA_CHECKSTATE CXFA_FFCheckButton::FWLState2XFAState() { | 262 XFA_CHECKSTATE CXFA_FFCheckButton::FWLState2XFAState() { |
263 XFA_CHECKSTATE eCheckState = XFA_CHECKSTATE_Off; | 263 XFA_CHECKSTATE eCheckState = XFA_CHECKSTATE_Off; |
264 FX_DWORD dwState = m_pNormalWidget->GetStates(); | 264 uint32_t dwState = m_pNormalWidget->GetStates(); |
265 if (dwState & FWL_STATE_CKB_Checked) { | 265 if (dwState & FWL_STATE_CKB_Checked) { |
266 eCheckState = XFA_CHECKSTATE_On; | 266 eCheckState = XFA_CHECKSTATE_On; |
267 } else if (dwState & FWL_STATE_CKB_Neutral) { | 267 } else if (dwState & FWL_STATE_CKB_Neutral) { |
268 eCheckState = XFA_CHECKSTATE_Neutral; | 268 eCheckState = XFA_CHECKSTATE_Neutral; |
269 } | 269 } |
270 return eCheckState; | 270 return eCheckState; |
271 } | 271 } |
272 FX_BOOL CXFA_FFCheckButton::CommitData() { | 272 FX_BOOL CXFA_FFCheckButton::CommitData() { |
273 XFA_CHECKSTATE eCheckState = FWLState2XFAState(); | 273 XFA_CHECKSTATE eCheckState = FWLState2XFAState(); |
274 m_pDataAcc->SetCheckState(eCheckState, TRUE); | 274 m_pDataAcc->SetCheckState(eCheckState, TRUE); |
(...skipping 18 matching lines...) Expand all Loading... |
293 XFA_CHECKSTATE eState = m_pDataAcc->GetCheckState(); | 293 XFA_CHECKSTATE eState = m_pDataAcc->GetCheckState(); |
294 SetFWLCheckState(eState); | 294 SetFWLCheckState(eState); |
295 m_pNormalWidget->Update(); | 295 m_pNormalWidget->Update(); |
296 return TRUE; | 296 return TRUE; |
297 } | 297 } |
298 int32_t CXFA_FFCheckButton::OnProcessMessage(CFWL_Message* pMessage) { | 298 int32_t CXFA_FFCheckButton::OnProcessMessage(CFWL_Message* pMessage) { |
299 return m_pOldDelegate->OnProcessMessage(pMessage); | 299 return m_pOldDelegate->OnProcessMessage(pMessage); |
300 } | 300 } |
301 FWL_ERR CXFA_FFCheckButton::OnProcessEvent(CFWL_Event* pEvent) { | 301 FWL_ERR CXFA_FFCheckButton::OnProcessEvent(CFWL_Event* pEvent) { |
302 CXFA_FFField::OnProcessEvent(pEvent); | 302 CXFA_FFField::OnProcessEvent(pEvent); |
303 FX_DWORD dwEventID = pEvent->GetClassID(); | 303 uint32_t dwEventID = pEvent->GetClassID(); |
304 switch (dwEventID) { | 304 switch (dwEventID) { |
305 case FWL_EVTHASH_CKB_CheckStateChanged: { | 305 case FWL_EVTHASH_CKB_CheckStateChanged: { |
306 CXFA_EventParam eParam; | 306 CXFA_EventParam eParam; |
307 eParam.m_eType = XFA_EVENT_Change; | 307 eParam.m_eType = XFA_EVENT_Change; |
308 m_pDataAcc->GetValue(eParam.m_wsNewText, XFA_VALUEPICTURE_Raw); | 308 m_pDataAcc->GetValue(eParam.m_wsNewText, XFA_VALUEPICTURE_Raw); |
309 CXFA_WidgetAcc* pFFExclGroup = m_pDataAcc->GetExclGroup(); | 309 CXFA_WidgetAcc* pFFExclGroup = m_pDataAcc->GetExclGroup(); |
310 if (ProcessCommittedData()) { | 310 if (ProcessCommittedData()) { |
311 eParam.m_pTarget = pFFExclGroup; | 311 eParam.m_pTarget = pFFExclGroup; |
312 if (pFFExclGroup) { | 312 if (pFFExclGroup) { |
313 m_pDocView->AddValidateWidget(pFFExclGroup); | 313 m_pDocView->AddValidateWidget(pFFExclGroup); |
(...skipping 14 matching lines...) Expand all Loading... |
328 break; | 328 break; |
329 } | 329 } |
330 default: {} | 330 default: {} |
331 } | 331 } |
332 return m_pOldDelegate->OnProcessEvent(pEvent); | 332 return m_pOldDelegate->OnProcessEvent(pEvent); |
333 } | 333 } |
334 FWL_ERR CXFA_FFCheckButton::OnDrawWidget(CFX_Graphics* pGraphics, | 334 FWL_ERR CXFA_FFCheckButton::OnDrawWidget(CFX_Graphics* pGraphics, |
335 const CFX_Matrix* pMatrix) { | 335 const CFX_Matrix* pMatrix) { |
336 return m_pOldDelegate->OnDrawWidget(pGraphics, pMatrix); | 336 return m_pOldDelegate->OnDrawWidget(pGraphics, pMatrix); |
337 } | 337 } |
OLD | NEW |