1/* 2 * Author: William Chia-Wei Cheng (bill.cheng@acm.org) 3 * 4 * Copyright (C) 2001-2009, William Chia-Wei Cheng. 5 * 6 * This file may be distributed under the terms of the Q Public License 7 * as defined by Trolltech AS of Norway and appearing in the file 8 * LICENSE.QPL included in the packaging of this file. 9 * 10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/xpixmap.e,v 1.23 2011/05/16 16:22:00 william Exp $ 19 */ 20 21#ifndef _XPIXMAP_E_ 22#define _XPIXMAP_E_ 23 24typedef struct tagXpmTransIndexInfo { 25 int has_transparent_pixel; 26 int found_transparent_pixel; 27 int transparent_pixel_index; 28 int *dump_index_to_color_index; 29} XpmTransIndexInfo; 30 31extern GC xpmGC; 32extern int newColormapUsed; 33extern int allocColorFailed; 34extern int myReadTransparentPixmap; 35extern int xpmIsArray; 36extern long xpmArraySeek; 37extern int xpmHasTooManyColorsForPrinting; 38extern int hasReadHexString; 39 40extern PngHeaderInfo gPngHeaderInfo; 41 42extern double rotatedSine[]; 43extern double rotatedCosine[]; 44 45#ifdef _INCLUDE_FROM_XPIXMAP_C_ 46#undef extern 47#define extern 48#endif /*_INCLUDE_FROM_XPIXMAP_C_*/ 49 50extern void ResetXPmErrorMessage ARGS_DECL((void)); 51extern void InitXPm ARGS_DECL((void)); 52extern void CleanUpXPm ARGS_DECL((void)); 53extern int IsLinkedJpegObj ARGS_DECL((struct ObjRec *)); 54extern int IsPpmTrueObj ARGS_DECL((int real_type, int ppm_data_compress, 55 char *ppm_data)); 56extern int ObjHasIndexedTransPixel ARGS_DECL((struct ObjRec *, 57 int *pn_index)); 58extern int ObjHasTrueColorTransPixel ARGS_DECL((struct ObjRec *, 59 unsigned char *puch_trans_color_r, 60 unsigned char *puch_trans_color_g, 61 unsigned char *puch_trans_color_b)); 62extern int ObjHasTransPixel ARGS_DECL((struct ObjRec *)); 63extern int BuildXPmBuckets ARGS_DECL((int NColors, int *Pixels, 64 int *DumpIndexToColorIndex, 65 int CharsPerPixel, char *ColorChr, 66 XpmTransIndexInfo*)); 67extern int XPmLookUp ARGS_DECL((int Pixel, int CharsPerPixel, 68 char *ColorChr, int *pnColorIndexReturn)); 69extern void MakeCachedPixmap ARGS_DECL((struct ObjRec *)); 70extern int ExtractPixmap ARGS_DECL((Pixmap, XImage*, Pixmap, XImage*, 71 int, int, int, int, Pixmap*, XImage**, 72 Pixmap*, XImage**)); 73extern struct ObjRec * CutXPixmap ARGS_DECL((struct ObjRec *ObjPtrToCut, 74 int *AbsX, int *AbsY, 75 int *AbsW, int *AbsH)); 76extern void CleanUpCachedColorsForPrinting ARGS_DECL((void)); 77extern void CacheColorsForPrinting ARGS_DECL((void)); 78extern int ConvertPpmTrueToPpm6 ARGS_DECL((char *ppm_data, 79 int ppm_datasize, 80 int ppm_data_compress, 81 char *tmp_ppm6_fname, 82 int tmp_ppm6_sz)); 83extern void DumpXPmObj ARGS_DECL((FILE *, struct ObjRec *)); 84extern int NeedsToCacheXPmObj ARGS_DECL((struct ObjRec *)); 85extern void RecolorXPmObj ARGS_DECL((struct ObjRec *, int color_index)); 86extern void DrawXPmObj ARGS_DECL((Window, int XOff, int YOff, 87 struct ObjRec *)); 88extern struct ObjRec * CreateXPmObj ARGS_DECL((int ImageW, int ImageH, 89 int W, int H, Pixmap pixmap, 90 XImage *image, Pixmap bitmap, 91 XImage *bitmap_image, 92 int NColors, 93 int CharsPerPixel, 94 int FirstPixelIsBg, 95 char *ColorChar, 96 char **ColorStr, 97 int *Pixels, char *Data)); 98extern void BreakUpXPixmap ARGS_DECL((struct ObjRec *, int ColsAndRows, 99 int W, int H)); 100extern void SaveXPmObj ARGS_DECL((FILE *, struct ObjRec *)); 101extern int PrTgifFindColorIndex ARGS_DECL((struct ObjRec *, char *Str)); 102extern int QuickFindColorIndex ARGS_DECL((struct ObjRec *, char *Str, 103 int *NewAlloc, int UseDefault)); 104extern int MyReadPixmapFile ARGS_DECL((char *FileName, int *ImageW, 105 int *ImageH, int *W, int *H, 106 Pixmap *pixmap, XImage **image, 107 Pixmap *bitmap, 108 XImage **bitmap_image, int *NColors, 109 int *CharsPerPixel, 110 int *FirstPixelIsBg, 111 char **ColorChar, char ***ColorStr, 112 int **Pixels, char **Data)); 113extern void ReadXPmObj ARGS_DECL((FILE *, char *Inbuf, struct ObjRec **)); 114extern void ReadJpegObj ARGS_DECL((FILE *, char *Inbuf, struct ObjRec **)); 115extern int SetupTrueColorInfo ARGS_DECL((TrueColorInfo*)); 116extern struct ObjRec * CreatePpmTrueObjFromFile ARGS_DECL((char *ppm_fname)); 117extern void ReadPpmTrueObj ARGS_DECL((FILE *, char *Inbuf, 118 struct ObjRec **)); 119extern void SetXPmPropMask ARGS_DECL((struct ObjRec *, long *plMask, 120 long *plSkip, 121 struct PropertiesRec *pProp)); 122extern void FreeXPmObj ARGS_DECL((struct ObjRec *)); 123 124#ifdef _INCLUDE_FROM_XPIXMAP_C_ 125#undef extern 126#ifndef _NO_RECURSIVE_EXTERN 127#define extern extern 128#endif /* ~_NO_RECURSIVE_EXTERN */ 129#endif /*_INCLUDE_FROM_XPIXMAP_C_*/ 130 131#endif /*_XPIXMAP_E_*/ 132