X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmodified-font-metric.hh;h=70016808633d6c0461f3a3006443f961fc55f779;hb=8cf69a467ad7650f5ca9da6fe2dfd4c7c088b239;hp=9f264e744d05df903c88bfd838e44f1d40f055c3;hpb=5856b3f565bfa6ef87d53b9fa9db7ec961ecf452;p=lilypond.git diff --git a/lily/include/modified-font-metric.hh b/lily/include/modified-font-metric.hh index 9f264e744d..7001680863 100644 --- a/lily/include/modified-font-metric.hh +++ b/lily/include/modified-font-metric.hh @@ -1,9 +1,20 @@ -/* - modified-font-metric.hh -- declare Font_metric - - source file of the GNU LilyPond music typesetter - - (c) 1999--2004 Han-Wen Nienhuys +/* + This file is part of LilyPond, the GNU music typesetter. + + Copyright (C) 1999--2015 Han-Wen Nienhuys + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #ifndef MODIFIED_FONT_METRIC_HH @@ -11,41 +22,37 @@ #include "font-metric.hh" -/* Perhaps junk this, and move this to paper_def as interface? */ -struct Modified_font_metric : public Font_metric +struct Preinit_Modified_font_metric +{ + Font_metric *orig_; + Preinit_Modified_font_metric (); +}; + +/* Perhaps junk this, and move this to layout_def as interface? */ +class Modified_font_metric : Preinit_Modified_font_metric, + public Font_metric { public: - Box text_dimension (String); - - - static SCM make_scaled_font_metric (SCM, Font_metric*, Real); - virtual int count () const; - virtual Offset get_indexed_wxwy (int) const; - virtual int name_to_index (String) const; - virtual String coding_scheme () const; + Stencil text_stencil (Output_def *output_state, const string&, bool, const string&) const; + Real get_magnification () const; - virtual Font_metric * original_font () const; + static SCM make_scaled_font_metric (Font_metric *fm, Real magnification); + size_t count () const; + Offset get_indexed_wxwy (size_t) const; + Offset attachment_point (const string&) const; + size_t name_to_index (string) const; + size_t index_to_charcode (size_t) const; + Font_metric *original_font () const; protected: - - SCM coding_vector_; - SCM coding_table_; - SCM coding_mapping_; - SCM coding_description_; - friend SCM ly_font_encoding_alist (SCM); - - virtual Real design_size () const; - virtual void derived_mark () const; - virtual Box get_indexed_char (int) const; - virtual int index_to_ascii (int) const; - virtual Box get_ascii_char (int) const; - Font_metric *orig_; Real magnification_; - String coding_scheme_; - - Modified_font_metric (String, Font_metric*, Real); - Box tex_kludge (String) const; + Modified_font_metric (Font_metric *fm, Real magnification); + SCM sub_fonts () const; + string font_name () const; + Real design_size () const; + void derived_mark () const; + Box get_indexed_char_dimensions (size_t) const; }; #endif /* MODIFIED_FONT_METRIC_HH */