]> git.tdb.fi Git - libs/gltk.git/commitdiff
Change Style so it doesn't need a special loading function
authorMikko Rasa <tdb@tdb.fi>
Sun, 2 Dec 2012 21:38:30 +0000 (23:38 +0200)
committerMikko Rasa <tdb@tdb.fi>
Sun, 2 Dec 2012 21:38:30 +0000 (23:38 +0200)
source/resources.cpp
source/resources.h
source/style.cpp
source/style.h

index b7586e886ee41df0eb711230c1ebe4bfcba8402c..3e0f851d701e3b961a38b564a1280507861f0d77 100644 (file)
@@ -12,6 +12,7 @@ Resources::Resources():
        add_type<Graphic>().keyword("graphic");
        add_type<GL::Texture2D>().keyword("texture");
        add_type<GL::Font>().keyword("font");
+       add_type<Style>().keyword("style");
 }
 
 const GL::Font &Resources::get_default_font() const
@@ -29,7 +30,6 @@ Resources::Loader::Loader(Resources &r):
 {
        add("default_font", &Loader::default_font);
        add("font", &Loader::font);
-       add("style", &Loader::style);
 }
 
 void Resources::Loader::default_font(const string &name)
@@ -47,13 +47,5 @@ void Resources::Loader::font(const string &name)
        fnt.release();
 }
 
-void Resources::Loader::style(const string &name)
-{
-       RefPtr<Style> stl = new Style(res);
-       load_sub(*stl, res);
-       res.add(name, stl.get());
-       stl.release();
-}
-
 } // namespace GLtk
 } // namespace Msp
index d183fc6c1cd2b94ac03f9401688e13240a27464e..e68d89fc178c16e79f20aaae6c262920077ec8f3 100644 (file)
@@ -32,7 +32,6 @@ public:
        private:
                void default_font(const std::string &);
                void font(const std::string &);
-               void style(const std::string &);
        };
 
 public:
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));
index 56f7ac484afce3e94fd2ee4b639b70466e32eeeb..620aa21245bdf03f2ca0c788ffb9aa9c88dc2b67 100644 (file)
@@ -46,8 +46,8 @@ private:
        PartSeq parts;
 
 public:
-       Style(Resources &);
-       const GL::Font &get_font() const  { return *font; }
+       Style();
+       const GL::Font &get_font() const;
        unsigned get_font_size() const { return font_size; }
        const GL::Color &get_font_color() const { return font_color; }
        const PartSeq &get_parts() const { return parts; }