3 #include "pool/package.hpp"
4 #include "document/idocument_package.hpp"
7 class CorePackage :
public Core,
public virtual IDocumentPackage {
9 CorePackage(
const std::string &filename, IPool &pool);
10 bool has_object_type(ObjectType ty)
const override;
12 Package &get_package()
override;
21 class LayerProvider &get_layer_provider()
override;
23 bool set_property(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
24 const class PropertyValue &value)
override;
25 bool get_property(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
26 class PropertyValue &value)
override;
27 bool get_property_meta(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
28 class PropertyMeta &meta)
override;
30 std::string get_display_name(ObjectType type,
const UUID &uu)
override;
31 class Rules *get_rules()
override;
33 void rebuild(
bool from_undo =
false)
override;
35 const Package *get_canvas_data();
36 std::pair<Coordi, Coordi> get_bbox()
override;
39 void reload_pool()
override;
41 const std::string &get_filename()
const override;
43 ObjectType get_object_type()
const override
45 return ObjectType::PACKAGE;
50 return package.version;
54 std::map<UUID, Junction> *get_junction_map()
override;
55 std::map<UUID, Line> *get_line_map()
override;
56 std::map<UUID, Arc> *get_arc_map()
override;
57 std::map<UUID, Text> *get_text_map()
override;
58 std::map<UUID, Polygon> *get_polygon_map()
override;
59 std::map<UUID, Hole> *get_hole_map()
override;
60 std::map<UUID, Keepout> *get_keepout_map()
override;
61 std::map<UUID, Dimension> *get_dimension_map()
override;
62 std::map<UUID, Picture> *get_picture_map()
override;
65 std::string m_filename;
66 std::string m_pictures_dir;
70 class HistoryItem :
public Core::HistoryItem {
72 HistoryItem(
const Package &k) : package(k)
77 void history_push()
override;
78 void history_load(
unsigned int i)
override;
79 void save(
const std::string &suffix)
override;
80 void delete_autosave()
override;
83 std::string parameter_program_code;
84 ParameterSet parameter_set;
86 std::map<UUID, Package::Model> models;