#include "FontInfo.h"
#include "debug.h"
#include "lyxrc.h" // lyxrc.font_*
-extern LyXRC * lyxrc;
#include "BufferView.h"
#include "LyXView.h"
#include "minibuffer.h"
+
+using std::endl;
+
extern BufferView * current_view;
// Initialize font loader
string ffamily;
string fseries;
string fshape;
- string norm = lyxrc->font_norm;
+ string norm = lyxrc.font_norm;
string fontname;
FontInfo * fi = new FontInfo();
switch (family) {
case LyXFont::ROMAN_FAMILY:
switch (cfam) {
- case 0: ffamily = lyxrc->roman_font_name; break;
+ case 0: ffamily = lyxrc.roman_font_name; break;
case 1: ffamily = "-*-times";
default: cfam = 100;
}
break;
case LyXFont::SANS_FAMILY:
switch (cfam) {
- case 0: ffamily = lyxrc->sans_font_name; break;
+ case 0: ffamily = lyxrc.sans_font_name; break;
case 1: ffamily = "-*-helvetica";
default: cfam = 100;
}
break;
case LyXFont::TYPEWRITER_FAMILY:
switch (cfam) {
- case 0: ffamily = lyxrc->typewriter_font_name; break;
+ case 0: ffamily = lyxrc.typewriter_font_name; break;
case 1: ffamily = "-*-courier";
default: cfam = 100;
}
}
}
+
+// A dummy fontstruct used when there is no gui.
+static XFontStruct dummyXFontStruct;
+static bool dummyXFontStructisGood = false;
+
/// Do load font
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;
+ // unit ascent on character displays
+ dummyXFontStruct.ascent = 1;
+ // no descent on character displays
+ dummyXFontStruct.descent = 0;
+ dummyXFontStructisGood = true;
+ }
+
+ return &dummyXFontStruct;
+ }
+
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);
font = "fixed";
}
+ XFontStruct * fs = 0;
+
current_view->owner()->getMiniBuffer()->Store();
current_view->owner()->getMiniBuffer()->Set(_("Loading font into X-Server..."));
-
- XFontStruct * fs = XLoadQueryFont(fl_display, font.c_str());
-
+ fs = XLoadQueryFont(fl_display, font.c_str());
+
if (fs == 0) {
if (font == "fixed") {
lyxerr << "We're doomed. Can't get 'fixed' font." << endl;