source: trunk/Lucide/SOURCE/plugins/ludoc/ludoc.cpp @ 142

Last change on this file since 142 was 126, checked in by Eugene Romanenko, 15 years ago

Prevent getLinkMapping() call on every redraw if no links on page.

File size: 13.5 KB
Line 
1
2/*
3 *  This file was generated by the SOM Compiler.
4 *  Generated using:
5 *     SOM incremental update: 2.24
6 */
7
8
9/* ***** BEGIN LICENSE BLOCK *****
10 * Version: CDDL 1.0/LGPL 2.1
11 *
12 * The contents of this file are subject to the COMMON DEVELOPMENT AND
13 * DISTRIBUTION LICENSE (CDDL) Version 1.0 (the "License"); you may not use
14 * this file except in compliance with the License. You may obtain a copy of
15 * the License at http://www.sun.com/cddl/
16 *
17 * Software distributed under the License is distributed on an "AS IS" basis,
18 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
19 * for the specific language governing rights and limitations under the
20 * License.
21 *
22 * The Initial Developer of the Original Code is
23 * Eugene Romanenko, netlabs.org.
24 * Portions created by the Initial Developer are Copyright (C) 2006
25 * the Initial Developer. All Rights Reserved.
26 *
27 * Contributor(s):
28 *
29 * Alternatively, the contents of this file may be used under the terms of
30 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
31 * in which case the provisions of the LGPL are applicable instead of those
32 * above. If you wish to allow use of your version of this file only under the
33 * terms of the LGPL, and not to allow others to use your version of this file
34 * under the terms of the CDDL, indicate your decision by deleting the
35 * provisions above and replace them with the notice and other provisions
36 * required by the LGPL. If you do not delete the provisions above, a recipient
37 * may use your version of this file under the terms of any one of the CDDL
38 * or the LGPL.
39 *
40 * ***** END LICENSE BLOCK ***** */
41
42
43
44/*
45 *  This file was generated by the SOM Compiler and Emitter Framework.
46 *  Generated using template emitter:
47 *      SOM Emitter emitxtm: 2.23.1.9
48 */
49
50#ifndef SOM_Module_ludoc_Source
51#define SOM_Module_ludoc_Source
52#endif
53#define LuDocument_Class_Source
54
55#include "ludoc.xih"
56
57
58unsigned _System LibMain( unsigned hmod, unsigned termination )
59{
60    if ( termination ) {
61        /* DLL is detaching from process */
62    } else {
63        /* DLL is attaching to process */
64    }
65    return( 1 );
66}
67
68
69extern "C" LuDocument * _System createObject()
70{
71    return new LuDocument;
72}
73
74extern "C" char * _System getSupportedExtensions()
75{
76    return "";
77}
78
79extern "C" char * _System getDescription()
80{
81    return "NULL plugin, abstract base class for Lucide plugins.";
82}
83
84
85/*
86 * SOM_Scope long  SOMLINK getBpp(LuDocument *somSelf,  Environment *ev)
87 */
88
89/*
90 * The prototype for getBpp was replaced by the following prototype:
91 */
92SOM_Scope short  SOMLINK getBpp(LuDocument *somSelf,  Environment *ev)
93{
94    // Abstract method does nothing
95    return 0;
96}
97
98SOM_Scope boolean  SOMLINK isScalable(LuDocument *somSelf,  Environment *ev)
99{
100    return FALSE;
101}
102
103
104SOM_Scope boolean  SOMLINK isFixedImage(LuDocument *somSelf, 
105                                         Environment *ev)
106{
107    return TRUE;
108}
109
110
111SOM_Scope boolean  SOMLINK isRotable(LuDocument *somSelf,  Environment *ev)
112{
113    return FALSE;
114}
115
116
117SOM_Scope long  SOMLINK getPageCount(LuDocument *somSelf,  Environment *ev)
118{
119    // Abstract method does nothing
120    return 0;
121}
122
123
124SOM_Scope void  SOMLINK getPageSize(LuDocument *somSelf,  Environment *ev,
125                                    long pagenum, double* width,
126                                    double* height)
127{
128    // Abstract method does nothing
129}
130
131
132SOM_Scope void  SOMLINK renderPageToPixbuf(LuDocument *somSelf,
133                                            Environment *ev,
134                                           long pagenum, long src_x,
135                                           long src_y, long src_width,
136                                           long src_height, double scale,
137                                           long rotation, LuPixbuf* pixbuf)
138{
139    // Abstract method does nothing
140}
141
142
143SOM_Scope boolean  SOMLINK isAsynchRenderingSupported(LuDocument *somSelf, 
144                                                       Environment *ev)
145{
146    return FALSE;
147}
148
149
150SOM_Scope void  SOMLINK renderPageToPixbufAsynch(LuDocument *somSelf, 
151                                                  Environment *ev, 
152                                                 long pagenum, 
153                                                 long src_x, 
154                                                 long src_y, 
155                                                 long src_width, 
156                                                 long src_height, 
157                                                 double scale, 
158                                                 long rotation, 
159                                                 LuPixbuf* pixbuf, 
160                                                 LuDocument_asynchCallbackFn fnd, 
161                                                 LuDocument_asynchCallbackFn fna, 
162                                                 somToken fndata)
163{
164    // Abstract method does nothing
165}
166
167
168SOM_Scope boolean  SOMLINK isRenderIntoPS(LuDocument *somSelf, 
169                                           Environment *ev)
170{
171    return FALSE;
172}
173
174SOM_Scope void  SOMLINK renderPageToPS(LuDocument *somSelf,  Environment *ev, 
175                                       long pagenum, long src_x, 
176                                       long src_y, long src_width, 
177                                       long src_height, double scale, 
178                                       long rotation, unsigned long hps, 
179                                       somMToken rect)
180{
181    // Abstract method does nothing
182}
183
184
185SOM_Scope boolean  SOMLINK isHaveText(LuDocument *somSelf,
186                                      Environment *ev)
187{
188    return FALSE;
189}
190
191
192SOM_Scope LuDocument_LuRectSequence*  SOMLINK getSelectionRectangles(LuDocument *somSelf,
193                                                                    Environment *ev,
194                                                                   long pagenum,
195                                                                   LuRectangle* selection)
196{
197    // Abstract method does nothing
198    return NULL;
199}
200
201
202SOM_Scope void  SOMLINK freeRectangles(Environment *ev,
203                                       LuDocument_LuRectSequence* rectangles)
204{
205    if ( rectangles != NULL )
206    {
207        if ( ( ( rectangles->_maximum != 0 ) ||
208               ( rectangles->_length != 0 ) ) &&
209                   ( rectangles->_buffer != NULL ) )
210        {
211            SOMFree( rectangles->_buffer );
212        }
213        SOMFree( rectangles );
214    }
215}
216
217
218SOM_Scope string  SOMLINK getText(LuDocument *somSelf,  Environment *ev,
219                                  long pagenum, LuRectangle* selection)
220{
221    // Abstract method does nothing
222    return NULL;
223}
224
225
226SOM_Scope boolean  SOMLINK isHaveLinks(LuDocument *somSelf,  Environment *ev)
227{
228    return FALSE;
229}
230
231
232SOM_Scope LuDocument_LuLinkMapSequence*  SOMLINK getLinkMapping(LuDocument *somSelf,
233                                                                 Environment *ev,
234                                                                long pagenum)
235{
236    // Abstract method, returns empty sequence
237    LuDocument_LuLinkMapSequence *mapping = NULL;
238    mapping = (LuDocument_LuLinkMapSequence *)SOMMalloc( sizeof( LuDocument_LuLinkMapSequence ) );
239    mapping->_maximum = 0;
240    mapping->_length = 0;
241    mapping->_buffer = NULL;
242    return mapping;
243}
244
245
246SOM_Scope void  SOMLINK freeLinkMapping(Environment *ev,
247                                        LuDocument_LuLinkMapSequence* mapping)
248{
249    if ( mapping != NULL )
250    {
251        if ( ( ( mapping->_maximum != 0 ) ||
252               ( mapping->_length != 0 ) ) &&
253                   ( mapping->_buffer != NULL ) )
254        {
255            for ( int i = 0; i < mapping->_length; i++ )
256            {
257                if ( mapping->_buffer[ i ].link.title != NULL ) {
258                    SOMFree( mapping->_buffer[ i ].link.title );
259                }
260                if ( mapping->_buffer[ i ].link.uri != NULL ) {
261                    SOMFree( mapping->_buffer[ i ].link.uri );
262                }
263            }
264
265            SOMFree( mapping->_buffer );
266        }
267        SOMFree( mapping );
268    }
269}
270
271
272SOM_Scope boolean  SOMLINK isSaveable(LuDocument *somSelf,  Environment *ev)
273{
274    return FALSE;
275}
276
277
278SOM_Scope boolean  SOMLINK saveAs(LuDocument *somSelf,  Environment *ev,
279                                  string filename)
280{
281    // Abstract method does nothing
282    return FALSE;
283}
284
285
286SOM_Scope boolean  SOMLINK isPostScriptExportable(LuDocument *somSelf,
287                                           Environment *ev)
288{
289    return FALSE;
290}
291
292
293SOM_Scope boolean  SOMLINK exportToPostScript(LuDocument *somSelf, 
294                                               Environment *ev, 
295                                              string filename, 
296                                              long first_page, 
297                                              long last_page, 
298                                              double width, double height, 
299                                              boolean* brkExport)
300{
301    // Abstract method does nothing
302    return FALSE;
303}
304
305
306SOM_Scope boolean  SOMLINK isHaveFontInfo(LuDocument *somSelf,
307                                           Environment *ev)
308{
309    return FALSE;
310}
311
312
313SOM_Scope LuDocument_LuFontInfoSequence*  SOMLINK getFontInfo(LuDocument *somSelf,
314                                                               Environment *ev)
315{
316    // Abstract method does nothing
317    return NULL;
318}
319
320
321SOM_Scope void  SOMLINK freeFontInfo(Environment *ev,
322                                     LuDocument_LuFontInfoSequence* fonts)
323{
324    if ( fonts != NULL )
325    {
326        if ( ( ( fonts->_maximum != 0 ) ||
327               ( fonts->_length != 0 ) ) &&
328                   ( fonts->_buffer != NULL ) )
329        {
330            for ( int i = 0; i < fonts->_length; i++ )
331            {
332                if ( fonts->_buffer[ i ].name != NULL ) {
333                    SOMFree( fonts->_buffer[ i ].name );
334                }
335                if ( fonts->_buffer[ i ].type != NULL ) {
336                    SOMFree( fonts->_buffer[ i ].type );
337                }
338            }
339
340            SOMFree( fonts->_buffer );
341        }
342        SOMFree( fonts );
343    }
344}
345
346
347SOM_Scope boolean  SOMLINK isHaveIndex(LuDocument *somSelf,  Environment *ev)
348{
349    return FALSE;
350}
351
352
353SOM_Scope LuIndexNode*  SOMLINK getIndex(LuDocument *somSelf,
354                                          Environment *ev)
355{
356    // Abstract method does nothing
357    return NULL;
358}
359
360
361SOM_Scope LuDocumentInfo*  SOMLINK getDocumentInfo(LuDocument *somSelf,
362                                                    Environment *ev)
363{
364    LuDocumentInfo *info = (LuDocumentInfo *)SOMMalloc( sizeof( LuDocumentInfo ) );
365    memset( info, 0, sizeof( LuDocumentInfo ) );
366    return info;
367}
368
369
370SOM_Scope void  SOMLINK freeDocumentInfo(Environment *ev, LuDocumentInfo* info)
371{
372    if ( info != NULL )
373    {
374        if ( info->fields_mask & LU_DOCUMENT_INFO_TITLE ) {
375            SOMFree( info->title );
376        }
377        if ( info->fields_mask & LU_DOCUMENT_INFO_FORMAT ) {
378            SOMFree( info->format );
379        }
380        if ( info->fields_mask & LU_DOCUMENT_INFO_AUTHOR ) {
381            SOMFree( info->author );
382        }
383        if ( info->fields_mask & LU_DOCUMENT_INFO_SUBJECT ) {
384            SOMFree( info->subject );
385        }
386        if ( info->fields_mask & LU_DOCUMENT_INFO_KEYWORDS ) {
387            SOMFree( info->keywords );
388        }
389        if ( info->fields_mask & LU_DOCUMENT_INFO_CREATOR ) {
390            SOMFree( info->creator );
391        }
392        if ( info->fields_mask & LU_DOCUMENT_INFO_PRODUCER ) {
393            SOMFree( info->producer );
394        }
395
396        SOMFree( info );
397    }
398}
399
400
401SOM_Scope boolean  SOMLINK getThumbnailSize(LuDocument *somSelf,
402                                             Environment *ev,
403                                            long pagenum, 
404                                            short suggested_width,
405                                            short* width, short* height)
406{
407    // Abstract method does nothing
408    return FALSE;
409}
410
411
412SOM_Scope LuPixbuf*  SOMLINK getThumbnail(LuDocument *somSelf,
413                                           Environment *ev, long pagenum,
414                                          short suggested_width)
415{
416    // Abstract method does nothing
417    return NULL;
418}
419
420
421SOM_Scope LuDocument_LuRectSequence*  SOMLINK searchText(LuDocument *somSelf, 
422                                                          Environment *ev, 
423                                                         long pagenum, 
424                                                         string text, 
425                                                         boolean caseSensitive )
426{
427    // Abstract method does nothing
428    return NULL;
429}
430
431
432SOM_Scope void SOMLINK somDefaultInit(LuDocument *somSelf, som3InitCtrl* ctrl)
433{
434    somInitCtrl globalCtrl;
435    somBooleanVector myMask;
436    LuDocument_BeginInitializer_somDefaultInit;
437    LuDocument_Init_SOMObject_somDefaultInit(somSelf, ctrl);
438}
439
440
441SOM_Scope boolean  SOMLINK loadFile(LuDocument *somSelf,  Environment *ev,
442                                    string filename, string password,
443                                    string* error)
444{
445    // Abstract method does nothing
446    return FALSE;
447}
448
Note: See TracBrowser for help on using the repository browser.