+/* $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 "alignment.h"
+#include "geometry.h"
#include "state.h"
namespace Msp {
class Graphic;
class Resources;
+/**
+Defines a single graphical element of a widget style.
+*/
class Part
{
public:
~Loader();
private:
void graphic(State, const std::string &);
- void align(int, int);
- void fill(bool, bool);
+ void align(float, float);
+ void fill(float, float);
+ void margin();
};
+private:
+ std::string name;
+ const Graphic *graphic[N_STATES_];
+ Geometry geom;
+ Sides margin;
+ Alignment align;
+
+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 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;
-private:
- std::string name;
- const Graphic *graphic[N_STATES_];
- unsigned width;
- unsigned height;
- Alignment align;
- bool fill_x;
- bool fill_y;
};
typedef std::list<Part> PartSeq;