+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
#include "resources.h"
#include "style.h"
namespace Msp {
namespace GLtk {
-Style::Style(const Resources &r, const string &w, const string &n):
- res(r),
- widget(w),
- name(n),
- font(&res.get_default_font())
+Style::Style(Resources &r):
+ font(&r.get_default_font())
{ }
+const Part *Style::get_part(const string &name) const
+{
+ for(PartSeq::const_iterator i=parts.begin(); i!=parts.end(); ++i)
+ if(i->get_name()==name)
+ return &*i;
+
+ return 0;
+}
+
-Style::Loader::Loader(Style &s):
- style(s)
+Style::Loader::Loader(Style &s, Resources &r):
+ style(s),
+ res(r)
{
- add("font", &Loader::font);
+ add("font", &Style::font);
add("font_color", &Loader::font_color);
- add("part", &Loader::part);
+ 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));
}
-void Style::Loader::font(const string &f)
+void Style::Loader::font_color(float r, float g, float b)
{
- style.font=&style.res.get_font(f);
+ style.font_color = GL::Color(r, g, b);
}
-void Style::Loader::font_color(float r, float g, float b)
+void Style::Loader::part()
{
- style.font_color=Color(r, g, b);
+ part(string());
}
void Style::Loader::part(const string &n)
{
- Part p(style.res, n);
- load_sub(p);
+ Part p(n);
+ load_sub(p, res);
style.parts.push_back(p);
}