]> www.fi.muni.cz Git - evince.git/blobdiff - dvi/dvilib/dl-vffont.hh
Auto*ify dvi and dvi/dvilib
[evince.git] / dvi / dvilib / dl-vffont.hh
index 185e4a98c78ba810599046a1029f72755b2dc4d4..fff490b5300b2034f9a5a83b8dbdebe7ca5602ab 100755 (executable)
@@ -7,33 +7,41 @@
 
 namespace DviLib {
     
-    class VfChar : public AbstractCharacter {
+    class VfChar : public AbstractCharacter
+    {
     public:
        int tfm_width;
        DviProgram *program;
+       DviFontMap *fontmap;
        int character_code;
 
        virtual void paint (DviRuntime& runtime)
        {
            runtime.push();
+           runtime.fontmap (fontmap);
+           runtime.font_num (0);
+           cout << "vfchar (" << (int)fontmap << ')' << " " << character_code << endl;
            program->execute (runtime); // FIXME push, pop, etc.
            runtime.pop();
        }
        virtual int get_tfm_width () { return tfm_width; }
     };
     
-    class VfFontPreamble : public RefCounted {
+    class VfFontPreamble : public RefCounted
+    {
     public:
        string comment;
        uint checksum;
        uint design_size;
-       vector <DviFontdefinition *> fontdefinitions;
+       DviFontMap *fontmap;
     };
     
-    class VfFont : public AbstractFont {
+    class VfFont : public AbstractFont
+    {
        VfFontPreamble *preamble;
        map <int, VfChar *> chars;
        int at_size;
+       void fixup_fontmap (DviFontMap *fontmap);
     public:
        VfFont (AbstractLoader& l, int at_size);
        virtual VfChar *get_char (int ccode) 
@@ -46,7 +54,6 @@ namespace DviLib {
        }
        virtual int get_at_size ()
        {
-           /* FIXME (what is the correct thing to do here?) */
            return at_size;
        }
        virtual ~VfFont () {}