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  void apply_preferences() override;
16 
17  ActionCatalogItem::Availability get_editor_type_for_action() const
18  {
19  return ActionCatalogItem::AVAILABLE_IN_PACKAGE;
20  };
21  ObjectType get_editor_type() const override
22  {
23  return ObjectType::PACKAGE;
24  }
25 
26  std::string get_hud_text(std::set<SelectableRef> &sel) override;
27  void update_action_sensitivity() override;
28  void update_monitor() override;
29 
30 private:
31  void canvas_update() override;
32  CorePackage core_package;
33 
34  Block fake_block;
35  Board fake_board;
36 
37  class FootprintGeneratorWindow *footprint_generator_window;
38  class View3DWindow *view_3d_window = nullptr;
39  std::string ask_3d_model_filename(const std::string &current_filename = "");
40 
41  Gtk::ListBox *models_listbox = nullptr;
42  UUID current_model;
43 };
44 } // namespace horizon
Definition: 3d_view.hpp:9
Definition: footprint_generator_window.hpp:11
Definition: imp_layer.hpp:5
Definition: board.hpp:29
A block is one level of hierarchy in the netlist.
Definition: block.hpp:26
Definition: imp_package.cpp:42
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:9