X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fstyle.cpp;h=44ad4144931daf223fb96e8bca478a35a4b8063a;hb=51fd0d0fe7ad8a617de8f71985e0c4cb60fec3a9;hp=8eb5de1e79cb7853a1828dfb12248551204ed787;hpb=787dd5572e904a87686e7309401b86e0c528d823;p=libs%2Fgltk.git diff --git a/source/style.cpp b/source/style.cpp index 8eb5de1..44ad414 100644 --- a/source/style.cpp +++ b/source/style.cpp @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspgltk -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include "resources.h" #include "style.h" @@ -13,10 +6,18 @@ using namespace std; namespace Msp { namespace GLtk { -Style::Style(Resources &r): - font(&r.get_default_font()) +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) @@ -31,14 +32,27 @@ Style::Loader::Loader(Style &s, Resources &r): style(s), res(r) { - add("font", &Style::font); + if(!style.font) + { + style.font = &r.get_default_font(); + style.font_size = style.font->get_native_size(); + } + + add("font", &Loader::font); add("font_color", &Loader::font_color); + add("font_size", &Style::font_size); add("part", static_cast(&Loader::part)); add("part", static_cast(&Loader::part)); // Deprecated alias add("special", static_cast(&Loader::part)); } +void Style::Loader::font(const string &n) +{ + style.font = &res.get(n); + style.font_size = style.font->get_native_size(); +} + void Style::Loader::font_color(float r, float g, float b) { style.font_color = GL::Color(r, g, b);