Horizon
imp_layer.hpp
1 #pragma once
2 #include "imp.hpp"
3 
4 namespace horizon {
5 class ImpLayer : public ImpBase {
6  friend class ImpInterface;
7 
8 public:
9  using ImpBase::ImpBase;
10 
11  bool is_layered() const override
12  {
13  return true;
14  };
15 
16 protected:
17  void construct_layer_box(bool pack = true);
18  class LayerBox *layer_box;
19  Glib::RefPtr<Glib::Binding> work_layer_binding;
20  Glib::RefPtr<Glib::Binding> layer_opacity_binding;
21  void apply_preferences() override;
22  void get_save_meta(json &j) override;
23  virtual void load_default_layers();
24  void add_view_angle_actions();
25 
26  const CanvasPreferences &get_canvas_preferences() override
27  {
28  return preferences.canvas_layer;
29  }
30 
31  void handle_extra_button(const GdkEventButton *button_event) override;
32 
33  ~ImpLayer()
34  {
35  }
36 
37  std::vector<std::string> get_view_hints() override;
38 
39  int view_angle = 1;
40  void set_view_angle(int angle);
41  Gtk::Label *view_angle_label = nullptr;
42  Gtk::Button *view_angle_button = nullptr;
43 
44  class ViewAngleWindow *view_angle_window = nullptr;
45  sigc::connection view_angle_window_conn;
46 };
47 } // namespace horizon
Definition: preferences.hpp:15
Definition: imp.hpp:38
Definition: imp_interface.hpp:12
Definition: imp_layer.hpp:5
Definition: layer_box.hpp:8
Definition: view_angle_window.hpp:5
a class to store JSON values
Definition: json.hpp:166