--- /dev/null
+#ifndef MSP_GLTK_PART_H_
+#define MSP_GLTK_PART_H_
+
+#include <map>
+#include <string>
+#include <msp/parser/loader.h>
+#include "alignment.h"
+#include "state.h"
+
+namespace Msp {
+namespace GLtk {
+
+class Graphic;
+class Resources;
+
+class Part
+{
+public:
+ class Loader: public Parser::Loader
+ {
+ public:
+ Loader(Part &);
+ private:
+ Part ∂
+
+ void graphic(State, const std::string &);
+ void align(int, int);
+ void fill(bool, bool);
+ };
+
+ Part(const Resources &, const std::string &);
+ const std::string &get_name() const { return name; }
+ const Graphic *get_graphic(State) const;
+ 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;
+private:
+ const Resources &res;
+ std::string name;
+ const Graphic *graphic[N_STATES_];
+ Alignment align;
+ bool fill_x;
+ bool fill_y;
+};
+typedef std::list<Part> PartSeq;
+
+} // namespace GLtk
+} // namespace Msp
+
+#endif