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/font.e,v 1.20 2011/05/16 16:21:57 william Exp $ 19 */ 20 21#ifndef _FONT_E_ 22#define _FONT_E_ 23 24#define CONVERT_TO_UTF8 (TRUE) 25#define CONVERT_FROM_UTF8 (FALSE) 26 27extern XFontStruct * canvasFontPtr; 28extern int canvasFontHeight; 29extern int canvasFontAsc; 30extern int canvasFontDes; 31extern int canvasFontDirection; 32extern int canvasFontDontReencode; 33extern int canvasFontDoubleByte; 34extern int canvasFontDoubleByteModBytes; 35extern int canvasFontDoubleByteVertical; 36extern int canvasFontSize; 37extern int canvasFontIsFaked; 38extern int canvasLineAsc; 39extern int canvasLineDes; 40 41extern XFontStruct * rulerFontPtr; 42extern int rulerFontWidth; 43extern int rulerFontHeight; 44extern int rulerFontAsc; 45extern int rulerFontDes; 46 47extern XFontStruct * defaultFontPtr; 48extern int defaultFontWidth; 49extern int defaultFontHeight; 50extern int defaultFontAsc; 51extern int defaultFontDes; 52 53extern XFontStruct * menuFontPtr; 54extern int menuFontWidth; 55extern int menuFontHeight; 56extern int menuFontAsc; 57extern int menuFontDes; 58 59#ifdef ENABLE_NLS 60extern XFontSet menuFontSet; 61extern XFontSet msgFontSet; 62extern XFontSet boldMsgFontSet; 63extern XFontSet italicMsgFontSet; 64extern XFontSet boldItalicMsgFontSet; 65#else /* ~ENABLE_NLS */ 66extern char *menuFontSet; 67extern char *msgFontSet; 68extern char *boldMsgFontSet; 69extern char *italicMsgFontSet; 70extern char *boldItalicMsgFontSet; 71#endif /* ENABLE_NLS */ 72extern int boldMsgFontDoubleByte; 73 74extern XFontStruct * boldMsgFontPtr; 75extern int boldMsgFontWidth; 76extern int boldMsgFontHeight; 77extern int boldMsgFontAsc; 78extern int boldMsgFontDes; 79 80extern XFontStruct * italicMsgFontPtr; 81extern int italicMsgFontWidth; 82extern int italicMsgFontHeight; 83extern int italicMsgFontAsc; 84extern int italicMsgFontDes; 85 86extern XFontStruct * boldItalicMsgFontPtr; 87extern int boldItalicMsgFontWidth; 88extern int boldItalicMsgFontHeight; 89extern int boldItalicMsgFontAsc; 90extern int boldItalicMsgFontDes; 91 92extern XFontStruct * msgFontPtr; 93extern int msgFontWidth; 94extern int msgFontHeight; 95extern int msgFontAsc; 96extern int msgFontDes; 97 98extern int curFont; 99extern int curSzUnit, curRealSzUnit; 100extern int curStyle; 101extern int textRotation; 102extern int curUnderlineOn; 103extern int curOverlineOn; 104 105extern int actualCurFont; 106extern int actualCurSzUnit; 107extern int actualCurStyle; 108 109extern int curUnderlineYOffset; 110extern int curOverlineYOffset; 111 112extern int changePropertiesOfAttrs; 113 114extern char * * fontMenuStr; 115extern char * defFontMenuStr[]; 116extern char * * sizeMenuStr; 117extern int * fontSzUnits; 118extern int numFonts; 119extern int numFontSizes; 120 121extern int changingFontSizeFromRead; 122extern int allowFontFaceSubstitution; 123 124extern char cmdLineDontReencode[]; 125 126extern int defaultFontSize; 127 128extern int showFontSizeInPoints; 129 130extern int substitutedFont; 131extern int substitutedFontSzUnit; 132 133extern int defaultSingleByteFont; 134 135extern int gnNumPSFontAliases; 136extern KeyValInfo *gaPSFontAliases; 137 138#ifdef _INCLUDE_FROM_FONT_C_ 139#undef extern 140#define extern 141#endif /*_INCLUDE_FROM_FONT_C_*/ 142 143extern int IsFontDoubleByte ARGS_DECL((int font_index)); 144extern int IsDoubleByteFontVertical ARGS_DECL((int font_index, int style)); 145extern int CanConvertUTF8ToFont ARGS_DECL((int font_index)); 146extern int CanConvertFontToUTF8 ARGS_DECL((int font_index)); 147extern int ConvertToOrFromUTF8 ARGS_DECL((int which, int font_index, 148 char **ppsz_cut_buffer)); 149extern int GetInitialFont ARGS_DECL((void)); 150extern int SzUnitToFontSize ARGS_DECL((int sz_unit)); 151extern int SzUnitToPointSize ARGS_DECL((int sz_unit)); 152 153extern int BadDoubleByteString ARGS_DECL((char *pszStr, char *pszZero)); 154extern char * GetPrevChar ARGS_DECL((int nDoubleByte, char *pszStr, 155 char *pszCur)); 156extern char * GetShowFontChar ARGS_DECL((int FontIndex)); 157extern void GetCurFontInfoStr ARGS_DECL((char *buf, int buf_sz)); 158extern XFontStruct *LoadAFontByName ARGS_DECL((char *font_name, 159 int double_byte, 160 int can_debug)); 161extern void GetPSFontStr ARGS_DECL((int FontIndex, int Style, char *)); 162extern XFontStruct *LoadASymbolFont ARGS_DECL((int font_size)); 163extern void MapAliasedPSFontName ARGS_DECL((char *buf, int buf_sz)); 164extern void SetTextExtentsInfo ARGS_DECL((TextExtentsInfo*)); 165extern struct StrRec *SegmentDoubleByteString ARGS_DECL((char*)); 166extern void MyTextExtents ARGS_DECL((XFontStruct *xfs, char *pszStr, 167 int nLen, XCharStruct *pxcs)); 168extern int MyTextWidth ARGS_DECL((XFontStruct *xfs, char *pszStr, 169 int nLen)); 170extern void MyDrawString ARGS_DECL((Display*, Drawable, GC gc, int nDepth, 171 int x, int y, char *pszStr, int nLen)); 172extern Pixmap PaintVertChar ARGS_DECL((TextExtentsInfo*, int nRotate)); 173extern int ValidCharCode ARGS_DECL((char *)); 174extern char * CharCodeTranslate ARGS_DECL((char *)); 175extern void SaveDontReencode ARGS_DECL((FILE*)); 176extern int ReadDontReencode ARGS_DECL((char*)); 177extern void SavePSFontAliases ARGS_DECL((FILE*)); 178extern void SaveDoubleByteModBytes ARGS_DECL((FILE*)); 179extern void SavePSFontNeedCharSubs ARGS_DECL((FILE*)); 180extern void SavePSCharSubs ARGS_DECL((FILE*)); 181extern int ReadPSFontAliases ARGS_DECL((FILE*, char*)); 182extern int ReadPSFontNeedCharSubs ARGS_DECL((FILE*, char*)); 183extern int ReadPSCharSubs ARGS_DECL((FILE*, char*)); 184extern void PrepareMiniLines ARGS_DECL((MiniLinesInfo*)); 185extern void PrepareEightBitFontInfo ARGS_DECL((void)); 186extern int NeedEncode ARGS_DECL((char *FontName, int FontIndex, 187 int Style)); 188extern int GetFontIndex ARGS_DECL((char *FontStr, int Style, 189 int MustFind)); 190extern int GetFontAndStyle ARGS_DECL((char *FontStr, int *pnFont, 191 int *pnStyle, int MustFind)); 192extern int GetFontIndexFromPSFontAndStyle ARGS_DECL((char *FontStr, 193 int Style, 194 int *pnDoubleByte, 195 int *pnModified)); 196extern void CleanUpDontReencode ARGS_DECL((void)); 197extern void InitDontReencode ARGS_DECL((char*)); 198extern void InitPSFontCharSubs ARGS_DECL((void)); 199extern void PrTgifInitBaseFonts ARGS_DECL((void)); 200extern int GetCurSzUnit ARGS_DECL((void)); 201extern void PutCurSzUnit ARGS_DECL((int sz_unit)); 202extern void GetCurFontMsg ARGS_DECL((char*, StrSegInfo*)); 203extern void CurFontMsg ARGS_DECL((int nShowInMsgWindow, 204 int nShowInStatusWindow, StrSegInfo*)); 205extern void DumpReEncodeVector ARGS_DECL((FILE*, char *vec_prefix, 206 char *vec_suffix, 207 short *flag_ptr)); 208extern void DumpEightBitFontInfo ARGS_DECL((FILE*)); 209 210extern int GetCompatibleSize ARGS_DECL((int FontDPI, int FontSize)); 211extern int SetCanvasFont ARGS_DECL((void)); 212extern int CurFontCheck ARGS_DECL((void)); 213extern int TrySetCanvasFont ARGS_DECL((int font, int style, int size, 214 int must_find_requested, 215 int *pnGotRequested)); 216extern void ObjFontInfoToCurFontInfo ARGS_DECL((struct TextRec *)); 217extern void StrSegInfoToCurFontInfo ARGS_DECL((StrSegInfo*)); 218extern void InitFonts ARGS_DECL((void)); 219extern void SaveCurFont ARGS_DECL((void)); 220extern void RestoreCurFont ARGS_DECL((void)); 221extern struct PushedFontRec *GetTopFontStk ARGS_DECL((void)); 222extern struct PushedFontRec *PushCurFont ARGS_DECL((void)); 223extern void PopCurFont ARGS_DECL((void)); 224extern void SetPushedFontValue ARGS_DECL((int Which, int Value)); 225extern int ChangeMiniLinesFontProp ARGS_DECL((MiniLinesInfo*, int which, 226 int value)); 227extern int ChangeObjTextStyle ARGS_DECL((struct ObjRec *, int Style)); 228extern void ChangeFontStyle ARGS_DECL((int Style)); 229extern int ChangeObjTextJust ARGS_DECL((struct ObjRec *, int Just)); 230extern void ChangeFontJust ARGS_DECL((int Just)); 231extern int ChangeObjTextUnderline ARGS_DECL((struct ObjRec *, 232 int Underline)); 233extern void ChangeFontUnderline ARGS_DECL((int Underline)); 234extern int ChangeObjTextOverline ARGS_DECL((struct ObjRec *, 235 int Overline)); 236extern void ChangeFontOverline ARGS_DECL((int Overline)); 237extern int RefreshFontStyleMenu ARGS_DECL((TgMenu*)); 238extern TgMenu *CreateFontStyleMenu ARGS_DECL((TgMenu*, int X, int Y, 239 TgMenuInfo*, 240 int status_str_xlated)); 241extern int StyleMenu ARGS_DECL((int X, int Y, int TrackMenubar)); 242extern int GetSizeMenuIndex ARGS_DECL((void)); 243extern int ChangeObjTextSzUnit ARGS_DECL((struct ObjRec *, int sz_unit)); 244extern void ChangeFontSize ARGS_DECL((int SizeIndex)); 245extern int RefreshFontSizeMenu ARGS_DECL((TgMenu*)); 246extern TgMenu *CreateFontSizeMenu ARGS_DECL((TgMenu*, int X, int Y, 247 TgMenuInfo*, 248 int status_str_xlated)); 249extern int SizeMenu ARGS_DECL((int X, int Y, int TrackMenubar)); 250extern int ChangeObjTextFont ARGS_DECL((struct ObjRec *, int FontIndex)); 251extern int ChangeFont ARGS_DECL((int FontIndex, int ForceNewChoice)); 252extern int RefreshFontMenu ARGS_DECL((TgMenu*)); 253extern TgMenu *CreateFontMenu ARGS_DECL((TgMenu*, int X, int Y, TgMenuInfo*, 254 int status_str_xlated)); 255extern int FontMenu ARGS_DECL((int X, int Y, int TrackMenubar)); 256extern int ChangeObjVSpace ARGS_DECL((struct ObjRec *, int VSpace)); 257extern void ChangeVSpace ARGS_DECL((int VSpace)); 258extern void ChangeAllSelRealSzUnit ARGS_DECL((int sz_unit, int HighLight)); 259extern void SetSelFontSize ARGS_DECL((char*)); 260extern void CleanUpFonts ARGS_DECL((void)); 261 262extern void VerifyCompatibleFontIndex ARGS_DECL((int*)); 263extern void GetCompatibleFontName ARGS_DECL((int old_font_index, int style, 264 char *font_str)); 265 266#ifdef _INCLUDE_FROM_FONT_C_ 267#undef extern 268#ifndef _NO_RECURSIVE_EXTERN 269#define extern extern 270#endif /* ~_NO_RECURSIVE_EXTERN */ 271#endif /*_INCLUDE_FROM_FONT_C_*/ 272 273#endif /*_FONT_E_*/ 274