]> git.lyx.org Git - lyx.git/blobdiff - src/FontLoader.h
ws changes
[lyx.git] / src / FontLoader.h
index 853e2e44e9618b798797c25daee020e50919bb0b..66cd1c0503d7bae8104019361a3609b643f3e484 100644 (file)
@@ -1,30 +1,32 @@
 // -*- 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 <X11/Xlib.h>
 #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. (Asger) */
+/** 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:
        ///
@@ -37,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();
@@ -61,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