]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/style.cpp
Change Style so it doesn't need a special loading function
[libs/gltk.git] / source / style.cpp
index 50c2e774d5477201502f77ac2e98ad270793ad85..001b36937e03f4ab03261043d3414ae9ce49060e 100644 (file)
@@ -6,11 +6,18 @@ using namespace std;
 namespace Msp {
 namespace GLtk {
 
-Style::Style(Resources &r):
-       font(&r.get_default_font()),
-       font_size(font->get_native_size())
+Style::Style():
+       font(0),
+       font_size(0)
 { }
 
+const GL::Font &Style::get_font() const
+{
+       if(!font)
+               throw logic_error("!font");
+       return *font;
+}
+
 const Part *Style::get_part(const string &name) const
 {
        for(PartSeq::const_iterator i=parts.begin(); i!=parts.end(); ++i)
@@ -25,6 +32,12 @@ Style::Loader::Loader(Style &s, Resources &r):
        style(s),
        res(r)
 {
+       if(!style.font)
+       {
+               style.font = &r.get_default_font();
+               style.font_size = style.font->get_native_size();
+       }
+
        add("font",       &Style::font);
        add("font_color", &Loader::font_color);
        add("part",       static_cast<void (Loader::*)()>(&Loader::part));