+/* $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/parser/loader.h>
+#include <msp/datafile/loader.h>
#include "alignment.h"
#include "state.h"
class Graphic;
class Resources;
+/**
+Defines a single graphical element of a widget style.
+*/
class Part
{
public:
- class Loader: public Parser::Loader
+ class Loader: public DataFile::Loader
{
- public:
- Loader(Part &);
private:
Part ∂
+ Resources &res;
+ public:
+ Loader(Part &, Resources &);
+ ~Loader();
+ private:
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_];
+ unsigned width;
+ unsigned height;
Alignment align;
bool fill_x;
bool fill_y;
+
+public:
+ Part(const std::string &);
+ const std::string &get_name() const { return name; }
+ const Graphic *get_graphic(State) const;
+ unsigned get_width() const { return width; }
+ unsigned get_height() const { return height; }
+ 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;
};
typedef std::list<Part> PartSeq;