/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1999--2011 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 * const type_p_name_;
+ virtual ~Font_metric ();
+private:
DECLARE_CLASSNAME (Font_metric);
public:
// Return stencil for given string. output_state may be modified to
// record the font.
virtual Stencil text_stencil (Output_def *output_state,
- string text, bool music) const;
+ const string &text, bool music) const;
virtual string font_name () const;
virtual size_t count () const;
- virtual Offset attachment_point (string) const;
+ virtual Offset attachment_point (const 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;
+ virtual size_t name_to_index (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 SCM sub_fonts () const;
virtual SCM font_file_name () const;
- DECLARE_SMOBS (Font_metric);
private:
/* No copying, no implicit copy constructor. */
Font_metric ();
};
-int get_encoded_index (Font_metric *m, string input_coding, int code);
-
-DECLARE_UNSMOB (Font_metric, metrics);
char *pfb2pfa (Byte const *pfb, int length);