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 |