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 "../../include/formfiller/FormFiller.h" | 7 // #include "../../include/formfiller/FormFiller.h" |
8 #include "../../include/formfiller/FFL_FormFiller.h" | 8 #include "../../include/formfiller/FFL_FormFiller.h" |
9 #include "../../include/formfiller/FFL_Notify.h" | 9 #include "../../include/formfiller/FFL_Notify.h" |
10 // #include "../../include/formfiller/FFL_ComboBox.h" | 10 // #include "../../include/formfiller/FFL_ComboBox.h" |
11 // #include "../../include/formfiller/FFL_Module.h" | 11 // #include "../../include/formfiller/FFL_Module.h" |
12 | 12 |
13 /* -------------------------------- CFFL_Notify ------------------------------ *
/ | 13 /* -------------------------------- CFFL_Notify ------------------------------ |
| 14 */ |
14 | 15 |
15 //#pragma warning(disable: 4800) | 16 //#pragma warning(disable: 4800) |
16 | 17 |
17 CFFL_Notify::CFFL_Notify(CFFL_FormFiller * pFormFiller) : | 18 CFFL_Notify::CFFL_Notify(CFFL_FormFiller* pFormFiller) |
18 » m_bDoActioning(FALSE), | 19 : m_bDoActioning(FALSE), m_nNotifyFlag(0) { |
19 » m_nNotifyFlag(0) | 20 ASSERT(pFormFiller != NULL); |
20 { | |
21 » ASSERT(pFormFiller != NULL); | |
22 } | 21 } |
23 | 22 |
24 CFFL_Notify::~CFFL_Notify() | 23 CFFL_Notify::~CFFL_Notify() {} |
25 { | 24 |
| 25 void CFFL_Notify::BeforeNotify() { |
| 26 m_nNotifyFlag++; |
26 } | 27 } |
27 | 28 |
28 void CFFL_Notify::BeforeNotify() | 29 void CFFL_Notify::AfterNotify() { |
29 { | 30 m_nNotifyFlag--; |
30 » m_nNotifyFlag ++; | |
31 } | 31 } |
32 | 32 |
33 | 33 FX_BOOL CFFL_Notify::OnMouseUp(FX_BOOL& bExit) { |
34 void CFFL_Notify::AfterNotify() | 34 BeforeNotify(); |
35 { | 35 FX_BOOL bRet = |
36 » m_nNotifyFlag --; | 36 FALSE; // DoAAction(CPDF_AAction::AActionType::ButtonUp, bExit); |
| 37 AfterNotify(); |
| 38 return bRet; |
37 } | 39 } |
38 | 40 |
39 FX_BOOL CFFL_Notify::OnMouseUp(FX_BOOL & bExit) | 41 FX_BOOL CFFL_Notify::OnMouseDown(FX_BOOL& bExit) { |
40 { | 42 BeforeNotify(); |
41 » BeforeNotify(); | 43 FX_BOOL bRet = |
42 » FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::ButtonUp, bE
xit); | 44 FALSE; // DoAAction(CPDF_AAction::AActionType::ButtonDown, bExit); |
43 » AfterNotify(); | 45 AfterNotify(); |
44 » return bRet; | 46 return bRet; |
45 } | 47 } |
46 | 48 |
47 FX_BOOL CFFL_Notify::OnMouseDown(FX_BOOL & bExit) | 49 FX_BOOL CFFL_Notify::OnMouseEnter(FX_BOOL& bExit) { |
48 { | 50 BeforeNotify(); |
49 » BeforeNotify(); | 51 FX_BOOL bRet = |
50 » FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::ButtonDown,
bExit); | 52 FALSE; // DoAAction(CPDF_AAction::AActionType::CursorEnter, bExit); |
51 » AfterNotify(); | 53 AfterNotify(); |
52 » return bRet; | 54 return bRet; |
53 } | 55 } |
54 | 56 |
55 FX_BOOL CFFL_Notify::OnMouseEnter(FX_BOOL & bExit) | 57 FX_BOOL CFFL_Notify::OnMouseExit(FX_BOOL& bExit) { |
56 { | 58 BeforeNotify(); |
57 » BeforeNotify(); | 59 FX_BOOL bRet = |
58 » FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::CursorEnter,
bExit); | 60 FALSE; // DoAAction(CPDF_AAction::AActionType::CursorExit, bExit); |
59 » AfterNotify(); | 61 AfterNotify(); |
60 » return bRet; | 62 return bRet; |
61 } | 63 } |
62 | 64 |
63 FX_BOOL CFFL_Notify::OnMouseExit(FX_BOOL & bExit) | 65 FX_BOOL CFFL_Notify::OnSetFocus(FX_BOOL& bExit) { |
64 { | 66 BeforeNotify(); |
65 » BeforeNotify(); | 67 FX_BOOL bRet = |
66 » FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::CursorExit,
bExit); | 68 FALSE; // DoAAction(CPDF_AAction::AActionType::GetFocus, bExit); |
67 » AfterNotify(); | 69 AfterNotify(); |
68 » return bRet; | 70 return bRet; |
69 } | 71 } |
70 | 72 |
71 FX_BOOL CFFL_Notify::OnSetFocus(FX_BOOL & bExit) | 73 FX_BOOL CFFL_Notify::OnKillFocus(FX_BOOL& bExit) { |
72 { | 74 BeforeNotify(); |
73 » BeforeNotify(); | 75 FX_BOOL bRet = |
74 » FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::GetFocus, bE
xit); | 76 FALSE; // DoAAction(CPDF_AAction::AActionType::LoseFocus, bExit); |
75 » AfterNotify(); | 77 AfterNotify(); |
76 » return bRet; | 78 return bRet; |
77 } | 79 } |
78 | 80 |
79 FX_BOOL CFFL_Notify::OnKillFocus(FX_BOOL & bExit) | 81 FX_BOOL CFFL_Notify::OnCalculate() { |
80 { | 82 return TRUE; |
81 » BeforeNotify(); | |
82 » FX_BOOL bRet = FALSE;//DoAAction(CPDF_AAction::AActionType::LoseFocus, b
Exit); | |
83 » AfterNotify(); | |
84 » return bRet; | |
85 } | 83 } |
86 | 84 |
87 FX_BOOL CFFL_Notify::OnCalculate() | 85 FX_BOOL CFFL_Notify::OnFormat(int iCommitKey) { |
88 { | 86 return TRUE; |
89 » return TRUE; | |
90 } | 87 } |
91 | 88 |
92 FX_BOOL CFFL_Notify::OnFormat(int iCommitKey) | 89 FX_BOOL CFFL_Notify::OnKeyStroke(CPDF_FormField* pFormField, |
93 { | 90 int nCommitKey, |
94 » return TRUE; | 91 CFX_WideString& strValue, |
| 92 CFX_WideString& strChange, |
| 93 const CFX_WideString& strChangeEx, |
| 94 FX_BOOL bKeyDown, |
| 95 FX_BOOL bModifier, |
| 96 FX_BOOL bShift, |
| 97 FX_BOOL bWillCommit, |
| 98 FX_BOOL bFieldFull, |
| 99 int& nSelStart, |
| 100 int& nSelEnd, |
| 101 FX_BOOL& bRC) { |
| 102 return TRUE; |
95 } | 103 } |
96 | 104 |
97 FX_BOOL CFFL_Notify::OnKeyStroke(CPDF_FormField* pFormField, int nCommitKey, CFX
_WideString& strValue, CFX_WideString& strChange, | 105 FX_BOOL CFFL_Notify::OnValidate(CPDF_FormField* pFormField, |
98 » » » » » » » const CFX_WideString&
strChangeEx, FX_BOOL bKeyDown, FX_BOOL bModifier, | 106 CFX_WideString& strValue, |
99 » » » » » » » FX_BOOL bShift, FX_BO
OL bWillCommit, FX_BOOL bFieldFull, | 107 CFX_WideString& strChange, |
100 » » » » » » » int& nSelStart, int&
nSelEnd, FX_BOOL& bRC) | 108 const CFX_WideString& strChangeEx, |
101 { | 109 FX_BOOL bKeyDown, |
102 » return TRUE; | 110 FX_BOOL bModifier, |
| 111 FX_BOOL bShift, |
| 112 FX_BOOL& bRC) { |
| 113 return TRUE; |
103 } | 114 } |
104 | 115 |
105 FX_BOOL CFFL_Notify::OnValidate(CPDF_FormField* pFormField, CFX_WideString& strV
alue, CFX_WideString & strChange, | 116 FX_BOOL CFFL_Notify::DoAAction(CPDF_AAction::AActionType eAAT, FX_BOOL& bExit) { |
106 » » » » » » » » » const
CFX_WideString& strChangeEx, FX_BOOL bKeyDown, FX_BOOL bModifier, | 117 if (m_bDoActioning) |
107 » » » » » » » » » FX_BO
OL bShift, FX_BOOL & bRC) | 118 return FALSE; |
108 { | 119 |
109 » return TRUE; | 120 CPDF_Action action; |
| 121 if (!FindAAction(eAAT, action)) |
| 122 return FALSE; |
| 123 |
| 124 m_bDoActioning = TRUE; |
| 125 ExecuteActionTree(eAAT, action, bExit); |
| 126 m_bDoActioning = FALSE; |
| 127 return TRUE; |
110 } | 128 } |
111 | 129 |
112 FX_BOOL»CFFL_Notify::DoAAction(CPDF_AAction::AActionType eAAT, FX_BOOL & bExit) | 130 FX_BOOL CFFL_Notify::ExecuteActionTree(CPDF_AAction::AActionType eAAT, |
113 { | 131 CPDF_Action& action, |
114 if (m_bDoActioning) | 132 FX_BOOL& bExit) { |
115 return FALSE; | 133 if (!ExecuteAction(eAAT, action, bExit)) |
| 134 return FALSE; |
| 135 if (bExit) |
| 136 return TRUE; |
116 | 137 |
117 CPDF_Action action; | 138 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { |
118 if (!FindAAction(eAAT, action)) | 139 CPDF_Action subaction = action.GetSubAction(i); |
119 return FALSE; | 140 if (!ExecuteActionTree(eAAT, subaction, bExit)) |
| 141 return FALSE; |
| 142 if (bExit) |
| 143 break; |
| 144 } |
120 | 145 |
121 m_bDoActioning = TRUE; | 146 return TRUE; |
122 ExecuteActionTree(eAAT,action,bExit); | |
123 m_bDoActioning = FALSE; | |
124 return TRUE; | |
125 } | 147 } |
126 | 148 |
127 FX_BOOL»CFFL_Notify::ExecuteActionTree(CPDF_AAction::AActionType eAAT,CPDF_Actio
n & action, FX_BOOL& bExit) | 149 FX_BOOL CFFL_Notify::FindAAction(CPDF_AAction::AActionType eAAT, |
128 { | 150 CPDF_Action& action) { |
129 » if (!ExecuteAction(eAAT,action,bExit)) return FALSE; | 151 return FALSE; |
130 » if (bExit) return TRUE; | |
131 | |
132 » for (int32_t i=0,sz=action.GetSubActionsCount(); i<sz; i++) | |
133 » { | |
134 » » CPDF_Action subaction = action.GetSubAction(i); | |
135 » » if (!ExecuteActionTree(eAAT,subaction,bExit)) return FALSE; | |
136 » » if (bExit) break; | |
137 » } | |
138 | |
139 » return TRUE; | |
140 } | 152 } |
141 | 153 |
| 154 FX_BOOL CFFL_Notify::FindAAction(CPDF_AAction aaction, |
| 155 CPDF_AAction::AActionType eAAT, |
| 156 CPDF_Action& action) { |
| 157 CPDF_Action MyAction; |
142 | 158 |
143 FX_BOOL»CFFL_Notify::FindAAction(CPDF_AAction::AActionType eAAT,CPDF_Action & ac
tion) | 159 if (aaction.ActionExist(eAAT)) { |
144 { | 160 MyAction = aaction.GetAction(eAAT); |
145 » return FALSE; | 161 } else |
| 162 return FALSE; |
| 163 |
| 164 if (MyAction.GetType() == CPDF_Action::Unknown) |
| 165 return FALSE; |
| 166 |
| 167 action = MyAction; |
| 168 |
| 169 return TRUE; |
146 } | 170 } |
147 | 171 |
148 FX_BOOL CFFL_Notify::FindAAction(CPDF_AAction aaction,CPDF_AAction::AActionType
eAAT,CPDF_Action & action) | 172 FX_BOOL CFFL_Notify::ExecuteAction(CPDF_AAction::AActionType eAAT, |
149 { | 173 CPDF_Action& action, |
150 » CPDF_Action MyAction; | 174 FX_BOOL& bExit) { |
151 | 175 return FALSE; |
152 » if (aaction.ActionExist(eAAT)) | |
153 » { | |
154 » » MyAction = aaction.GetAction(eAAT); | |
155 » } | |
156 » else | |
157 » » return FALSE; | |
158 | |
159 | |
160 » if (MyAction.GetType() == CPDF_Action::Unknown) | |
161 » » return FALSE; | |
162 | |
163 » action = MyAction; | |
164 | |
165 » return TRUE; | |
166 } | |
167 | |
168 FX_BOOL»CFFL_Notify::ExecuteAction(CPDF_AAction::AActionType eAAT,CPDF_Action &
action,FX_BOOL& bExit) | |
169 { | |
170 » return FALSE; | |
171 } | 176 } |
172 //#pragma warning(default: 4800) | 177 //#pragma warning(default: 4800) |
173 | |
OLD | NEW |