]> git.lyx.org Git - lyx.git/blobdiff - src/FontLoader.C
fix typo that put too many include paths for most people
[lyx.git] / src / FontLoader.C
index d45e58949e30061a90de31bb2cd67f471142b395..7567dde5be7fbfe7552db3874b367e1c5b642c30 100644 (file)
@@ -1,8 +1,8 @@
 /* This file is part of
- * ====================================================== 
- * 
+ * ======================================================
+ *
  *           LyX, The Document Processor
- *      
+ *
  *         Copyright 1997 Asger Alstrup
  *           and the LyX Team.
  *
@@ -72,7 +72,7 @@ void FontLoader::reset()
 
 
 // Unload all fonts
-void FontLoader::unload() 
+void FontLoader::unload()
 {
        // Unload all fonts
        for (int i1 = 0; i1 < LyXFont::NUM_FAMILIES; ++i1)
@@ -95,8 +95,8 @@ void FontLoader::unload()
 // Get font info
 /* Takes care of finding which font that can match the given request. Tries
 different alternatives. */
-void FontLoader::getFontinfo(LyXFont::FONT_FAMILY family, 
-                            LyXFont::FONT_SERIES series, 
+void FontLoader::getFontinfo(LyXFont::FONT_FAMILY family,
+                            LyXFont::FONT_SERIES series,
                             LyXFont::FONT_SHAPE shape)
 {
        // Do we have the font info already?
@@ -104,47 +104,52 @@ void FontLoader::getFontinfo(LyXFont::FONT_FAMILY family,
                return;
 
        // Special fonts
-       switch (family) 
+       switch (family)
        {
                case LyXFont::SYMBOL_FAMILY:
                        fontinfo[family][series][shape] =
-                               new FontInfo("-*-symbol-*-*-*-*-*-*-*-*-*-*-*-*");
+                               new FontInfo("-*-symbol-*-*-*-*-*-*-*-*-*-*-adobe-fontspecific");
                        return;
 
                case LyXFont::CMR_FAMILY:
                        fontinfo[family][series][shape] =
-                               new FontInfo("-*-cmr-medium-*-*-*-*-*-*-*-*-*-*-*");
+                               new FontInfo("-*-cmr10-medium-*-*-*-*-*-*-*-*-*-*-*");
                        return;
 
                case LyXFont::CMSY_FAMILY:
                        fontinfo[family][series][shape] =
-                               new FontInfo("-*-cmsy-*-*-*-*-*-*-*-*-*-*-*-*");
+                               new FontInfo("-*-cmsy10-*-*-*-*-*-*-*-*-*-*-*-*");
                        return;
 
                case LyXFont::CMM_FAMILY:
                        fontinfo[family][series][shape] =
-                               new FontInfo("-*-cmmi-medium-*-*-*-*-*-*-*-*-*-*-*");
+                               new FontInfo("-*-cmmi10-medium-*-*-*-*-*-*-*-*-*-*-*");
                        return;
 
                case LyXFont::CMEX_FAMILY:
                        fontinfo[family][series][shape] =
-                               new FontInfo("-*-cmex-*-*-*-*-*-*-*-*-*-*-*-*");
+                               new FontInfo("-*-cmex10-*-*-*-*-*-*-*-*-*-*-*-*");
                        return;
 
                case LyXFont::MSA_FAMILY:
                        fontinfo[family][series][shape] =
-                               new FontInfo("-*-msam-*-*-*-*-*-*-*-*-*-*-*-*");
+                               new FontInfo("-*-msam10-*-*-*-*-*-*-*-*-*-*-*-*");
                        return;
 
                case LyXFont::MSB_FAMILY:
-                       fontinfo[family][series][shape] = 
-                               new FontInfo("-*-msbm-*-*-*-*-*-*-*-*-*-*-*-*");
+                       fontinfo[family][series][shape] =
+                               new FontInfo("-*-msbm10-*-*-*-*-*-*-*-*-*-*-*-*");
+                       return;
+
+               case LyXFont::EUFRAK_FAMILY:
+                       fontinfo[family][series][shape] =
+                               new FontInfo("-*-eufm10-medium-*-*-*-*-*-*-*-*-*-*-*");
                        return;
 
                default:
                        break;
        }
+
 
        // Normal font. Let's search for an existing name that matches.
        string ffamily;
@@ -254,19 +259,19 @@ bool dummyXFontStructisGood = false;
 } // namespace anon
 
 /// Do load font
-XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family, 
-                               LyXFont::FONT_SERIES series, 
-                               LyXFont::FONT_SHAPE shape, 
+XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family,
+                               LyXFont::FONT_SERIES series,
+                               LyXFont::FONT_SHAPE shape,
                                LyXFont::FONT_SIZE size)
 {
        if (!lyxrc.use_gui) {
                if (!dummyXFontStructisGood) {
                        // no character specific info
-                       dummyXFontStruct.per_char = 0; 
+                       dummyXFontStruct.per_char = 0;
                        // unit ascent on character displays
-                       dummyXFontStruct.ascent = 1; 
+                       dummyXFontStruct.ascent = 1;
                        // no descent on character displays
-                       dummyXFontStruct.descent = 0; 
+                       dummyXFontStruct.descent = 0;
                        dummyXFontStructisGood = true;
                }
 
@@ -274,8 +279,8 @@ XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family,
        }
 
        getFontinfo(family, series, shape);
-       int fsize = int( (lyxrc.font_sizes[size] * lyxrc.dpi * 
-                         (lyxrc.zoom/100.0) ) / 72.27 + 0.5 );
+       int fsize = int((lyxrc.font_sizes[size] * lyxrc.dpi *
+                         (lyxrc.zoom/100.0)) / 72.27 + 0.5);
 
        string font = fontinfo[family][series][shape]->getFontname(fsize);
 
@@ -290,7 +295,7 @@ XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family,
        current_view->owner()->messagePush(_("Loading font into X-Server..."));
 
        fs = XLoadQueryFont(GUIRunTime::x11Display(), font.c_str());
-       
+
        if (fs == 0) {
                if (font == "fixed") {
                        lyxerr << "We're doomed. Can't get 'fixed' font." << endl;
@@ -310,7 +315,7 @@ XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family,
                f.setUnderbar(LyXFont::INHERIT);
                f.setNoun(LyXFont::INHERIT);
                f.setColor(LColor::inherit);
-               lyxerr << "Font '" << f.stateText(0) 
+               lyxerr << "Font '" << f.stateText(0)
                       << "' matched by\n" << font << endl;
        }
 
@@ -323,7 +328,11 @@ XFontStruct * FontLoader::doLoad(LyXFont::FONT_FAMILY family,
 
 bool FontLoader::available(LyXFont const & f)
 {
-       load(f.family(), f.series(), f.realShape(), f.size());
+       if (!lyxrc.use_gui)
+               return false;
+
+       if (!fontinfo[f.family()][f.series()][f.realShape()])
+               getFontinfo(f.family(), f.series(), f.realShape());
        return fontinfo[f.family()][f.series()][f.realShape()]
                ->getFontname(f.size()).size();
 }