| 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/fsdk_define.h" | 7 #include "../include/fsdk_define.h" |
| 8 #include "../include/fsdk_mgr.h" | 8 #include "../include/fsdk_mgr.h" |
| 9 #include "../include/fsdk_baseannot.h" | 9 #include "../include/fsdk_baseannot.h" |
| 10 | 10 |
| (...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1083 return TRUE; | 1083 return TRUE; |
| 1084 } | 1084 } |
| 1085 FX_BOOL CPDFSDK_Annot::IsVisible() const | 1085 FX_BOOL CPDFSDK_Annot::IsVisible() const |
| 1086 { | 1086 { |
| 1087 int nFlags = GetFlags(); | 1087 int nFlags = GetFlags(); |
| 1088 return !((nFlags & ANNOTFLAG_INVISIBLE) || (nFlags & ANNOTFLAG_HIDDEN) |
| (nFlags & ANNOTFLAG_NOVIEW)); | 1088 return !((nFlags & ANNOTFLAG_INVISIBLE) || (nFlags & ANNOTFLAG_HIDDEN) |
| (nFlags & ANNOTFLAG_NOVIEW)); |
| 1089 } | 1089 } |
| 1090 | 1090 |
| 1091 CPDF_Action CPDFSDK_Annot::GetAction() const | 1091 CPDF_Action CPDFSDK_Annot::GetAction() const |
| 1092 { | 1092 { |
| 1093 » ASSERT(m_pAnnot != NULL); | 1093 » return CPDF_Action(m_pAnnot->m_pAnnotDict->GetDict("A")); |
| 1094 » ASSERT(m_pAnnot->m_pAnnotDict != NULL); | |
| 1095 » | |
| 1096 » return m_pAnnot->m_pAnnotDict->GetDict("A"); | |
| 1097 } | 1094 } |
| 1098 | 1095 |
| 1099 void CPDFSDK_Annot::SetAction(const CPDF_Action& action) | 1096 void CPDFSDK_Annot::SetAction(const CPDF_Action& action) |
| 1100 { | 1097 { |
| 1101 » ASSERT(m_pAnnot != NULL); | 1098 » ASSERT(action); |
| 1102 » ASSERT(m_pAnnot->m_pAnnotDict != NULL); | 1099 » if ((CPDF_Action&)action != CPDF_Action(m_pAnnot->m_pAnnotDict->GetDict(
"A"))) |
| 1103 » | |
| 1104 » ASSERT(action != NULL); | |
| 1105 » | |
| 1106 » if ((CPDF_Action&)action != m_pAnnot->m_pAnnotDict->GetDict("A")) | |
| 1107 { | 1100 { |
| 1108 » » CPDF_Document* pDoc = m_pPageView->GetPDFDocument(); | 1101 » CPDF_Document* pDoc = m_pPageView->GetPDFDocument(); |
| 1109 » » ASSERT(pDoc != NULL); | 1102 CPDF_Dictionary* pDict = action.GetDict(); |
| 1110 » » | 1103 » » if (pDict && pDict->GetObjNum() == 0) { |
| 1111 » » if (action.m_pDict && (action.m_pDict->GetObjNum() == 0)) | 1104 » » » pDoc->AddIndirectObject(pDict); |
| 1112 » » » pDoc->AddIndirectObject(action.m_pDict); | 1105 } |
| 1113 » » m_pAnnot->m_pAnnotDict->SetAtReference("A", pDoc, action.m_pDict
->GetObjNum()); | 1106 m_pAnnot->m_pAnnotDict->SetAtReference("A", pDoc, pDict->GetObjNum()); |
| 1114 } | 1107 } |
| 1115 } | 1108 } |
| 1116 | 1109 |
| 1117 void CPDFSDK_Annot::RemoveAction() | 1110 void CPDFSDK_Annot::RemoveAction() |
| 1118 { | 1111 { |
| 1119 ASSERT(m_pAnnot != NULL); | |
| 1120 ASSERT(m_pAnnot->m_pAnnotDict != NULL); | |
| 1121 | |
| 1122 m_pAnnot->m_pAnnotDict->RemoveAt("A"); | 1112 m_pAnnot->m_pAnnotDict->RemoveAt("A"); |
| 1123 } | 1113 } |
| 1124 | 1114 |
| 1125 CPDF_AAction CPDFSDK_Annot::GetAAction() const | 1115 CPDF_AAction CPDFSDK_Annot::GetAAction() const |
| 1126 { | 1116 { |
| 1127 ASSERT(m_pAnnot != NULL); | |
| 1128 ASSERT(m_pAnnot->m_pAnnotDict != NULL); | |
| 1129 | |
| 1130 return m_pAnnot->m_pAnnotDict->GetDict("AA"); | 1117 return m_pAnnot->m_pAnnotDict->GetDict("AA"); |
| 1131 } | 1118 } |
| 1132 | 1119 |
| 1133 void CPDFSDK_Annot::SetAAction(const CPDF_AAction& aa) | 1120 void CPDFSDK_Annot::SetAAction(const CPDF_AAction& aa) |
| 1134 { | 1121 { |
| 1135 ASSERT(m_pAnnot != NULL); | 1122 ASSERT(m_pAnnot != NULL); |
| 1136 ASSERT(m_pAnnot->m_pAnnotDict != NULL); | 1123 ASSERT(m_pAnnot->m_pAnnotDict != NULL); |
| 1137 ASSERT(aa != NULL); | 1124 ASSERT(aa != NULL); |
| 1138 | 1125 |
| 1139 if ((CPDF_AAction&)aa != m_pAnnot->m_pAnnotDict->GetDict("AA")) | 1126 if ((CPDF_AAction&)aa != m_pAnnot->m_pAnnotDict->GetDict("AA")) |
| 1140 m_pAnnot->m_pAnnotDict->SetAt("AA", (CPDF_AAction&)aa); | 1127 m_pAnnot->m_pAnnotDict->SetAt("AA", (CPDF_AAction&)aa); |
| 1141 } | 1128 } |
| 1142 | 1129 |
| 1143 void CPDFSDK_Annot::RemoveAAction() | 1130 void CPDFSDK_Annot::RemoveAAction() |
| 1144 { | 1131 { |
| 1145 ASSERT(m_pAnnot != NULL); | 1132 ASSERT(m_pAnnot != NULL); |
| 1146 ASSERT(m_pAnnot->m_pAnnotDict != NULL); | 1133 ASSERT(m_pAnnot->m_pAnnotDict != NULL); |
| 1147 | 1134 |
| 1148 m_pAnnot->m_pAnnotDict->RemoveAt("AA"); | 1135 m_pAnnot->m_pAnnotDict->RemoveAt("AA"); |
| 1149 } | 1136 } |
| 1150 | 1137 |
| 1151 CPDF_Action CPDFSDK_Annot::GetAAction(CPDF_AAction::AActionType eAAT) | 1138 CPDF_Action CPDFSDK_Annot::GetAAction(CPDF_AAction::AActionType eAAT) |
| 1152 { | 1139 { |
| 1153 CPDF_AAction AAction = GetAAction(); | 1140 CPDF_AAction AAction = GetAAction(); |
| 1154 » | 1141 |
| 1155 if (AAction.ActionExist(eAAT)) | 1142 if (AAction.ActionExist(eAAT)) |
| 1156 { | |
| 1157 return AAction.GetAction(eAAT); | 1143 return AAction.GetAction(eAAT); |
| 1158 » } | 1144 |
| 1159 » else if (eAAT == CPDF_AAction::ButtonUp) | 1145 » if (eAAT == CPDF_AAction::ButtonUp) |
| 1160 » { | |
| 1161 return GetAction(); | 1146 return GetAction(); |
| 1162 » } | 1147 |
| 1163 » | 1148 » return CPDF_Action(); |
| 1164 » return NULL; | |
| 1165 } | 1149 } |
| 1166 | 1150 |
| 1167 void CPDFSDK_Annot::Annot_OnDraw(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2
Device, CPDF_RenderOptions* pOptions) | 1151 void CPDFSDK_Annot::Annot_OnDraw(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2
Device, CPDF_RenderOptions* pOptions) |
| 1168 { | 1152 { |
| 1169 | 1153 |
| 1170 m_pAnnot->GetAPForm(m_pPageView->GetPDFPage(), CPDF_Annot::Normal); | 1154 m_pAnnot->GetAPForm(m_pPageView->GetPDFPage(), CPDF_Annot::Normal); |
| 1171 m_pAnnot->DrawAppearance(m_pPageView->GetPDFPage(), pDevice, pUser2Devic
e, CPDF_Annot::Normal, NULL); | 1155 m_pAnnot->DrawAppearance(m_pPageView->GetPDFPage(), pDevice, pUser2Devic
e, CPDF_Annot::Normal, NULL); |
| 1172 | 1156 |
| 1173 return ; | 1157 return ; |
| 1174 } | 1158 } |
| 1175 | 1159 |
| 1176 CPDF_Page* CPDFSDK_Annot::GetPDFPage() | 1160 CPDF_Page* CPDFSDK_Annot::GetPDFPage() |
| 1177 { | 1161 { |
| 1178 if(m_pPageView) | 1162 if(m_pPageView) |
| 1179 return m_pPageView->GetPDFPage(); | 1163 return m_pPageView->GetPDFPage(); |
| 1180 return NULL; | 1164 return NULL; |
| 1181 } | 1165 } |
| 1182 | 1166 |
| OLD | NEW |