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/auxtext.e,v 1.7 2011/05/16 16:21:56 william Exp $
19 */
20
21#ifndef _AUXTEXT_E_
22#define _AUXTEXT_E_
23
24extern GC	rotateGC;
25extern Pixmap	textBackingBitmap;
26extern Pixmap	textBackingBgBitmap;
27extern Pixmap	textBackingPixmap;
28extern int	textBackingBitmapW;
29extern int	textBackingBitmapH;
30extern int	doubleQuoteDoubleQuote;
31extern int	groupedTextEditable;
32
33extern struct SelRec	* outerSel, * innerSel;
34
35#ifdef _INCLUDE_FROM_AUXTEXT_C_
36#undef extern
37#define extern
38#endif /*_INCLUDE_FROM_AUXTEXT_C_*/
39
40extern void	GetStrSizeInfo ARGS_DECL((struct DynStrRec *, int *w,
41		                          int *lbearing, int *rbearing));
42extern int	GetNumberOfMiniLines ARGS_DECL((MiniLinesInfo*));
43extern int	IsHex ARGS_DECL((char, int*));
44extern int	InputOctalString ARGS_DECL((char *pszBuf, int *pnBufSize));
45extern int	CharIsCntrlINS ARGS_DECL((XKeyEvent*, KeySym));
46extern int	CharIsShiftINS ARGS_DECL((XKeyEvent*, KeySym));
47extern int	CharIsCntrlShiftINS ARGS_DECL((XKeyEvent*, KeySym));
48extern int	CharIsESC ARGS_DECL((XKeyEvent*, char*, KeySym, int *pnHasCh));
49extern int	CharIsCRorLF ARGS_DECL((XKeyEvent*, char*, KeySym,
50		                        int *pnHasCh));
51extern int	CharIsDEL ARGS_DECL((XKeyEvent*, char*, KeySym, int *pnHasCh));
52extern int	CharIsBS ARGS_DECL((XKeyEvent*, char*, KeySym, int *pnHasCh,
53                                    int LeftIsBS));
54extern int	CharIsBSorDEL ARGS_DECL((XKeyEvent*, char*, KeySym,
55		                         int *pnHasCh, int LeftIsBS));
56extern int	CharIsTAB ARGS_DECL((XKeyEvent*, char*, KeySym, int *pnHasCh));
57extern int	CharIsHome ARGS_DECL((XKeyEvent*, char*, KeySym, int *pnHasCh));
58extern int	CharIsEnd ARGS_DECL((XKeyEvent*, char*, KeySym, int *pnHasCh));
59extern int	CharIsCntrlSpace ARGS_DECL((XKeyEvent*, char*, KeySym,
60		                            int *pnHasCh));
61extern void	TranslateKeys ARGS_DECL((char *, KeySym *));
62extern void	SetTextOBBox ARGS_DECL((struct ObjRec *, int Just,
63		                        int W, int H, int LBearing,
64		                        int RightExtra, int Rotate));
65extern void	SetTextBBox ARGS_DECL((struct ObjRec *, int Just,
66		                       int W, int H, int LBearing,
67		                       int RightExtra, int Rotate));
68extern void	SetTextOrigBBoxes ARGS_DECL((struct ObjRec *, int Just,
69		                             int W, int H, int LBearing,
70		                             int RightExtra, int Rotate));
71extern int	UpdTextBBox ARGS_DECL((struct ObjRec *));
72extern int	PixelOnOff ARGS_DECL((XImage *, int Col, int Row, int Scale));
73extern void	MakeCachedTextBitmap ARGS_DECL((struct ObjRec *));
74extern void	CleanOuterInnerSel ARGS_DECL((void));
75extern void	UpdateOuterInnerSel ARGS_DECL((struct ObjRec *));
76extern struct ObjRec	* FindTextObj ARGS_DECL((int XOff, int YOff,
77			                         struct ObjRec *ObjToBeFound));
78extern void	UnlinkCurTextFromInnerSel ARGS_DECL((void));
79extern void	AdjAncestorsBBox ARGS_DECL((void));
80extern void	DumpTextObj ARGS_DECL((FILE *, struct ObjRec *));
81extern int	NeedToCacheMiniLines ARGS_DECL((MiniLinesInfo*));
82extern int	NeedsToCacheTextObj ARGS_DECL((struct ObjRec *));
83extern void	SaveString ARGS_DECL((FILE *, char *));
84extern void	SaveDoubleByteString ARGS_DECL((FILE *, char *));
85extern void	SaveMiniLines ARGS_DECL((FILE*, MiniLinesInfo*));
86extern void	CombineOverUnderYOffsets ARGS_DECL((int underline_y_offset,
87		                                    int overline_y_offset,
88		                                    int *pn_combined));
89extern void	UncombineOverUnderYOffsets ARGS_DECL((int combined,
90				int *pn_underline_y_offset,
91				int *pn_overline_y_offset));
92extern void	SaveTextObj ARGS_DECL((FILE *, struct ObjRec *));
93extern void	SaveHexString ARGS_DECL((FILE *, char *));
94extern char	* ReadString ARGS_DECL((char *));
95extern StrSegInfo	* CreateStrSegFromString ARGS_DECL((char*,
96			                                    StrBlockInfo*));
97extern StrBlockInfo	* CreateStrBlockFromString ARGS_DECL((char*,
98			                                      MiniLineInfo*));
99extern MiniLineInfo	* CreateMiniLineFromString ARGS_DECL((char*,
100			                                      MiniLineInfo**,
101			                                      MiniLineInfo**));
102extern struct ObjRec	* FormTextObjectFromFile ARGS_DECL((FILE *, int AbsX,
103			                                    int AbsBaselineY));
104extern void	RepaintFirstStr ARGS_DECL((struct ObjRec *, char *));
105
106#ifdef _INCLUDE_FROM_AUXTEXT_C_
107#undef extern
108#ifndef _NO_RECURSIVE_EXTERN
109#define extern extern
110#endif /* ~_NO_RECURSIVE_EXTERN */
111#endif /*_INCLUDE_FROM_AUXTEXT_C_*/
112
113#endif /*_AUXTEXT_E_*/
114