PLangDriver CreateLanguage_CN(int LangID, char *FontName, int FontSize) { TLangDriver *LangDriver=CreateLanguage_Default(LangID); LangDriver->GetNextTextFun=GetNextText_EUC; LangDriver->GetTextDotsFun=GetTextDots_CN; if(ToUCSTable==NULL) ToUCSTable=(unsigned short *)LoadFile("GB2312.UNI",&ToUCSTableSize); LangDriver->FontLib=LoadOldFont(); if(LangDriver->FontLib==NULL) { LangDriver->FontLib=(TFontLib*)malloc(sizeof(TFontLib)); if(LoadFontLib("GB2312.FT", LangDriver->FontLib)) { LangDriver->FontLib->codeid=LID_GB2312; } else if(ToUCSTable && LoadFontLib("UNI2.FT", LangDriver->FontLib)) { LangDriver->FontLib->codeid=LID_UNICODE2; } else { free(LangDriver->FontLib->buffer); free(LangDriver->FontLib); LangDriver->FontLib=NULL; free(LangDriver); LangDriver=NULL; } } return LangDriver; }
PLangDriver CreateLanguage_SYM(int LangID, char *FontName, int FontSize) { if(LangDriver==NULL) LangDriver=(PLangDriver)malloc(sizeof(TLangDriver)); else return LangDriver; memset(LangDriver, 0, sizeof(TLangDriver)); LangDriver->CharHeight=16; LangDriver->CharWidth=8; LangDriver->GetNextTextFun=GetNextText_SYM; LangDriver->GetTextDotsFun=GetTextDots_SYM; LangDriver->GetTextHeightFun=GetTextHeight_Default; LangDriver->GetTextWidthFun=GetTextWidth_Default; LangDriver->LanguageID=LangID; if(!(SymbolDots=LoadFile("SYM.FT", &FontSize))) LangDriver->FontLib=LoadOldFont(); return LangDriver; }