Horizon
imp_package.hpp
1 #pragma once
2 #include "block/block.hpp"
3 #include "board/board.hpp"
4 #include "imp_layer.hpp"
5 
6 namespace horizon {
7 class ImpPackage : public ImpLayer {
8  friend class ModelEditor;
9 
10 public:
11  ImpPackage(const std::string &package_filename, const std::string &pool_path);
12 
13 protected:
14  void construct() override;
15 
16  ActionCatalogItem::Availability get_editor_type_for_action() const
17  {
18  return ActionCatalogItem::AVAILABLE_IN_PACKAGE;
19  };
20 
21 private:
22  void canvas_update() override;
23  CorePackage core_package;
24 
25  Block fake_block;
26  Board fake_board;
27 
28  class FootprintGeneratorWindow *footprint_generator_window;
29  class View3DWindow *view_3d_window = nullptr;
30  std::string ask_3d_model_filename(const std::string &current_filename = "");
31 
32  Gtk::ListBox *models_listbox = nullptr;
33  UUID current_model;
34 };
35 } // namespace horizon
Definition: 3d_view.hpp:6
Definition: footprint_generator_window.hpp:11
Definition: imp_layer.hpp:5
Definition: board.hpp:28
A block is one level of hierarchy in the netlist.
Definition: block.hpp:25
Definition: imp_package.cpp:31
Definition: imp_package.hpp:7
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
Definition: core_package.hpp:11
Definition: block.cpp:7