From: Mikko Rasa Date: Thu, 19 Nov 2015 09:35:07 +0000 (+0200) Subject: Make func a normal argument of Text::process_lines X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=8d09cdc5e642af9a2e1210ce708790c5b41cb585;p=libs%2Fgltk.git Make func a normal argument of Text::process_lines There isn't any real reason for it to be a template argument. --- diff --git a/source/text.cpp b/source/text.cpp index 8ef1739..1d7a793 100644 --- a/source/text.cpp +++ b/source/text.cpp @@ -160,7 +160,7 @@ Geometry Text::coords_to_geometry(const Part &part, const Geometry &parent, unsi data.row = row; data.col = col; - process_lines(part, parent, first_row, data); + process_lines(part, parent, first_row, &Text::coords_to_geom_line, data); return data.result; } @@ -182,7 +182,7 @@ void Text::build(const Part &part, State state, const Geometry &parent, unsigned RenderData data; data.bld = &bld; - process_lines(part, parent, first_row, data); + process_lines(part, parent, first_row, &Text::build_line, data); } Text &Text::operator=(const string &t) @@ -217,8 +217,8 @@ void Text::find_lines() } } -template -void Text::process_lines(const Part &part, const Geometry &parent, unsigned first_row, T &data) const +template +void Text::process_lines(const Part &part, const Geometry &parent, unsigned first_row, void (Text::*func)(unsigned, const Geometry &, T &) const, T &data) const { if(!style) return; diff --git a/source/text.h b/source/text.h index f688d49..c49b167 100644 --- a/source/text.h +++ b/source/text.h @@ -61,8 +61,8 @@ public: private: void find_lines(); - template - void process_lines(const Part &, const Geometry &, unsigned, T &) const; + template + void process_lines(const Part &, const Geometry &, unsigned, void (Text::*)(unsigned, const Geometry &, T &) const, T &) const; void build_line(unsigned, const Geometry &, RenderData &) const; void coords_to_geom_line(unsigned, const Geometry &, CoordsToGeomData &) const;