#include <string>
#include <msp/datafile/objectloader.h>
#include "geometry.h"
+#include "mspgltk_api.h"
#include "state.h"
namespace Msp {
namespace GLtk {
-class CachedPart;
class Graphic;
+class PartCache;
class Resources;
/**
Defines a single graphical element of a widget style.
*/
-class Part
+class MSPGLTK_API Part
{
public:
class Loader: public DataFile::CollectionObjectLoader<Part>
{
public:
Loader(Part &, Resources &);
- ~Loader();
+
private:
+ void finish() override;
+
+ void graphic_normal(const std::string &);
void graphic(State, const std::string &);
void align(float, float);
void fill(float, float);
private:
std::string name;
- const Graphic *graphic[N_STATES_];
+ 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;
const Geometry &get_geometry() const { return geom; }
const Sides &get_margin() const { return margin; }
const Alignment &get_alignment() const { return align; }
- void build(const Geometry &, State, CachedPart &) const;
+ void build(const Geometry &, State, PartCache &) const;
};
} // namespace GLtk