⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fontdatac.c

📁 linux下的E_MAIL客户端源码
💻 C
📖 第 1 页 / 共 5 页
字号:
// Any width or add style   BuildName(foundry, family, weight, "o", "*", "*", pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Italic   BuildName(foundry, family, weight, "i", "*", "*", pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Any res, oblique   BuildName(foundry, family, weight, "o", "*", "*", pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Any res, italic   BuildName(foundry, family, weight, "i", "*", "*", pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Any foundry or family   BuildName("*", "*", weight, "o", setWidth, addStyle, pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Italic   BuildName("*", "*", weight, "i", setWidth, addStyle, pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Any res, oblique   BuildName("*", "*", weight, "o", setWidth, addStyle, pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Any res, italic   BuildName("*", "*", weight, "i", setWidth, addStyle, pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Any width or addStyle   BuildName("*", "*", weight, "o", "*", "*", pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Italic   BuildName("*", "*", weight, "i", "*", "*", pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Any res, oblique   BuildName("*", "*", weight, "o", "*", "*", pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);// Any res, italic   BuildName("*", "*", weight, "i", "*", "*", pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateItalic(iname);//// If nothing worked, return this font//#if 0   StringC errmsg("I could not find an italic version of the font: ");   errmsg += name;   halApp->PopupMessage(errmsg);#else   if ( debug1 )      cout <<"I could not find an italic version of the font: " <<name<<endl;#endif   italic = this;   return italic;} // End Italic/*---------------------------------------------------------------------- * Method to create the specified italic font */FontDataC*FontDataC::CreateItalic(char *iname){//// Create a new font structure//   if ( debug1 ) cout <<"Found italic font: " <<iname <<endl;   italic = new FontDataC(iname);   if ( !italic->loaded ) {      delete italic;      italic = this;   }   freeItalic = True;   return italic;} // End CreateItalic/*---------------------------------------------------------------------- * Method to return a non-italic version of the current font */FontDataC*FontDataC::NonItalic(){   if ( !loaded && !nonItalic ) nonItalic = this;//// See if we already know this//   if ( nonItalic ) return nonItalic;//// See if this is already a non-italic font//   if ( !slant.Equals('o', IGNORE_CASE) && !slant.Equals('i', IGNORE_CASE) ) {      nonItalic = this;      return nonItalic;   }   if ( debug1 ) cout <<"Looking for a non-italic font for: " <<name <<endl;//// See if there is a non-italic version of this font.//   StringC	iname;   BuildName(foundry, family, weight, "r", setWidth, addStyle, pixelSize,	     pointSize, resStr, spacing, avgWidth, charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any width or add style   BuildName(foundry, family, weight, "r", "*", "*", pixelSize,   	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any res   BuildName(foundry, family, weight, "r", "*", "*", pixelSize,   	     pointSize, "*", spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Point size only   BuildName(foundry, family, weight, "r", "*", "*", "*",   	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any res   BuildName(foundry, family, weight, "r", "*", "*", "*",   	     pointSize, "*", spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Pixel size only   BuildName(foundry, family, weight, "r", "*", "*", pixelSize,	     "*", resStr, spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any res   BuildName(foundry, family, weight, "r", "*", "*", pixelSize,	     "*", "*", spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any foundry or family   BuildName("*", "*", weight, "r", setWidth, addStyle, pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any res   BuildName("*", "*", weight, "r", setWidth, addStyle, pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any width or add style   BuildName("*", "*", weight, "r", "*", "*", pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any res   BuildName("*", "*", weight, "r", "*", "*", pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Point size only   BuildName("*", "*", weight, "r", "*", "*", "*",	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any res   BuildName("*", "*", weight, "r", "*", "*", "*",	     pointSize, "*", spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Pixel size only   BuildName("*", "*", weight, "r", "*", "*", pixelSize,	     "*", resStr, spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);// Any res   BuildName("*", "*", weight, "r", "*", "*", pixelSize,	     "*", "*", spacing, "*", charset, iname);   if ( FindFont(iname) ) return CreateNonItalic(iname);//// Try bigger fonts//   BuildName(foundry, family, weight, "r", setWidth, addStyle, pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any res   BuildName(foundry, family, weight, "r", setWidth, addStyle,	     pixelSize, pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any width or add style   BuildName(foundry, family, weight, "r", "*", "*", pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any res   BuildName(foundry, family, weight, "r", "*", "*", pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Point size only   BuildName(foundry, family, weight, "r", "*", "*", "*",	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any res   BuildName(foundry, family, weight, "r", "*", "*", "*",	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Pixel size only   BuildName(foundry, family, weight, "r", "*", "*", pixelSize,	     "*", resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any res   BuildName(foundry, family, weight, "r", "*", "*", pixelSize,	     "*", "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any foundry or family   BuildName("*", "*", weight, "r", setWidth, addStyle, pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any res   BuildName("*", "*", weight, "r", setWidth, addStyle, pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any width or add style   BuildName("*", "*", weight, "r", "*", "*", pixelSize,	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any res   BuildName("*", "*", weight, "r", "*", "*", pixelSize,	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Point size only   BuildName("*", "*", weight, "r", "*", "*", "*",	     pointSize, resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any res   BuildName("*", "*", weight, "r", "*", "*", "*",	     pointSize, "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Pixel size only   BuildName("*", "*", weight, "r", "*", "*", pixelSize,	     "*", resStr, spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);// Any res   BuildName("*", "*", weight, "r", "*", "*", pixelSize,	     "*", "*", spacing, "*", charset, iname);   if ( FindBigger(iname) ) return CreateNonItalic(iname);//// If that didn't work, return this font//#if 0   StringC errmsg("I could not find a non-italic version of the font: ");   errmsg += name;   halApp->PopupMessage(errmsg);#else   if ( debug1 )      cout <<"I could not find a non-italic version of the font: " <<name NL;#endif   nonItalic = this;   return nonItalic;} // End NonItalic/*---------------------------------------------------------------------- * Method to create the specified non-italic font */FontDataC*FontDataC::CreateNonItalic(char *iname){//// Create a new font structure//   if ( debug1 ) cout <<"Found non-italic font: " <<iname <<endl;   nonItalic = new FontDataC(iname);   if ( !nonItalic->loaded ) {      delete nonItalic;      nonItalic = this;   }   freeNonItalic = True;   return nonItalic;} // End CreateNonItalic/*---------------------------------------------------------------------- * Method to return a comparable font with the specified charset */FontDataC*FontDataC::Charset(StringC cSet){//// See if this is already in the desired charset//   if ( !loaded || cSet.length() == 0 || charset.Equals(cSet, IGNORE_CASE) ||	 cSet.Equals("us-ascii", IGNORE_CASE) )      return this;//// See if we've already loaded this character set//   int	index = charSetNames.indexOf(cSet);   if ( index != charSetNames.NULL_INDEX ) {      FontDataC	*fd = (FontDataC*)*charSetFonts[index];      if ( !fd ) fd = this;      return fd;   }   if ( debug1 ) cout <<"Looking for alternate character set: " <<cSet		      <<" for: " <<name NL;//// Change the character set and see if there is a match//   StringC	cname;   BuildName(foundry, family, weight, slant, setWidth, addStyle, pixelSize,	     pointSize, resStr, spacing, avgWidth, cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any res   BuildName(foundry, family, weight, slant, setWidth, addStyle, pixelSize,	     pointSize, "*", spacing, avgWidth, cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any width or style   BuildName(foundry, family, weight, slant, "*", "*", pixelSize,	     pointSize, resStr, spacing, "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any res   BuildName(foundry, family, weight, slant, "*", "*", pixelSize,	     pointSize, "*", spacing, "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any spacing   BuildName(foundry, family, weight, slant, "*", "*", pixelSize,	     pointSize, resStr, "*", "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any res   BuildName(foundry, family, weight, slant, "*", "*", pixelSize,	     pointSize, "*", "*", "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any foundry   BuildName("*", family, weight, slant, "*", "*", pixelSize,	     pointSize, resStr, "*", "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any res   BuildName("*", family, weight, slant, "*", "*", pixelSize,	     pointSize, "*", "*", "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any family   BuildName("*", "*", weight, slant, "*", "*", pixelSize,	     pointSize, resStr, "*", "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any res   BuildName("*", "*", weight, slant, "*", "*", pixelSize,	     pointSize, "*", "*", "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any bigger   BuildName("*", "*", weight, slant, "*", "*", pixelSize,	     pointSize, resStr, "*", "*", cSet, cname);   if ( FindBigger(cname) ) return CreateCharset(cname, cSet);// Any res   BuildName("*", "*", weight, slant, "*", "*", pixelSize,	     pointSize, "*", "*", "*", cSet, cname);   if ( FindBigger(cname) ) return CreateCharset(cname, cSet);// Any weight   BuildName("*", "*", "*", slant, "*", "*", "*",	     "*", resStr, "*", "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any res   BuildName("*", "*", "*", slant, "*", "*", "*",	     "*", "*", "*", "*", cSet, cname);   if ( FindFont(cname) ) return CreateCharset(cname, cSet);// Any slant   BuildName("*", "*", weight, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -