Horizon
imp_package.hpp
1 #pragma once
2 #include "core/core_package.hpp"
3 #include "block/block.hpp"
4 #include "board/board.hpp"
5 #include "imp_layer.hpp"
6 
7 namespace horizon {
8 class ImpPackage : public ImpLayer {
9  friend class ModelEditor;
10 
11 public:
12  ImpPackage(const std::string &package_filename, const std::string &pool_path);
13 
14  std::map<ObjectType, SelectionFilterInfo> get_selection_filter_info() const override;
15 
16 protected:
17  void construct() override;
18  void apply_preferences() override;
19  void update_highlights() override;
20 
21  ActionCatalogItem::Availability get_editor_type_for_action() const override
22  {
23  return ActionCatalogItem::AVAILABLE_IN_PACKAGE;
24  };
25  ObjectType get_editor_type() const override
26  {
27  return ObjectType::PACKAGE;
28  }
29 
30  std::string get_hud_text(std::set<SelectableRef> &sel) override;
31  void update_action_sensitivity() override;
32  void update_monitor() override;
33  std::pair<ActionID, ToolID> get_doubleclick_action(ObjectType type, const UUID &uu) override;
34 
35 private:
36  void canvas_update() override;
37  CorePackage core_package;
38 
39  Block fake_block;
40  Board fake_board;
41 
42  class FootprintGeneratorWindow *footprint_generator_window;
43  class View3DWindow *view_3d_window = nullptr;
44  std::string ask_3d_model_filename(const std::string &current_filename = "");
45 
46  Gtk::ListBox *models_listbox = nullptr;
47  class LayerHelpBox *layer_help_box = nullptr;
48  UUID current_model;
49 };
50 } // namespace horizon
horizon::Board
Definition: board.hpp:31
horizon::ModelEditor
Definition: imp_package.cpp:48
horizon::Block
A block is one level of hierarchy in the netlist.
Definition: block.hpp:26
horizon::CorePackage
Definition: core_package.hpp:11
horizon::LayerHelpBox
Definition: layer_help_box.hpp:8
horizon::UUID
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
horizon::View3DWindow
Definition: 3d_view.hpp:9
horizon::ImpPackage
Definition: imp_package.hpp:8
horizon::ImpLayer
Definition: imp_layer.hpp:5
horizon::FootprintGeneratorWindow
Definition: footprint_generator_window.hpp:11