Horizon
imp_decal.hpp
1 #pragma once
2 #include "imp_layer.hpp"
3 #include "core/core_decal.hpp"
4 
5 namespace horizon {
6 class ImpDecal : public ImpLayer {
7 public:
8  ImpDecal(const std::string &decal_filename, const std::string &pool_path);
9 
10 protected:
11  void construct() override;
12 
13  ActionCatalogItem::Availability get_editor_type_for_action() const override
14  {
15  return ActionCatalogItem::AVAILABLE_IN_DECAL;
16  };
17 
18  std::map<ObjectType, SelectionFilterInfo> get_selection_filter_info() const override;
19  void load_default_layers() override;
20 
21 private:
22  void canvas_update() override;
23  CoreDecal core_decal;
24  Decal &decal;
25 
26  class HeaderButton *header_button = nullptr;
27  Gtk::Entry *name_entry = nullptr;
28 
29  void update_header();
30 };
31 } // namespace horizon