-/* $Id$
-
-This file is part of libmspgltk
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef MSP_GLTK_PART_H_
#define MSP_GLTK_PART_H_
-#include <map>
#include <string>
-#include <msp/datafile/loader.h>
-//#include "alignment.h"
+#include <msp/datafile/objectloader.h>
#include "geometry.h"
#include "state.h"
namespace GLtk {
class Graphic;
+class PartCache;
class Resources;
/**
class Part
{
public:
- class Loader: public DataFile::Loader
+ class Loader: public DataFile::CollectionObjectLoader<Part>
{
- private:
- Part ∂
- Resources &res;
-
public:
Loader(Part &, Resources &);
~Loader();
private:
+ void graphic_normal(const std::string &);
void graphic(State, const std::string &);
void align(float, float);
- void fill(bool, bool);
+ void fill(float, float);
void margin();
+ void size(unsigned, unsigned);
};
private:
Geometry geom;
Sides margin;
Alignment align;
- bool fill_x;
- bool fill_y;
public:
Part(const std::string &);
const Geometry &get_geometry() const { return geom; }
const Sides &get_margin() const { return margin; }
const Alignment &get_alignment() const { return align; }
- bool get_fill_x() const { return fill_x; }
- bool get_fill_y() const { return fill_y; }
- void render(const Geometry &, State) const;
+ void build(const Geometry &, State, PartCache &) const;
};
-typedef std::list<Part> PartSeq;
} // namespace GLtk
} // namespace Msp