]> git.tdb.fi Git - libs/gltk.git/commitdiff
Make func a normal argument of Text::process_lines
authorMikko Rasa <tdb@tdb.fi>
Thu, 19 Nov 2015 09:35:07 +0000 (11:35 +0200)
committerMikko Rasa <tdb@tdb.fi>
Thu, 19 Nov 2015 09:35:07 +0000 (11:35 +0200)
There isn't any real reason for it to be a template argument.

source/text.cpp
source/text.h

index 8ef17392f353259c0fa83ec95b1f5b4e6a08a41c..1d7a7930dc4bc58c695e8d2082fb5895e9598f66 100644 (file)
@@ -160,7 +160,7 @@ Geometry Text::coords_to_geometry(const Part &part, const Geometry &parent, unsi
        data.row = row;
        data.col = col;
 
-       process_lines<CoordsToGeomData, &Text::coords_to_geom_line>(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<RenderData, &Text::build_line>(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<typename T, void (Text::*func)(unsigned, const Geometry &, T &) const>
-void Text::process_lines(const Part &part, const Geometry &parent, unsigned first_row, T &data) const
+template<typename T>
+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;
index f688d4936d90d6354a56d07bac9163da74b52ccb..c49b167a844945d3a55cab385e9bbb5fa7c2f502 100644 (file)
@@ -61,8 +61,8 @@ public:
 private:
        void find_lines();
 
-       template<typename T, void (Text::*)(unsigned, const Geometry &, T &) const>
-       void process_lines(const Part &, const Geometry &, unsigned, T &) const;
+       template<typename T>
+       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;