]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/pango-font.hh
Issue 1388: Initial work to support opentype font features.
[lilypond.git] / lily / include / pango-font.hh
index 58f5a884f59b76e4d62a99cb6d18af5c0cfc8a5b..5e804f7a8f8f743430dd0c757d3220bd9df5619b 100644 (file)
 
 #include "font-metric.hh"
 
-class Pango_font : public Font_metric
+struct Preinit_Pango_font {
+  SCM physical_font_tab_;
+  Preinit_Pango_font ();
+};
+
+class Pango_font : Preinit_Pango_font, public Font_metric
 {
   PangoContext *context_;
   PangoFontDescription *pango_description_;
   PangoAttrList *attribute_list_;
   Real scale_;
   Real output_scale_;
-  SCM physical_font_tab_;
   Direction text_direction_;
 
 public:
@@ -46,11 +50,11 @@ public:
               Real);
   ~Pango_font ();
 
-  std::string description_string () const;
+  string description_string () const;
   SCM font_file_name () const;
-  void register_font_file (const std::string &filename, const std::string &ps_name, int face_index);
+  void register_font_file (const string &filename, const string &ps_name, int face_index);
 
-  size_t name_to_index (std::string) const;
+  size_t name_to_index (string) const;
   SCM get_glyph_outline (size_t signed_idx) const;
   Box get_glyph_outline_bbox (size_t signed_idx) const;
   Box get_unscaled_indexed_char_dimensions (size_t) const;
@@ -59,7 +63,9 @@ public:
   Stencil pango_item_string_stencil (PangoGlyphItem const *) const;
 
   virtual Stencil text_stencil (Output_def *output_state,
-                                const std::string &text, bool music) const;
+                                const string &text,
+                                bool music,
+                                const string &features_str) const;
   virtual void derived_mark () const;
 };