/* * _VF.h * * Programmmed by Hirotsugu Kakugawa, Hiroshima University * E-Mail: h.kakugawa@computer.org * * Edition History * 28 Dec 1993 Added VF_GetOutline(). * 19 Jan 1994 Added font class "VF_FONT_TT". (by I. Matsuda) * 20 Jan 1994 Added VF_GetOutline2(). * 15 May 1995 Added VFFM_*(). * 18 Nov 1995 Added Null font class. * 21 Nov 1995 Added BDF font class. * 19 Feb 1996 Added GetCharSet() and GetEnc() to FontObj structure. (WL) * 1 Apr 1996 Added HBF font class. (WL) * 6 Sep 1999 Added a check if TRUE/FALSE is predefied or not. */ /* This file is part of VFlib * * Copyright (C) 1993-1998 Hirotsugu KAKUGAWA. All rights reserved. * * This file is part of the VFlib Library. This library is free * software; you can redistribute it and/or modify it under the terms of * the GNU Library General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your * option) any later version. This library is distributed in the hope * that it will be useful, but WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Library General Public License for more details. * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __VFLIB__VF_H__ #define __VFLIB__VF_H__ /* Font Class ID */ #define VF_FONT_NULL 0 #define VF_FONT_SONY 1 #define VF_FONT_ZEIT 2 #define VF_FONT_JG 3 #define VF_FONT_TT 4 #define VF_FONT_BDF 5 #define VF_FONT_HBF 6 #define VF_FONT_FONTWAVE 7 #define VF_FONT_FREETYPE 8 #define VF_FONT_FREETYPE_GBK 10 #define VF_FONT_COMPOUND 20 #define VF_FONT_BITOP 21 #define VF_FONT_NULLFONT 22 /* temporary use */ #define VF_FONT_COMPOUND2 23 /*---------------------------------------------------*/ #if !defined(TRUE) && !defined(FALSE) # define TRUE (0==0) # define FALSE (0==1) #endif #define Public /**/ #define Const /**/ #define Private static #define Import extern typedef long FILE_Port; #define NULL_PORT (-1) /* Font Object Structure */ struct s_font_obj { /* Class ID */ int ClassID; /* Itself */ struct s_font_obj *Self; /* The number of Objects that share this object */ int LinkCount; /* Methods */ int (*OpenFont)(); int (*CloseFont)(); int (*GetBitmap)(); long* (*GetOutline)(); long* (*GetOutline2)(); int (*DrawOutline)(); int (*FreeOutline)(); int (*Link)(); int (*Unlink)(); int (*GetCharSet)(); int (*GetEnc)(); /* Class Dependent Local Data */ long Locals; }; typedef struct s_font_obj FontObj; /* Font Class Table */ struct s_font_class_table { char *ClassName; int FontClass; FontObj *(*ObjCreater)(); }; typedef struct s_font_class_table FontClassTable; /* Font Table */ struct s_font_table { FontObj *Fobj; /* Font Object */ char *Fentry; /* Font Entry Name */ char *Fname; /* Font Name */ }; typedef struct s_font_table FontTable; struct s_fm_tbl { int opened; union { FILE *stream; int fd; } uu; char *path; int (*open_fun)(); int (*close_fun)(); }; typedef struct s_fm_tbl fm_tbl; int VF_LinkFont(); int VF_UnlinkFont(); char *VF_Fontname2Entry(); int VFFM_Init(); int VFFM_Deinit(); FILE_Port VFFM_Intern(); FILE_Port VFFM_InternInt(); FILE* VFFM_FStream(); int VFFM_FInt(); int VFFM_UnIntern(); #endif /* __VFLIB__VF_H__ */