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 #include "search/searcher_package.hpp"
7 
8 namespace horizon {
9 class ImpPackage : public ImpLayer {
10  friend class ModelEditor;
11 
12 public:
13  ImpPackage(const std::string &package_filename, const std::string &pool_path);
14 
15  std::map<ObjectType, SelectionFilterInfo> get_selection_filter_info() const override;
16 
17  ~ImpPackage();
18 
19 protected:
20  void construct() override;
21  void apply_preferences() override;
22  void update_highlights() override;
23 
24  ActionCatalogItem::Availability get_editor_type_for_action() const override
25  {
26  return ActionCatalogItem::AVAILABLE_IN_PACKAGE;
27  };
28 
29  std::string get_hud_text(std::set<SelectableRef> &sel) override;
30  void update_action_sensitivity() override;
31  void update_monitor() override;
32  ActionToolID get_doubleclick_action(ObjectType type, const UUID &uu) override;
33 
34  Searcher *get_searcher_ptr() override
35  {
36  return &searcher;
37  }
38 
39 private:
40  void canvas_update() override;
41  CorePackage core_package;
42  Package &package;
43  SearcherPackage searcher;
44 
45  Block fake_block;
46  Board fake_board;
47 
48  class FootprintGeneratorWindow *footprint_generator_window = nullptr;
49  class View3DWindow *view_3d_window = nullptr;
50  std::string ask_3d_model_filename(const std::string &current_filename = "");
51  void construct_3d();
52 
53  Gtk::ListBox *models_listbox = nullptr;
54  class LayerHelpBox *layer_help_box = nullptr;
55  UUID current_model;
56 
57  class HeaderButton *header_button = nullptr;
58  Gtk::Entry *entry_name = nullptr;
59  class PoolBrowserButton *browser_alt_button = nullptr;
60  void check_alt_pkg();
61 
62  void update_header();
63 };
64 } // namespace horizon
horizon::HeaderButton
Definition: header_button.hpp:5
horizon::SearcherPackage
Definition: searcher_package.hpp:5
horizon::Board
Definition: board.hpp:42
horizon::ModelEditor
Definition: imp_package_3d.cpp:10
horizon::Block
A block is one level of hierarchy in the netlist.
Definition: block.hpp:25
horizon::PoolBrowserButton
Definition: pool_browser_button.hpp:9
horizon::CorePackage
Definition: core_package.hpp:7
horizon::LayerHelpBox
Definition: layer_help_box.hpp:8
horizon::Package
Definition: package.hpp:29
horizon::Searcher
Definition: searcher.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:9
horizon::ImpLayer
Definition: imp_layer.hpp:5
horizon::FootprintGeneratorWindow
Definition: footprint_generator_window.hpp:9