2 #include "frame/frame.hpp"
4 #include "nlohmann/json.hpp"
5 #include "document/idocument_frame.hpp"
8 class CoreFrame :
public Core,
public IDocumentFrame {
10 CoreFrame(
const std::string &frame_filename, IPool &pool);
11 bool has_object_type(ObjectType ty)
const override;
13 Frame &get_frame()
override;
14 const Frame *get_canvas_data()
const;
15 class LayerProvider &get_layer_provider()
override;
17 void rebuild(
bool from_undo =
false)
override;
19 std::pair<Coordi, Coordi> get_bbox()
override;
21 const std::string &get_filename()
const override;
23 ObjectType get_object_type()
const override
25 return ObjectType::FRAME;
34 std::map<UUID, Polygon> *get_polygon_map()
override;
35 std::map<UUID, Junction> *get_junction_map()
override;
36 std::map<UUID, Text> *get_text_map()
override;
37 std::map<UUID, Line> *get_line_map()
override;
38 std::map<UUID, Arc> *get_arc_map()
override;
42 std::string m_frame_filename;
44 class HistoryItem :
public Core::HistoryItem {
46 HistoryItem(
const Frame &r);
49 void history_push()
override;
50 void history_load(
unsigned int i)
override;
51 void save(
const std::string &suffix)
override;
52 void delete_autosave()
override;