]> git.lyx.org Git - lyx.git/blobdiff - src/FontLoader.h
Don't launch that Alert if the graphics file isn't found. It doesn't work
[lyx.git] / src / FontLoader.h
index 4b3c167c5e0c6da0e1b7bfd901b13299c4acfef0..66cd1c0503d7bae8104019361a3609b643f3e484 100644 (file)
@@ -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 <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. 
+/** 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