All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Callback.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------------------
2 // Copyright (c) 2001-2018 by PDFTron Systems Inc. All Rights Reserved.
3 // Consult legal.txt regarding legal and license information.
4 //---------------------------------------------------------------------------------------
5 #ifndef PDFTRON_H_CPPPDFCallback
6 #define PDFTRON_H_CPPPDFCallback
7 
8 #ifdef SWIG
9 
10 #include <C/Common/TRN_Types.h>
11 #include <Common/BasicTypes.h>
12 #include <PDF/Selection.h>
13 
14 namespace pdftron {
15  namespace PDF {
16 
25 class Callback
26 {
27 public:
28  Callback() {}
29  virtual ~Callback() {
30  }
31 
32 // PDFView Callbacks
33  virtual void RenderBeginEventProc(){}
34 
35  static void StaticRenderBeginEventProc(void* data)
36  {
37  Callback* cb = (Callback*) data;
38  cb->RenderBeginEventProc();
39  }
40 
41  virtual void RenderFinishEventProc(bool cancelled){}
42 
43  static void StaticRenderFinishEventProc(void* data, bool cancelled)
44  {
45  Callback* cb = (Callback*) data;
46  cb->RenderFinishEventProc(cancelled);
47  }
48 
49  virtual void ErrorReportProc (const char* message) {}
50 
51  static void StaticErrorReportProc (const char* message, void* data)
52  {
53  Callback* cb = (Callback*) data;
54  cb->ErrorReportProc(message);
55  }
56 
57  virtual void CurrentPageProc(int current_page, int num_pages) {}
58 
59  static void StaticCurrentPageProc(int current_page, int num_pages, void* data)
60  {
61  Callback* cb = (Callback*) data;
62  cb->CurrentPageProc(current_page, num_pages);
63  }
64 
65  virtual void JavaScriptEventProc(const char* event_type, const char* json) {}
66 
67  static void StaticJavaScriptEventProc(const char* event_type, const char* json, void* data)
68  {
69  Callback* cb= (Callback*) data;
70  cb->JavaScriptEventProc(event_type,json);
71  }
72 
73  virtual void CurrentZoomProc(double curr_zoom_proc) {}
74 
75  static void StaticCurrentZoomProc(double curr_zoom_proc, void* data)
76  {
77  Callback* cb = (Callback*) data;
78  cb->CurrentZoomProc(curr_zoom_proc);
79  }
80 
81  virtual void ThumbAsyncHandler(int page_num, bool was_thumb_found, const char* thumb_buf, int thumb_width, int thumb_height) {}
82 
83  static void StaticThumbAsyncHandler(int page_num, bool was_thumb_found, const char* thumb_buf, int thumb_width, int thumb_height, void* custom_data)
84  {
85  Callback* cb = (Callback*) custom_data;
86  cb->ThumbAsyncHandler(page_num, was_thumb_found, thumb_buf, thumb_width, thumb_height);
87  }
88 
89  virtual void RequestRenderInWorkerThread() {}
90 
91  static void StaticRequestRenderInWorkerThread(void* custom_data)
92  {
93  Callback* cb = (Callback*) custom_data;
94  cb->RequestRenderInWorkerThread();
95  }
96 
97  virtual void FindTextHandler(bool success, PDF::Selection selection) {}
98 
99  static void StaticFindTextHandler(bool success, PDF::Selection selection, void* custom_data)
100  {
101  Callback* cb = (Callback*) custom_data;
102  cb->FindTextHandler(success, selection);
103  }
104 
105  virtual void CreateTileProc(
106  char* buffer, int originX, int originY, int width, int height,
107  int pagNum, long long cellNumber,
108  bool finalRender, bool predictionRender,
109  int tilesRemaining, bool firstTile,
110  int canvasWidth, int canvasHeight, int cellSideLength, int cellPerRow, int cellPerCol,
111  int thumbnailId
112  ) { }
113 
114  static void StaticCreateTileProc(
115  void* customData,
116  char* buffer, int originX, int originY, int width, int height,
117  int pageNum, long long cellNumber,
118  bool finalRender, bool predictionRender,
119  int tilesRemaining, bool firstTile,
120  int canvasWidth, int canvasHeight, int cellSideLength, int cellPerRow, int cellPerCol,
121  int thumbnailId
122  )
123  {
124  Callback* cb = (Callback*) customData;
125  cb->CreateTileProc(
126  buffer, originX, originY, width, height,
127  pageNum, cellNumber,
128  finalRender, predictionRender,
129  tilesRemaining, firstTile,
130  canvasWidth, canvasHeight, cellSideLength, cellPerRow, cellPerCol,
131  thumbnailId
132  );
133  }
134 
135  /* deluxe start */
136 
137 virtual void DeluxeCreateTileProc(
138  char* buffer, unsigned int width, unsigned int height, unsigned int stride,
139  unsigned int page_num, UInt64 x_page_loc, UInt64 y_page_loc,
140  unsigned int zoomed_page_width, unsigned int zoomed_page_height,
141  unsigned int tile_id, unsigned int x_in_page, unsigned int y_in_page,
142  int canvas_id, int remaining_tiles, int tile_type,
143  int sequence_number
144  ) { }
145 
146  static void StaticDeluxeCreateTileProc(
147  void* me,
148  char* buffer, unsigned int width, unsigned int height, unsigned int stride,
149  unsigned int page_num, UInt64 x_page_loc, UInt64 y_page_loc,
150  unsigned int zoomed_page_width, unsigned int zoomed_page_height,
151  unsigned int tile_id, unsigned int x_in_page, unsigned int y_in_page,
152  int canvas_id, int remaining_tiles, int tile_type,
153  int sequence_number
154  )
155  {
156  Callback* cb = (Callback*) me;
157  cb->DeluxeCreateTileProc(
158  buffer, width, height, stride,
159  page_num, x_page_loc, y_page_loc,
160  zoomed_page_width, zoomed_page_height,
161  tile_id, x_in_page, y_in_page,
162  canvas_id, remaining_tiles, tile_type,
163  sequence_number
164  );
165  }
166 
167  /* deluxe end */
168 
169  virtual void RemoveTileProc(int canvasNumber, Int64 cellNumber, int thumbnailId, int sequenceNumber) { }
170 
171  static void StaticRemoveTileProc(void* customData, int canvasNumber, Int64 cellNumber, int thumbnailId, int sequenceNumber)
172  {
173  Callback* cb = (Callback*) customData;
174  cb->RemoveTileProc(canvasNumber, cellNumber, thumbnailId, sequenceNumber);
175  }
176 
177  virtual void PartDownloadedProc(int dlType, TRN_PDFDoc doc, unsigned int pageNum, unsigned int objNum, const char* message) { }
178 
179  static void StaticPartDownloadedProc(int dlType, TRN_PDFDoc doc, unsigned int pageNum, unsigned int objNum, const char* message, void* customData)
180  {
181  Callback* cb = (Callback*) customData;
182  cb->PartDownloadedProc(dlType, doc, pageNum, objNum, message);
183  }
184 };
185 
186  }; // namespace PDF
187 }; // namespace pdftron
188 
189 #endif // SWIG
190 
191 #endif // PDFTRON_H_CPPPDFCallback
TRN_Int64 Int64
Definition: BasicTypes.h:20
TRN_UInt64 UInt64
Definition: BasicTypes.h:21

© 2002-2014 PDFTron Systems Inc.