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