/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1999--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1999--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
typedef std::map<FT_UInt, FT_ULong> Index_to_charcode_map;
-class Font_metric
+class Font_metric : public Smob<Font_metric>
{
+public:
+ int print_smob (SCM, scm_print_state *) const;
+ SCM mark_smob () const;
+ static const char type_p_name_[];
+ virtual ~Font_metric ();
+private:
DECLARE_CLASSNAME (Font_metric);
public:
SCM description_;
- string file_name_;
+ std::string file_name_;
- // Return stencil for given string. output_state may be modified to
+ // Return stencil for given std::string. output_state may be modified to
// record the font.
virtual Stencil text_stencil (Output_def *output_state,
- const string &text, bool music) const;
+ const std::string &text, bool music) const;
- virtual string font_name () const;
+ virtual std::string font_name () const;
virtual size_t count () const;
- virtual Offset attachment_point (const string&) const;
+ virtual Offset attachment_point (const std::string&) const;
virtual Offset get_indexed_wxwy (size_t) const;
virtual Box get_indexed_char_dimensions (size_t index) const;
- virtual size_t name_to_index (string) const=0;
+ virtual size_t name_to_index (std::string) const=0;
virtual size_t index_to_charcode (size_t) const;
virtual Real design_size () const;
- virtual Stencil find_by_name (string) const;
+ virtual Stencil find_by_name (std::string) const;
virtual SCM sub_fonts () const;
virtual SCM font_file_name () const;
- DECLARE_SMOBS (Font_metric);
private:
/* No copying, no implicit copy constructor. */
Font_metric ();
};
-DECLARE_UNSMOB (Font_metric, metrics);
char *pfb2pfa (Byte const *pfb, int length);