]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/style.cpp
Add a persistent view size attribute to List
[libs/gltk.git] / source / style.cpp
index 44ad4144931daf223fb96e8bca478a35a4b8063a..f26112a6c14c688674b13cc7adb40c415adcc151 100644 (file)
@@ -29,45 +29,42 @@ const Part *Style::get_part(const string &name) const
 
 
 Style::Loader::Loader(Style &s, Resources &r):
-       style(s),
-       res(r)
+       DataFile::CollectionObjectLoader<Style, Resources>(s, &r)
 {
-       if(!style.font)
+       if(!obj.font)
        {
-               style.font = &r.get_default_font();
-               style.font_size = style.font->get_native_size();
+               obj.font = &get_collection().get_default_font();
+               obj.font_size = obj.font->get_native_size();
        }
 
        add("font",       &Loader::font);
        add("font_color", &Loader::font_color);
        add("font_size",  &Style::font_size);
-       add("part",       static_cast<void (Loader::*)()>(&Loader::part));
-       add("part",       static_cast<void (Loader::*)(const std::string &)>(&Loader::part));
-       // Deprecated alias
-       add("special",    static_cast<void (Loader::*)(const std::string &)>(&Loader::part));
+       add("part",       &Loader::part);
+       add("part",       &Loader::unnamed_part);
 }
 
 void Style::Loader::font(const string &n)
 {
-       style.font = &res.get<GL::Font>(n);
-       style.font_size = style.font->get_native_size();
+       obj.font = &get_collection().get<GL::Font>(n);
+       obj.font_size = obj.font->get_native_size();
 }
 
 void Style::Loader::font_color(float r, float g, float b)
 {
-       style.font_color = GL::Color(r, g, b);
+       obj.font_color = GL::Color(r, g, b);
 }
 
-void Style::Loader::part()
+void Style::Loader::part(const string &n)
 {
-       part(string());
+       Part p(n);
+       load_sub(p, get_collection());
+       obj.parts.push_back(p);
 }
 
-void Style::Loader::part(const string &n)
+void Style::Loader::unnamed_part()
 {
-       Part p(n);
-       load_sub(p, res);
-       style.parts.push_back(p);
+       part(string());
 }
 
 } // namespace GLtk