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

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

Issue 2436103002: Remove FWL globals. (Closed)
Patch Set: Review feedback Created 4 years, 1 month 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
« no previous file with comments | « xfa/fwl/core/ifwl_checkbox.h ('k') | xfa/fwl/core/ifwl_combobox.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/ifwl_checkbox.h" 7 #include "xfa/fwl/core/ifwl_checkbox.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
11 #include "xfa/fde/tto/fde_textout.h" 11 #include "xfa/fde/tto/fde_textout.h"
12 #include "xfa/fwl/core/cfwl_message.h" 12 #include "xfa/fwl/core/cfwl_message.h"
13 #include "xfa/fwl/core/cfwl_themebackground.h" 13 #include "xfa/fwl/core/cfwl_themebackground.h"
14 #include "xfa/fwl/core/cfwl_themetext.h" 14 #include "xfa/fwl/core/cfwl_themetext.h"
15 #include "xfa/fwl/core/cfwl_widgetmgr.h" 15 #include "xfa/fwl/core/cfwl_widgetmgr.h"
16 #include "xfa/fwl/core/ifwl_app.h"
16 #include "xfa/fwl/core/fwl_noteimp.h" 17 #include "xfa/fwl/core/fwl_noteimp.h"
17 #include "xfa/fwl/core/ifwl_checkbox.h" 18 #include "xfa/fwl/core/ifwl_checkbox.h"
18 #include "xfa/fwl/core/ifwl_themeprovider.h" 19 #include "xfa/fwl/core/ifwl_themeprovider.h"
19 20
20 namespace { 21 namespace {
21 22
22 const int kCaptionMargin = 5; 23 const int kCaptionMargin = 5;
23 24
24 } // namespace 25 } // namespace
25 26
26 IFWL_CheckBox::IFWL_CheckBox(const CFWL_WidgetImpProperties& properties) 27 IFWL_CheckBox::IFWL_CheckBox(const IFWL_App* app,
27 : IFWL_Widget(properties, nullptr), 28 const CFWL_WidgetImpProperties& properties)
29 : IFWL_Widget(app, properties, nullptr),
28 m_dwTTOStyles(FDE_TTOSTYLE_SingleLine), 30 m_dwTTOStyles(FDE_TTOSTYLE_SingleLine),
29 m_iTTOAlign(FDE_TTOALIGNMENT_Center), 31 m_iTTOAlign(FDE_TTOALIGNMENT_Center),
30 m_bBtnDown(FALSE) { 32 m_bBtnDown(FALSE) {
31 m_rtClient.Reset(); 33 m_rtClient.Reset();
32 m_rtBox.Reset(); 34 m_rtBox.Reset();
33 m_rtCaption.Reset(); 35 m_rtCaption.Reset();
34 m_rtFocus.Reset(); 36 m_rtFocus.Reset();
35 } 37 }
36 38
37 IFWL_CheckBox::~IFWL_CheckBox() {} 39 IFWL_CheckBox::~IFWL_CheckBox() {}
38 40
39 FWL_Type IFWL_CheckBox::GetClassID() const { 41 void IFWL_CheckBox::Initialize() {
40 return FWL_Type::CheckBox; 42 IFWL_Widget::Initialize();
41 }
42
43 FWL_Error IFWL_CheckBox::Initialize() {
44 if (IFWL_Widget::Initialize() != FWL_Error::Succeeded)
45 return FWL_Error::Indefinite;
46
47 m_pDelegate = new CFWL_CheckBoxImpDelegate(this); 43 m_pDelegate = new CFWL_CheckBoxImpDelegate(this);
48 return FWL_Error::Succeeded;
49 } 44 }
50 45
51 void IFWL_CheckBox::Finalize() { 46 void IFWL_CheckBox::Finalize() {
52 delete m_pDelegate; 47 delete m_pDelegate;
53 m_pDelegate = nullptr; 48 m_pDelegate = nullptr;
54 IFWL_Widget::Finalize(); 49 IFWL_Widget::Finalize();
55 } 50 }
56 51
52 FWL_Type IFWL_CheckBox::GetClassID() const {
53 return FWL_Type::CheckBox;
54 }
55
57 FWL_Error IFWL_CheckBox::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { 56 FWL_Error IFWL_CheckBox::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) {
58 if (bAutoSize) { 57 if (bAutoSize) {
59 rect.Set(0, 0, 0, 0); 58 rect.Set(0, 0, 0, 0);
60 if (!m_pProperties->m_pThemeProvider) 59 if (!m_pProperties->m_pThemeProvider)
61 m_pProperties->m_pThemeProvider = GetAvailableTheme(); 60 m_pProperties->m_pThemeProvider = GetAvailableTheme();
62 if (!m_pProperties->m_pThemeProvider) 61 if (!m_pProperties->m_pThemeProvider)
63 return FWL_Error::Indefinite; 62 return FWL_Error::Indefinite;
64 if (!m_pProperties->m_pDataProvider) 63 if (!m_pProperties->m_pDataProvider)
65 return FWL_Error::Indefinite; 64 return FWL_Error::Indefinite;
66 CFX_WideString wsCaption; 65 CFX_WideString wsCaption;
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 } else { 345 } else {
347 m_dwTTOStyles |= FDE_TTOSTYLE_SingleLine; 346 m_dwTTOStyles |= FDE_TTOSTYLE_SingleLine;
348 } 347 }
349 } 348 }
350 349
351 void IFWL_CheckBox::NextStates() { 350 void IFWL_CheckBox::NextStates() {
352 uint32_t dwFirststate = m_pProperties->m_dwStates; 351 uint32_t dwFirststate = m_pProperties->m_dwStates;
353 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CKB_RadioButton) { 352 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CKB_RadioButton) {
354 if ((m_pProperties->m_dwStates & FWL_STATE_CKB_CheckMask) == 353 if ((m_pProperties->m_dwStates & FWL_STATE_CKB_CheckMask) ==
355 FWL_STATE_CKB_Unchecked) { 354 FWL_STATE_CKB_Unchecked) {
356 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance(); 355 CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr();
357 if (!pWidgetMgr->IsFormDisabled()) { 356 if (!pWidgetMgr->IsFormDisabled()) {
358 CFX_ArrayTemplate<IFWL_Widget*> radioarr; 357 CFX_ArrayTemplate<IFWL_Widget*> radioarr;
359 pWidgetMgr->GetSameGroupRadioButton(this, radioarr); 358 pWidgetMgr->GetSameGroupRadioButton(this, radioarr);
360 IFWL_CheckBox* pCheckBox = nullptr; 359 IFWL_CheckBox* pCheckBox = nullptr;
361 int32_t iCount = radioarr.GetSize(); 360 int32_t iCount = radioarr.GetSize();
362 for (int32_t i = 0; i < iCount; i++) { 361 for (int32_t i = 0; i < iCount; i++) {
363 pCheckBox = static_cast<IFWL_CheckBox*>(radioarr[i]); 362 pCheckBox = static_cast<IFWL_CheckBox*>(radioarr[i]);
364 if (pCheckBox != this && 363 if (pCheckBox != this &&
365 pCheckBox->GetStates() & FWL_STATE_CKB_Checked) { 364 pCheckBox->GetStates() & FWL_STATE_CKB_Checked) {
366 pCheckBox->SetCheckState(0); 365 pCheckBox->SetCheckState(0);
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 void CFWL_CheckBoxImpDelegate::OnKeyDown(CFWL_MsgKey* pMsg) { 552 void CFWL_CheckBoxImpDelegate::OnKeyDown(CFWL_MsgKey* pMsg) {
554 if (pMsg->m_dwKeyCode == FWL_VKEY_Tab) { 553 if (pMsg->m_dwKeyCode == FWL_VKEY_Tab) {
555 m_pOwner->DispatchKeyEvent(pMsg); 554 m_pOwner->DispatchKeyEvent(pMsg);
556 return; 555 return;
557 } 556 }
558 if (pMsg->m_dwKeyCode == FWL_VKEY_Return || 557 if (pMsg->m_dwKeyCode == FWL_VKEY_Return ||
559 pMsg->m_dwKeyCode == FWL_VKEY_Space) { 558 pMsg->m_dwKeyCode == FWL_VKEY_Space) {
560 m_pOwner->NextStates(); 559 m_pOwner->NextStates();
561 } 560 }
562 } 561 }
OLDNEW
« no previous file with comments | « xfa/fwl/core/ifwl_checkbox.h ('k') | xfa/fwl/core/ifwl_combobox.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698