| 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 #ifndef FPDFSDK_INCLUDE_FSDK_ANNOTHANDLER_H_ | 7 #ifndef FPDFSDK_INCLUDE_FSDK_ANNOTHANDLER_H_ |
| 8 #define FPDFSDK_INCLUDE_FSDK_ANNOTHANDLER_H_ | 8 #define FPDFSDK_INCLUDE_FSDK_ANNOTHANDLER_H_ |
| 9 | 9 |
| 10 #include "../../core/include/fxcrt/fx_basic.h" | 10 #include "../../core/include/fxcrt/fx_basic.h" |
| 11 | 11 |
| 12 class CFFL_IFormFiller; | 12 class CFFL_IFormFiller; |
| 13 class CFX_RenderDevice; | 13 class CFX_RenderDevice; |
| 14 class CPDFDoc_Environment; | 14 class CPDFDoc_Environment; |
| 15 class CPDFSDK_Annot; | 15 class CPDFSDK_Annot; |
| 16 class CPDFSDK_PageView; | 16 class CPDFSDK_PageView; |
| 17 class CPDF_Annot; | 17 class CPDF_Annot; |
| 18 class CPDF_Matrix; | 18 class CPDF_Matrix; |
| 19 class CPDF_Point; | 19 class CPDF_Point; |
| 20 class CPDF_Rect; | 20 class CPDF_Rect; |
| 21 | 21 |
| 22 class IPDFSDK_AnnotHandler | 22 class IPDFSDK_AnnotHandler { |
| 23 { | 23 public: |
| 24 | 24 virtual ~IPDFSDK_AnnotHandler(){}; |
| 25 public: | 25 |
| 26 » virtual ~IPDFSDK_AnnotHandler() {}; | 26 virtual CFX_ByteString GetType() = 0; |
| 27 | 27 |
| 28 » virtual CFX_ByteString» » GetType() = 0; | 28 virtual CFX_ByteString GetName() = 0; |
| 29 | 29 |
| 30 » virtual CFX_ByteString» » GetName() = 0; | 30 virtual FX_BOOL CanAnswer(CPDFSDK_Annot* pAnnot) = 0; |
| 31 | 31 |
| 32 » virtual FX_BOOL»» » » CanAnswer(CPDFSDK_Annot* pAnnot)
= 0; | 32 virtual CPDFSDK_Annot* NewAnnot(CPDF_Annot* pAnnot, |
| 33 | 33 CPDFSDK_PageView* pPage) = 0; |
| 34 | 34 |
| 35 » virtual CPDFSDK_Annot*» » NewAnnot(CPDF_Annot* pAnnot, CPDFSDK_Pag
eView* pPage) = 0; | 35 virtual void ReleaseAnnot(CPDFSDK_Annot* pAnnot) = 0; |
| 36 | 36 |
| 37 » virtual void» » » » ReleaseAnnot(CPDFSDK_Annot* pAnn
ot) = 0; | 37 virtual void DeleteAnnot(CPDFSDK_Annot* pAnnot) = 0; |
| 38 | 38 |
| 39 » virtual void» » » » DeleteAnnot(CPDFSDK_Annot* pAnno
t) = 0; | 39 virtual CPDF_Rect GetViewBBox(CPDFSDK_PageView* pPageView, |
| 40 | 40 CPDFSDK_Annot* pAnnot) = 0; |
| 41 | 41 |
| 42 » virtual CPDF_Rect» » » » GetViewBBox(CPDFSDK_Page
View *pPageView, CPDFSDK_Annot* pAnnot) = 0; | 42 virtual FX_BOOL HitTest(CPDFSDK_PageView* pPageView, |
| 43 | 43 CPDFSDK_Annot* pAnnot, |
| 44 » virtual FX_BOOL»» » » HitTest(CPDFSDK_PageView *pPageV
iew, CPDFSDK_Annot* pAnnot, const CPDF_Point& point) = 0; | 44 const CPDF_Point& point) = 0; |
| 45 | 45 |
| 46 | 46 virtual void OnDraw(CPDFSDK_PageView* pPageView, |
| 47 » virtual void» » » » OnDraw(CPDFSDK_PageView *pPageVi
ew, CPDFSDK_Annot* pAnnot, | 47 CPDFSDK_Annot* pAnnot, |
| 48 » » CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, | 48 CFX_RenderDevice* pDevice, |
| 49 » » FX_DWORD dwFlags) = 0; | 49 CPDF_Matrix* pUser2Device, |
| 50 | 50 FX_DWORD dwFlags) = 0; |
| 51 » virtual void» » » » OnDrawSleep(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, | 51 |
| 52 » » CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, | 52 virtual void OnDrawSleep(CPDFSDK_PageView* pPageView, |
| 53 » » const CPDF_Rect& rcWindow, FX_DWORD dwFlags) = 0; | 53 CPDFSDK_Annot* pAnnot, |
| 54 | 54 CFX_RenderDevice* pDevice, |
| 55 | 55 CPDF_Matrix* pUser2Device, |
| 56 | 56 const CPDF_Rect& rcWindow, |
| 57 | 57 FX_DWORD dwFlags) = 0; |
| 58 » virtual void» » » » OnCreate(CPDFSDK_Annot* pAnnot)
= 0; | 58 |
| 59 | 59 virtual void OnCreate(CPDFSDK_Annot* pAnnot) = 0; |
| 60 » virtual void» » » » OnLoad(CPDFSDK_Annot* pAnnot) =
0; | 60 |
| 61 | 61 virtual void OnLoad(CPDFSDK_Annot* pAnnot) = 0; |
| 62 » virtual void» » » » OnDelete(CPDFSDK_Annot* pAnnot)
= 0; | 62 |
| 63 | 63 virtual void OnDelete(CPDFSDK_Annot* pAnnot) = 0; |
| 64 » virtual void» » » » OnRelease(CPDFSDK_Annot* pAnnot)
= 0; | 64 |
| 65 | 65 virtual void OnRelease(CPDFSDK_Annot* pAnnot) = 0; |
| 66 | 66 |
| 67 » virtual void» » » » OnMouseEnter(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag) = 0; | 67 virtual void OnMouseEnter(CPDFSDK_PageView* pPageView, |
| 68 » virtual void» » » » OnMouseExit(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag) = 0; | 68 CPDFSDK_Annot* pAnnot, |
| 69 | 69 FX_DWORD nFlag) = 0; |
| 70 | 70 virtual void OnMouseExit(CPDFSDK_PageView* pPageView, |
| 71 » virtual FX_BOOL»» » » OnLButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) = 0; | 71 CPDFSDK_Annot* pAnnot, |
| 72 » virtual FX_BOOL»» » » OnLButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) = 0; | 72 FX_DWORD nFlag) = 0; |
| 73 » virtual FX_BOOL»» » » OnLButtonDblClk(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) =
0; | 73 |
| 74 » virtual FX_BOOL»» » » OnMouseMove(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) = 0; | 74 virtual FX_BOOL OnLButtonDown(CPDFSDK_PageView* pPageView, |
| 75 » virtual FX_BOOL»» » » OnMouseWheel(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, short zDelta, const CPDF_Point
& point) = 0; | 75 CPDFSDK_Annot* pAnnot, |
| 76 » virtual FX_BOOL»» » » OnRButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) = 0; | 76 FX_DWORD nFlags, |
| 77 » virtual FX_BOOL»» » » OnRButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) = 0; | 77 const CPDF_Point& point) = 0; |
| 78 » virtual FX_BOOL»» » » OnRButtonDblClk(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) =
0; | 78 virtual FX_BOOL OnLButtonUp(CPDFSDK_PageView* pPageView, |
| 79 //by wjm. | 79 CPDFSDK_Annot* pAnnot, |
| 80 » virtual FX_BOOL»» » » OnChar(CPDFSDK_Annot* pAnnot, FX
_DWORD nChar, FX_DWORD nFlags) = 0; | 80 FX_DWORD nFlags, |
| 81 » virtual FX_BOOL»» » » OnKeyDown(CPDFSDK_Annot* pAnnot,
int nKeyCode, int nFlag) = 0; | 81 const CPDF_Point& point) = 0; |
| 82 » virtual FX_BOOL»» » » OnKeyUp(CPDFSDK_Annot* pAnnot, i
nt nKeyCode, int nFlag) =0 ; | 82 virtual FX_BOOL OnLButtonDblClk(CPDFSDK_PageView* pPageView, |
| 83 | 83 CPDFSDK_Annot* pAnnot, |
| 84 » virtual»void» » » » OnDeSelected(CPDFSDK_Annot* pAnn
ot) = 0; | 84 FX_DWORD nFlags, |
| 85 » virtual»void» » » » OnSelected(CPDFSDK_Annot* pAnnot
) = 0; | 85 const CPDF_Point& point) = 0; |
| 86 | 86 virtual FX_BOOL OnMouseMove(CPDFSDK_PageView* pPageView, |
| 87 » virtual FX_BOOL»» » » OnSetFocus(CPDFSDK_Annot* pAnnot
, FX_DWORD nFlag) = 0; | 87 CPDFSDK_Annot* pAnnot, |
| 88 » virtual FX_BOOL»» » » OnKillFocus(CPDFSDK_Annot* pAnno
t, FX_DWORD nFlag) = 0; | 88 FX_DWORD nFlags, |
| 89 | 89 const CPDF_Point& point) = 0; |
| 90 virtual FX_BOOL OnMouseWheel(CPDFSDK_PageView* pPageView, |
| 91 CPDFSDK_Annot* pAnnot, |
| 92 FX_DWORD nFlags, |
| 93 short zDelta, |
| 94 const CPDF_Point& point) = 0; |
| 95 virtual FX_BOOL OnRButtonDown(CPDFSDK_PageView* pPageView, |
| 96 CPDFSDK_Annot* pAnnot, |
| 97 FX_DWORD nFlags, |
| 98 const CPDF_Point& point) = 0; |
| 99 virtual FX_BOOL OnRButtonUp(CPDFSDK_PageView* pPageView, |
| 100 CPDFSDK_Annot* pAnnot, |
| 101 FX_DWORD nFlags, |
| 102 const CPDF_Point& point) = 0; |
| 103 virtual FX_BOOL OnRButtonDblClk(CPDFSDK_PageView* pPageView, |
| 104 CPDFSDK_Annot* pAnnot, |
| 105 FX_DWORD nFlags, |
| 106 const CPDF_Point& point) = 0; |
| 107 // by wjm. |
| 108 virtual FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, |
| 109 FX_DWORD nChar, |
| 110 FX_DWORD nFlags) = 0; |
| 111 virtual FX_BOOL OnKeyDown(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag) = 0; |
| 112 virtual FX_BOOL OnKeyUp(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag) = 0; |
| 113 |
| 114 virtual void OnDeSelected(CPDFSDK_Annot* pAnnot) = 0; |
| 115 virtual void OnSelected(CPDFSDK_Annot* pAnnot) = 0; |
| 116 |
| 117 virtual FX_BOOL OnSetFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag) = 0; |
| 118 virtual FX_BOOL OnKillFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag) = 0; |
| 90 }; | 119 }; |
| 91 | 120 |
| 92 | 121 class CPDFSDK_BFAnnotHandler : public IPDFSDK_AnnotHandler { |
| 93 class CPDFSDK_BFAnnotHandler:public IPDFSDK_AnnotHandler | 122 public: |
| 94 { | 123 CPDFSDK_BFAnnotHandler(CPDFDoc_Environment* pApp) |
| 95 public: | 124 : m_pApp(pApp), m_pFormFiller(NULL) {} |
| 96 » CPDFSDK_BFAnnotHandler(CPDFDoc_Environment* pApp) : m_pApp(pApp), m_pFor
mFiller(NULL) {} | 125 virtual ~CPDFSDK_BFAnnotHandler() {} |
| 97 » virtual»~CPDFSDK_BFAnnotHandler() {} | 126 |
| 98 public: | 127 public: |
| 99 | 128 virtual CFX_ByteString GetType() { return CFX_ByteString("Widget"); } |
| 100 » virtual CFX_ByteString» » GetType() {return CFX_ByteString("Widge
t");} | 129 |
| 101 | 130 virtual CFX_ByteString GetName() { return CFX_ByteString("WidgetHandler"); } |
| 102 » virtual CFX_ByteString» » GetName() {return CFX_ByteString("Widge
tHandler");} | 131 |
| 103 | 132 virtual FX_BOOL CanAnswer(CPDFSDK_Annot* pAnnot); |
| 104 » virtual FX_BOOL»» » » CanAnswer(CPDFSDK_Annot* pAnnot)
; | 133 |
| 105 | 134 virtual CPDFSDK_Annot* NewAnnot(CPDF_Annot* pAnnot, CPDFSDK_PageView* pPage); |
| 106 » virtual CPDFSDK_Annot*» » NewAnnot(CPDF_Annot* pAnnot, CPDFSDK_Pag
eView* pPage); | 135 |
| 107 | 136 virtual void ReleaseAnnot(CPDFSDK_Annot* pAnnot); |
| 108 » virtual void» » » » ReleaseAnnot(CPDFSDK_Annot* pAnn
ot) ; | 137 |
| 109 | 138 virtual void DeleteAnnot(CPDFSDK_Annot* pAnnot) {} |
| 110 » virtual void» » » » DeleteAnnot(CPDFSDK_Annot* pAnno
t) {} | 139 |
| 111 | 140 virtual CPDF_Rect GetViewBBox(CPDFSDK_PageView* pPageView, |
| 112 | 141 CPDFSDK_Annot* pAnnot); |
| 113 » virtual CPDF_Rect» » » » GetViewBBox(CPDFSDK_Page
View *pPageView, CPDFSDK_Annot* pAnnot) ; | 142 |
| 114 | 143 virtual FX_BOOL HitTest(CPDFSDK_PageView* pPageView, |
| 115 » virtual FX_BOOL»» » » HitTest(CPDFSDK_PageView *pPageV
iew, CPDFSDK_Annot* pAnnot, const CPDF_Point& point); | 144 CPDFSDK_Annot* pAnnot, |
| 116 | 145 const CPDF_Point& point); |
| 117 | 146 |
| 118 » virtual void» » » » OnDraw(CPDFSDK_PageView *pPageVi
ew, CPDFSDK_Annot* pAnnot, | 147 virtual void OnDraw(CPDFSDK_PageView* pPageView, |
| 119 » » CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, | 148 CPDFSDK_Annot* pAnnot, |
| 120 » » FX_DWORD dwFlags) ; | 149 CFX_RenderDevice* pDevice, |
| 121 | 150 CPDF_Matrix* pUser2Device, |
| 122 » virtual void» » » » OnDrawSleep(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, | 151 FX_DWORD dwFlags); |
| 123 » » CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device, | 152 |
| 124 » » const CPDF_Rect& rcWindow, FX_DWORD dwFlags) {} | 153 virtual void OnDrawSleep(CPDFSDK_PageView* pPageView, |
| 125 | 154 CPDFSDK_Annot* pAnnot, |
| 126 | 155 CFX_RenderDevice* pDevice, |
| 127 » virtual void» » » » OnCreate(CPDFSDK_Annot* pAnnot)
; | 156 CPDF_Matrix* pUser2Device, |
| 128 | 157 const CPDF_Rect& rcWindow, |
| 129 » virtual void» » » » OnLoad(CPDFSDK_Annot* pAnnot) ; | 158 FX_DWORD dwFlags) {} |
| 130 | 159 |
| 131 » virtual void» » » » OnDelete(CPDFSDK_Annot* pAnnot)
{} | 160 virtual void OnCreate(CPDFSDK_Annot* pAnnot); |
| 132 | 161 |
| 133 » virtual void» » » » OnRelease(CPDFSDK_Annot* pAnnot)
{} | 162 virtual void OnLoad(CPDFSDK_Annot* pAnnot); |
| 134 | 163 |
| 135 | 164 virtual void OnDelete(CPDFSDK_Annot* pAnnot) {} |
| 136 » virtual void» » » » OnMouseEnter(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag) ; | 165 |
| 137 » virtual void» » » » OnMouseExit(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlag) ; | 166 virtual void OnRelease(CPDFSDK_Annot* pAnnot) {} |
| 138 | 167 |
| 139 | 168 virtual void OnMouseEnter(CPDFSDK_PageView* pPageView, |
| 140 » virtual FX_BOOL»» » » OnLButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) ; | 169 CPDFSDK_Annot* pAnnot, |
| 141 » virtual FX_BOOL»» » » OnLButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) ; | 170 FX_DWORD nFlag); |
| 142 » virtual FX_BOOL»» » » OnLButtonDblClk(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) ; | 171 virtual void OnMouseExit(CPDFSDK_PageView* pPageView, |
| 143 » virtual FX_BOOL»» » » OnMouseMove(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) ; | 172 CPDFSDK_Annot* pAnnot, |
| 144 » virtual FX_BOOL»» » » OnMouseWheel(CPDFSDK_PageView *p
PageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, short zDelta, const CPDF_Point
& point) ; | 173 FX_DWORD nFlag); |
| 145 » virtual FX_BOOL»» » » OnRButtonDown(CPDFSDK_PageView *
pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) ; | 174 |
| 146 » virtual FX_BOOL»» » » OnRButtonUp(CPDFSDK_PageView *pP
ageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) ; | 175 virtual FX_BOOL OnLButtonDown(CPDFSDK_PageView* pPageView, |
| 147 » virtual FX_BOOL»» » » OnRButtonDblClk(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point) {r
eturn FALSE;} | 176 CPDFSDK_Annot* pAnnot, |
| 148 | 177 FX_DWORD nFlags, |
| 149 //by wjm. | 178 const CPDF_Point& point); |
| 150 » virtual FX_BOOL»» » » OnChar(CPDFSDK_Annot* pAnnot, FX
_DWORD nChar, FX_DWORD nFlags); | 179 virtual FX_BOOL OnLButtonUp(CPDFSDK_PageView* pPageView, |
| 151 » virtual FX_BOOL»» » » OnKeyDown(CPDFSDK_Annot* pAnnot,
int nKeyCode, int nFlag); | 180 CPDFSDK_Annot* pAnnot, |
| 152 » virtual FX_BOOL»» » » OnKeyUp(CPDFSDK_Annot* pAnnot, i
nt nKeyCode, int nFlag); | 181 FX_DWORD nFlags, |
| 153 | 182 const CPDF_Point& point); |
| 154 » virtual»void» » » » OnDeSelected(CPDFSDK_Annot* pAnn
ot) {} | 183 virtual FX_BOOL OnLButtonDblClk(CPDFSDK_PageView* pPageView, |
| 155 » virtual»void» » » » OnSelected(CPDFSDK_Annot* pAnnot
) {} | 184 CPDFSDK_Annot* pAnnot, |
| 156 | 185 FX_DWORD nFlags, |
| 157 » virtual FX_BOOL»» » » OnSetFocus(CPDFSDK_Annot* pAnnot
, FX_DWORD nFlag); | 186 const CPDF_Point& point); |
| 158 » virtual FX_BOOL»» » » OnKillFocus(CPDFSDK_Annot* pAnno
t, FX_DWORD nFlag); | 187 virtual FX_BOOL OnMouseMove(CPDFSDK_PageView* pPageView, |
| 159 | 188 CPDFSDK_Annot* pAnnot, |
| 160 » void» » » » » » SetFormFiller(CFFL_IForm
Filler* pFiller){m_pFormFiller = pFiller;} | 189 FX_DWORD nFlags, |
| 161 » CFFL_IFormFiller*» » » GetFormFiller() {return m_pFormF
iller;} | 190 const CPDF_Point& point); |
| 162 private: | 191 virtual FX_BOOL OnMouseWheel(CPDFSDK_PageView* pPageView, |
| 163 | 192 CPDFSDK_Annot* pAnnot, |
| 164 » CPDFDoc_Environment*» » m_pApp; | 193 FX_DWORD nFlags, |
| 165 » CFFL_IFormFiller*» » » m_pFormFiller; | 194 short zDelta, |
| 195 const CPDF_Point& point); |
| 196 virtual FX_BOOL OnRButtonDown(CPDFSDK_PageView* pPageView, |
| 197 CPDFSDK_Annot* pAnnot, |
| 198 FX_DWORD nFlags, |
| 199 const CPDF_Point& point); |
| 200 virtual FX_BOOL OnRButtonUp(CPDFSDK_PageView* pPageView, |
| 201 CPDFSDK_Annot* pAnnot, |
| 202 FX_DWORD nFlags, |
| 203 const CPDF_Point& point); |
| 204 virtual FX_BOOL OnRButtonDblClk(CPDFSDK_PageView* pPageView, |
| 205 CPDFSDK_Annot* pAnnot, |
| 206 FX_DWORD nFlags, |
| 207 const CPDF_Point& point) { |
| 208 return FALSE; |
| 209 } |
| 210 |
| 211 // by wjm. |
| 212 virtual FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, |
| 213 FX_DWORD nChar, |
| 214 FX_DWORD nFlags); |
| 215 virtual FX_BOOL OnKeyDown(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag); |
| 216 virtual FX_BOOL OnKeyUp(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag); |
| 217 |
| 218 virtual void OnDeSelected(CPDFSDK_Annot* pAnnot) {} |
| 219 virtual void OnSelected(CPDFSDK_Annot* pAnnot) {} |
| 220 |
| 221 virtual FX_BOOL OnSetFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag); |
| 222 virtual FX_BOOL OnKillFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag); |
| 223 |
| 224 void SetFormFiller(CFFL_IFormFiller* pFiller) { m_pFormFiller = pFiller; } |
| 225 CFFL_IFormFiller* GetFormFiller() { return m_pFormFiller; } |
| 226 |
| 227 private: |
| 228 CPDFDoc_Environment* m_pApp; |
| 229 CFFL_IFormFiller* m_pFormFiller; |
| 166 }; | 230 }; |
| 167 | 231 |
| 168 #define CBA_AnnotHandlerArray CFX_ArrayTemplate<IPDFSDK_AnnotHandler*> | 232 #define CBA_AnnotHandlerArray CFX_ArrayTemplate<IPDFSDK_AnnotHandler*> |
| 169 class CPDFSDK_AnnotHandlerMgr | 233 class CPDFSDK_AnnotHandlerMgr { |
| 170 { | 234 public: |
| 171 public: | 235 // Destroy the handler |
| 172 » // Destroy the handler | 236 CPDFSDK_AnnotHandlerMgr(CPDFDoc_Environment* pApp); |
| 173 » CPDFSDK_AnnotHandlerMgr(CPDFDoc_Environment* pApp); | 237 virtual ~CPDFSDK_AnnotHandlerMgr(); |
| 174 » virtual ~CPDFSDK_AnnotHandlerMgr() ; | 238 |
| 175 | 239 public: |
| 176 public: | 240 void RegisterAnnotHandler(IPDFSDK_AnnotHandler* pAnnotHandler); |
| 177 » void» » » » » » RegisterAnnotHandler(IPD
FSDK_AnnotHandler* pAnnotHandler); | 241 void UnRegisterAnnotHandler(IPDFSDK_AnnotHandler* pAnnotHandler); |
| 178 » void» » » » » » UnRegisterAnnotHandler(I
PDFSDK_AnnotHandler* pAnnotHandler); | 242 |
| 179 | 243 virtual CPDFSDK_Annot* NewAnnot(CPDF_Annot* pAnnot, |
| 180 » virtual CPDFSDK_Annot*» » NewAnnot(CPDF_Annot * pAnnot, CPDFSDK_Pa
geView *pPageView); | 244 CPDFSDK_PageView* pPageView); |
| 181 » virtual void» » » » ReleaseAnnot(CPDFSDK_Annot * pAn
not); | 245 virtual void ReleaseAnnot(CPDFSDK_Annot* pAnnot); |
| 182 | 246 |
| 183 » virtual void» » » » Annot_OnCreate(CPDFSDK_Annot* pA
nnot); | 247 virtual void Annot_OnCreate(CPDFSDK_Annot* pAnnot); |
| 184 » virtual void» » » » Annot_OnLoad(CPDFSDK_Annot* pAnn
ot); | 248 virtual void Annot_OnLoad(CPDFSDK_Annot* pAnnot); |
| 185 public: | 249 |
| 186 » IPDFSDK_AnnotHandler*» » GetAnnotHandler(CPDFSDK_Annot* pAnnot) c
onst; | 250 public: |
| 187 » virtual void» » » » Annot_OnDraw(CPDFSDK_PageView* p
PageView, CPDFSDK_Annot* pAnnot, | 251 IPDFSDK_AnnotHandler* GetAnnotHandler(CPDFSDK_Annot* pAnnot) const; |
| 188 » » CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device,FX_DWORD dw
Flags); | 252 virtual void Annot_OnDraw(CPDFSDK_PageView* pPageView, |
| 189 | 253 CPDFSDK_Annot* pAnnot, |
| 190 » virtual void» » » » Annot_OnMouseEnter(CPDFSDK_PageV
iew * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags); | 254 CFX_RenderDevice* pDevice, |
| 191 » virtual void» » » » Annot_OnMouseExit(CPDFSDK_PageVi
ew * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags); | 255 CPDF_Matrix* pUser2Device, |
| 192 | 256 FX_DWORD dwFlags); |
| 193 » virtual FX_BOOL»» » » Annot_OnLButtonDown(CPDFSDK_Page
View * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& poin
t); | 257 |
| 194 » virtual FX_BOOL»» » » Annot_OnLButtonUp(CPDFSDK_PageVi
ew * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
; | 258 virtual void Annot_OnMouseEnter(CPDFSDK_PageView* pPageView, |
| 195 » virtual FX_BOOL»» » » Annot_OnLButtonDblClk(CPDFSDK_Pa
geView * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& po
int); | 259 CPDFSDK_Annot* pAnnot, |
| 196 | 260 FX_DWORD nFlags); |
| 197 » virtual FX_BOOL»» » » Annot_OnMouseMove(CPDFSDK_PageVi
ew * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
; | 261 virtual void Annot_OnMouseExit(CPDFSDK_PageView* pPageView, |
| 198 » virtual FX_BOOL»» » » Annot_OnMouseWheel(CPDFSDK_PageV
iew * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, short zDelta, const CPD
F_Point& point); | 262 CPDFSDK_Annot* pAnnot, |
| 199 » virtual FX_BOOL»» » » Annot_OnRButtonDown(CPDFSDK_Page
View * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& poin
t); | 263 FX_DWORD nFlags); |
| 200 » virtual FX_BOOL»» » » Annot_OnRButtonUp(CPDFSDK_PageVi
ew * pPageView, CPDFSDK_Annot* pAnnot, FX_DWORD nFlags, const CPDF_Point& point)
; | 264 |
| 201 | 265 virtual FX_BOOL Annot_OnLButtonDown(CPDFSDK_PageView* pPageView, |
| 202 | 266 CPDFSDK_Annot* pAnnot, |
| 203 » virtual FX_BOOL»» » » Annot_OnChar(CPDFSDK_Annot* pAnn
ot, FX_DWORD nChar, FX_DWORD nFlags); | 267 FX_DWORD nFlags, |
| 204 » virtual FX_BOOL»» » » Annot_OnKeyDown(CPDFSDK_Annot* p
Annot, int nKeyCode, int nFlag); | 268 const CPDF_Point& point); |
| 205 » virtual FX_BOOL»» » » Annot_OnKeyUp(CPDFSDK_Annot* pAn
not, int nKeyCode, int nFlag); | 269 virtual FX_BOOL Annot_OnLButtonUp(CPDFSDK_PageView* pPageView, |
| 206 | 270 CPDFSDK_Annot* pAnnot, |
| 207 » virtual FX_BOOL»» » » Annot_OnSetFocus(CPDFSDK_Annot*
pAnnot, FX_DWORD nFlag); | 271 FX_DWORD nFlags, |
| 208 » virtual FX_BOOL»» » » Annot_OnKillFocus(CPDFSDK_Annot*
pAnnot, FX_DWORD nFlag); | 272 const CPDF_Point& point); |
| 209 | 273 virtual FX_BOOL Annot_OnLButtonDblClk(CPDFSDK_PageView* pPageView, |
| 210 » virtual CPDF_Rect» » » Annot_OnGetViewBBox(CPDFSDK_Page
View *pPageView, CPDFSDK_Annot* pAnnot); | 274 CPDFSDK_Annot* pAnnot, |
| 211 » virtual FX_BOOL»» » » Annot_OnHitTest(CPDFSDK_PageView
*pPageView, CPDFSDK_Annot* pAnnot, const CPDF_Point& point); | 275 FX_DWORD nFlags, |
| 212 | 276 const CPDF_Point& point); |
| 213 private: | 277 |
| 214 » IPDFSDK_AnnotHandler*» » » GetAnnotHandler(const CFX_ByteSt
ring& sType) const; | 278 virtual FX_BOOL Annot_OnMouseMove(CPDFSDK_PageView* pPageView, |
| 215 » CPDFSDK_Annot*» » » » GetNextAnnot(CPDFSDK_Annot* pSDK
Annot,FX_BOOL bNext); | 279 CPDFSDK_Annot* pAnnot, |
| 216 private: | 280 FX_DWORD nFlags, |
| 217 » CBA_AnnotHandlerArray» » m_Handlers; | 281 const CPDF_Point& point); |
| 218 » CFX_MapByteStringToPtr» » m_mapType2Handler; | 282 virtual FX_BOOL Annot_OnMouseWheel(CPDFSDK_PageView* pPageView, |
| 219 » CPDFDoc_Environment*» » m_pApp; | 283 CPDFSDK_Annot* pAnnot, |
| 284 FX_DWORD nFlags, |
| 285 short zDelta, |
| 286 const CPDF_Point& point); |
| 287 virtual FX_BOOL Annot_OnRButtonDown(CPDFSDK_PageView* pPageView, |
| 288 CPDFSDK_Annot* pAnnot, |
| 289 FX_DWORD nFlags, |
| 290 const CPDF_Point& point); |
| 291 virtual FX_BOOL Annot_OnRButtonUp(CPDFSDK_PageView* pPageView, |
| 292 CPDFSDK_Annot* pAnnot, |
| 293 FX_DWORD nFlags, |
| 294 const CPDF_Point& point); |
| 295 |
| 296 virtual FX_BOOL Annot_OnChar(CPDFSDK_Annot* pAnnot, |
| 297 FX_DWORD nChar, |
| 298 FX_DWORD nFlags); |
| 299 virtual FX_BOOL Annot_OnKeyDown(CPDFSDK_Annot* pAnnot, |
| 300 int nKeyCode, |
| 301 int nFlag); |
| 302 virtual FX_BOOL Annot_OnKeyUp(CPDFSDK_Annot* pAnnot, int nKeyCode, int nFlag); |
| 303 |
| 304 virtual FX_BOOL Annot_OnSetFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag); |
| 305 virtual FX_BOOL Annot_OnKillFocus(CPDFSDK_Annot* pAnnot, FX_DWORD nFlag); |
| 306 |
| 307 virtual CPDF_Rect Annot_OnGetViewBBox(CPDFSDK_PageView* pPageView, |
| 308 CPDFSDK_Annot* pAnnot); |
| 309 virtual FX_BOOL Annot_OnHitTest(CPDFSDK_PageView* pPageView, |
| 310 CPDFSDK_Annot* pAnnot, |
| 311 const CPDF_Point& point); |
| 312 |
| 313 private: |
| 314 IPDFSDK_AnnotHandler* GetAnnotHandler(const CFX_ByteString& sType) const; |
| 315 CPDFSDK_Annot* GetNextAnnot(CPDFSDK_Annot* pSDKAnnot, FX_BOOL bNext); |
| 316 |
| 317 private: |
| 318 CBA_AnnotHandlerArray m_Handlers; |
| 319 CFX_MapByteStringToPtr m_mapType2Handler; |
| 320 CPDFDoc_Environment* m_pApp; |
| 220 }; | 321 }; |
| 221 | 322 |
| 222 typedef int (*AI_COMPARE) (CPDFSDK_Annot* p1, CPDFSDK_Annot* p2); | 323 typedef int (*AI_COMPARE)(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2); |
| 223 | 324 |
| 224 class CPDFSDK_AnnotIterator | 325 class CPDFSDK_AnnotIterator { |
| 225 { | 326 public: |
| 226 public: | 327 CPDFSDK_AnnotIterator(CPDFSDK_PageView* pPageView, |
| 227 CPDFSDK_AnnotIterator(CPDFSDK_PageView * pPageView, FX_BOOL bReverse, | 328 FX_BOOL bReverse, |
| 228 » » FX_BOOL bIgnoreTopmost=FALSE,FX_BOOL bCircle=FALSE,CFX_PtrArray*
pList=NULL); | 329 FX_BOOL bIgnoreTopmost = FALSE, |
| 229 virtual ~CPDFSDK_AnnotIterator() { } | 330 FX_BOOL bCircle = FALSE, |
| 230 | 331 CFX_PtrArray* pList = NULL); |
| 231 » virtual CPDFSDK_Annot*» Next (const CPDFSDK_Annot* pCurrent) ; | 332 virtual ~CPDFSDK_AnnotIterator() {} |
| 232 » virtual CPDFSDK_Annot*» Prev (const CPDFSDK_Annot* pCurrent) ; | 333 |
| 233 » virtual CPDFSDK_Annot*» Next(int& index ) ; | 334 virtual CPDFSDK_Annot* Next(const CPDFSDK_Annot* pCurrent); |
| 234 » virtual CPDFSDK_Annot*» Prev(int& index ) ; | 335 virtual CPDFSDK_Annot* Prev(const CPDFSDK_Annot* pCurrent); |
| 235 » virtual int Count(){return m_pIteratorAnnotList.GetSize();} | 336 virtual CPDFSDK_Annot* Next(int& index); |
| 236 | 337 virtual CPDFSDK_Annot* Prev(int& index); |
| 237 » virtual FX_BOOL InitIteratorAnnotList(CPDFSDK_PageView * pPageVi
ew,CFX_PtrArray* pList=NULL); | 338 virtual int Count() { return m_pIteratorAnnotList.GetSize(); } |
| 238 | 339 |
| 239 » void» » » » » InsertSort(CFX_PtrArray &arrayLi
st, AI_COMPARE pCompare); | 340 virtual FX_BOOL InitIteratorAnnotList(CPDFSDK_PageView* pPageView, |
| 240 | 341 CFX_PtrArray* pList = NULL); |
| 241 protected: | 342 |
| 242 » CPDFSDK_Annot*» NextAnnot (const CPDFSDK_Annot* pCurrent) ; | 343 void InsertSort(CFX_PtrArray& arrayList, AI_COMPARE pCompare); |
| 243 » CPDFSDK_Annot*» PrevAnnot (const CPDFSDK_Annot* pCurrent) ; | 344 |
| 244 » CPDFSDK_Annot*» NextAnnot(int& index ) ; | 345 protected: |
| 245 » CPDFSDK_Annot*» PrevAnnot(int& index ) ; | 346 CPDFSDK_Annot* NextAnnot(const CPDFSDK_Annot* pCurrent); |
| 246 | 347 CPDFSDK_Annot* PrevAnnot(const CPDFSDK_Annot* pCurrent); |
| 247 » CFX_PtrArray» m_pIteratorAnnotList; | 348 CPDFSDK_Annot* NextAnnot(int& index); |
| 248 » FX_BOOL»» » m_bReverse; | 349 CPDFSDK_Annot* PrevAnnot(int& index); |
| 249 » FX_BOOL m_bIgnoreTopmost; | 350 |
| 250 » FX_BOOL m_bCircle; | 351 CFX_PtrArray m_pIteratorAnnotList; |
| 352 FX_BOOL m_bReverse; |
| 353 FX_BOOL m_bIgnoreTopmost; |
| 354 FX_BOOL m_bCircle; |
| 251 }; | 355 }; |
| 252 | 356 |
| 253 #endif // FPDFSDK_INCLUDE_FSDK_ANNOTHANDLER_H_ | 357 #endif // FPDFSDK_INCLUDE_FSDK_ANNOTHANDLER_H_ |
| OLD | NEW |