--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gfxtools/gditools/fontcomp/FONTCOMP.H Thu Dec 17 09:14:18 2009 +0200
@@ -0,0 +1,241 @@
+/*
+* Copyright (c) 1997-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#if !defined(__FONTCOMP_H__)
+#define __FONTCOMP_H__
+#include <stdlib.h>
+#include <string.h>
+#include <io.h>
+
+#ifdef __MSVCDOTNET__
+#include <fstream>
+#include <iostream>
+using namespace std;
+#else //!__MSVCDOTNET__
+#include <fstream.h>
+#endif //__MSVCDOTNET__
+
+/**
+@internalComponent
+*/
+#define MAX_CHARS 256
+#define FONT_NAME_LEN 16
+/**
+@internalComponent
+*/
+#define MAX_CHAR_WID 256
+#define MAX_HEIGHT 256
+#define MAX_LABEL_LENGTH 16 /* Max font label name */
+#define MAX_LEN_IN 255 /* Max input line length */
+#define MAXLINE 600 /* Max line length for writing to screen */
+#define FONT_MAX_HEADER_LEN 128
+#define P_FNAMESIZE 128 /* Maximum file name size */
+/**
+@internalComponent
+*/
+enum Errors
+ {
+ NoError=0,
+ NoMemory=-1,
+ NoFile=-2,
+ FileRead=-3,
+ FileWrite=-4,
+ FileFormat=-5,
+ Parameter=-6
+ };
+/**
+@internalComponent
+*/
+struct FcmCharHead
+ {
+ int xOffset;
+ int yOffset;
+ int width;
+ int height;
+ int move;
+ int ByteWid;
+ int offset;
+ };
+/**
+@internalComponent
+*/
+struct LetterTableData
+ {
+ short int offset;
+ short int width; /* x16 in version 1*/
+ };
+/**
+@internalComponent
+*/
+struct LetterData
+ {
+ char blx;
+ char bly;
+ unsigned char rWid; /* Enclosing rectangle width */
+ unsigned char rHgt; /* Enclosing rectangle height */
+ };
+/**
+@internalComponent
+*/
+struct EffVariousData
+ {
+ short int version;
+ short int blx;
+ short int bly;
+ short int Wid;
+ short int Hgt;
+ short int xSize; /* 16 x Point size */
+ short int xRes; /* DPI */
+ short int ySize;
+ short int yRes;
+ unsigned char XHeight;
+ unsigned char CapHeight;
+ unsigned char Ascender;
+ char Descender;
+ unsigned char LineSpacing;
+ char UnderLinePos;
+ unsigned char UnderLineThickness;
+ unsigned char filler[7];
+ };
+/**
+@internalComponent
+*/
+const int EMaxFontNameLength=256;
+
+class Fxf
+/**
+@internalComponent
+*/
+ {
+public:
+ FcmCharHead *chr[MAX_CHARS];
+ char name[EMaxFontNameLength]; /* Font name */
+ char typeface[EMaxFontNameLength]; /* Font typeface */
+ int MaxChrWidth;
+ int cell_height; /* Height of character set */
+ int nominal_ascent; /* Max ascent of normal (ASCII) characters */
+ int descent; /* Descent of characters below base line */
+ int chr_seg;
+ int FirstChr;
+ int n_chars; /* counts total number of characters defined */
+ unsigned int max_info_width; /* Max char width to put in info file */
+ unsigned short int flags;
+ unsigned short int special;
+ unsigned int ByteWid;
+ int UseWords;
+ int UlinePos;
+ int UlineThickness;
+ int iBold;
+ int iItalic;
+ int iProportional;
+ int iSerif;
+ int iSymbol;
+ unsigned int iUid;
+ };
+/**
+@internalComponent
+*/
+enum FontType
+ {
+ EFontTypeFsc,
+ EFontTypeEff
+ };
+
+class FontCompiler
+/**
+@internalComponent
+*/
+ {
+public:
+ FontCompiler();
+ int Read(FontType aInputType);
+ int Init(char*,char*,char*);
+ void RemoveBlankSpace();
+ char* FontStore() const;
+ virtual int WriteFont()=0;
+protected: // general information
+ fstream iInputFile;
+ fstream iOutputFile;
+ Fxf* iFxf;
+protected: // font information
+ char* iFontSpace;
+ char* iWorkSpace; // misc. stuff
+ short int* iMapSpace;
+ int iWorkSpaceSize;
+ unsigned int iHeaderDataLen;
+ unsigned char iHeaderData[FONT_MAX_HEADER_LEN];
+ };
+
+class FontRead
+/**
+@internalComponent
+*/
+ {
+public:
+ FontRead(fstream& aFile,FontCompiler& aFontCompiler,Fxf* aFxf);
+ virtual int ReadFont()=0;
+private:
+ FontRead& operator=(const FontRead&);
+protected:
+ fstream& iInputFile;
+ FontCompiler* iFontCompiler;
+ Fxf* iFxf;
+ };
+
+class EffRead : public FontRead
+/**
+@internalComponent
+*/
+ {
+public:
+ EffRead(fstream& aFile,FontCompiler &aFontCompiler,Fxf* aFxf,short int* aMapSpace);
+ virtual int ReadFont();
+private:
+ EffRead& operator=(const EffRead&);
+private:
+ short int* iMapSpace;
+ };
+
+class FscRead : public FontRead
+/**
+@internalComponent
+*/
+ {
+public:
+ FscRead(fstream& aFile,FontCompiler &aFontCompiler,Fxf* aFxf);
+ virtual int ReadFont();
+private:
+ FscRead& operator=(const FscRead&);
+private:
+ int ReadLine();
+ int Pass1();
+ int Pass2();
+ char* ScanLine(int& aLen);
+ int DoCom(int aSecondPass);
+private:
+ FcmCharHead *iChar;
+ char iInputBuf[256];
+ int iInputBufLen;
+ char* iFileBuf;
+ int iFileBufLen;
+ int iFileBufPos;
+ int iUnderHang;
+ int iOverHang;
+ };
+
+#endif