Horizon
imp_symbol.hpp
1 #pragma once
2 #include "imp.hpp"
3 #include "core/core_symbol.hpp"
4 #include "search/searcher_symbol.hpp"
5 
6 namespace horizon {
7 class ImpSymbol : public ImpBase {
8 public:
9  ImpSymbol(const std::string &symbol_filename, const std::string &pool_path);
10 
11 protected:
12  void construct() override;
13 
14  ActionCatalogItem::Availability get_editor_type_for_action() const override
15  {
16  return ActionCatalogItem::AVAILABLE_IN_SYMBOL;
17  };
18 
19  void update_monitor() override;
20 
21  Searcher *get_searcher_ptr() override
22  {
23  return &searcher;
24  };
25 
26  bool uses_dynamic_version() const override
27  {
28  return true;
29  }
30 
31  unsigned int get_required_version() const override;
32 
33 private:
34  void canvas_update() override;
35  void apply_preferences() override;
36  CoreSymbol core_symbol;
37  Symbol &symbol;
38  SearcherSymbol searcher;
39 
40  class HeaderButton *header_button = nullptr;
41  Gtk::Entry *name_entry = nullptr;
42  Gtk::Label *unit_label = nullptr;
43  Gtk::Switch *can_expand_switch = nullptr;
44  Gtk::Button *expand_preview_button = nullptr;
45  class SymbolPreviewWindow *symbol_preview_window = nullptr;
46  class SymbolPreviewExpandWindow *symbol_preview_expand_window = nullptr;
47  class UnplacedBox *unplaced_box = nullptr;
48  void update_unplaced();
49  void update_header();
50  void handle_selection_cross_probe() override;
51 
52  class CanvasAnnotation *bbox_annotation = nullptr;
53  void update_bbox_annotation();
54 };
55 } // namespace horizon
Definition: annotation.hpp:7
Definition: core_symbol.hpp:10
Definition: header_button.hpp:5
Definition: imp.hpp:35
Definition: imp_symbol.hpp:7
Definition: searcher_symbol.hpp:5
Definition: searcher.hpp:9
Definition: symbol_preview_expand_window.hpp:9
Definition: symbol_preview_window.hpp:9
Definition: symbol.hpp:72
Definition: unplaced_box.hpp:9