X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFontLoader.h;h=66cd1c0503d7bae8104019361a3609b643f3e484;hb=d11fd01ce743c4974a96f241a99853f46078c80c;hp=4b3c167c5e0c6da0e1b7bfd901b13299c4acfef0;hpb=46787557fb750f22f6febda3fbb9dea0277f18ac;p=lyx.git diff --git a/src/FontLoader.h b/src/FontLoader.h index 4b3c167c5e..66cd1c0503 100644 --- a/src/FontLoader.h +++ b/src/FontLoader.h @@ -1,30 +1,31 @@ // -*- C++ -*- /* This file is part of * ====================================================== - * + * * LyX, The Document Processor - * - * Copyright (C) 1997 Asger Alstrup - * and the LyX Team. * - *======================================================*/ + * Copyright 1997 Asger Alstrup + * and the LyX Team. + * + * ====================================================== */ -#ifndef _FONTLOADER_H_ -#define _FONTLOADER_H_ +#ifndef FONTLOADER_H_ +#define FONTLOADER_H_ #ifdef __GNUG__ #pragma interface #endif -#include FORMS_H_LOCATION +#include #include "lyxfont.h" -class LString; +#include "LString.h" + class FontInfo; -/** This class takes care of loading fonts. It uses FontInfo to make -intelligent guesses about matching font size, and it tries different tags -itself in order to match the font loading demands. Later, I plan to extend -this with support for T1Lib, probably via a new class building on this. +/** This class takes care of loading fonts. It uses FontInfo to make +intelligent guesses about matching font size, and it tries different tags +itself in order to match the font loading demands. Later, I plan to extend +this with support for T1Lib, probably via a new class building on this. (Asger) */ class FontLoader { public: @@ -38,22 +39,24 @@ public: void update(); /// Load font - XFontStruct* load(LyXFont::FONT_FAMILY family, - LyXFont::FONT_SERIES series, - LyXFont::FONT_SHAPE shape, - LyXFont::FONT_SIZE size) - { - if (fontstruct[family][series][shape][size]!=0) + XFontStruct * load(LyXFont::FONT_FAMILY family, + LyXFont::FONT_SERIES series, + LyXFont::FONT_SHAPE shape, + LyXFont::FONT_SIZE size) { + if (fontstruct[family][series][shape][size] != 0) return fontstruct[family][series][shape][size]; else - return doLoad(family,series,shape,size); + return doLoad(family, series, shape, size); }; + /// Do we have anything matching? + bool available(LyXFont const & f); + private: /// Array of font structs - XFontStruct* fontstruct[4][2][4][10]; + XFontStruct * fontstruct[LyXFont::NUM_FAMILIES][2][4][10]; /// Array of font infos - FontInfo * fontinfo[4][2][4]; + FontInfo * fontinfo[LyXFont::NUM_FAMILIES][2][4]; /// Reset font handler void reset(); @@ -62,14 +65,18 @@ private: void unload(); /// Get font info - void getFontinfo(LyXFont::FONT_FAMILY family, - LyXFont::FONT_SERIES series, + void getFontinfo(LyXFont::FONT_FAMILY family, + LyXFont::FONT_SERIES series, LyXFont::FONT_SHAPE shape); /** Does the actual loading of a font. Updates fontstruct. */ - XFontStruct* doLoad(LyXFont::FONT_FAMILY family, - LyXFont::FONT_SERIES series, - LyXFont::FONT_SHAPE shape, - LyXFont::FONT_SIZE size); + XFontStruct * doLoad(LyXFont::FONT_FAMILY family, + LyXFont::FONT_SERIES series, + LyXFont::FONT_SHAPE shape, + LyXFont::FONT_SIZE size); }; + +/// +extern FontLoader fontloader; + #endif