Horizon
Loading...
Searching...
No Matches
layer_box.hpp
1#pragma once
2#include <gtkmm.h>
3#include "canvas/layer_display.hpp"
4#include "canvas/canvas_gl.hpp"
5
6namespace horizon {
7class LayerBox : public Gtk::Box {
8public:
9 LayerBox(class LayerProvider &lp, bool show_title = true);
10 void set_appearance(const Appearance &a);
11 void update();
12 Glib::PropertyProxy<int> property_work_layer()
13 {
14 return p_property_work_layer.get_proxy();
15 }
16 typedef sigc::signal<void, int, LayerDisplay> type_signal_set_layer_display;
17 type_signal_set_layer_display signal_set_layer_display()
18 {
19 return s_signal_set_layer_display;
20 }
21
22
23 Glib::PropertyProxy<float> property_layer_opacity()
24 {
25 return p_property_layer_opacity.get_proxy();
26 }
27 Glib::PropertyProxy<CanvasGL::HighlightMode> property_highlight_mode()
28 {
29 return p_property_highlight_mode.get_proxy();
30 }
31 Glib::PropertyProxy<CanvasGL::LayerMode> property_layer_mode()
32 {
33 return p_property_layer_mode.get_proxy();
34 }
35 void set_layer_display(int layer, const LayerDisplay &ld);
36
37 json serialize();
38 void load_from_json(const json &j);
39
40private:
41 class LayerProvider &lp;
42 Appearance appearance;
43
44 Gtk::ListBox *lb = nullptr;
45
46 Glib::Property<int> p_property_work_layer;
47 Glib::Property<float> p_property_layer_opacity;
48 Glib::Property<CanvasGL::HighlightMode> p_property_highlight_mode;
49 Glib::Property<CanvasGL::LayerMode> p_property_layer_mode;
50 type_signal_set_layer_display s_signal_set_layer_display;
51 void emit_layer_display(class LayerBoxRow *row);
52 void update_work_layer();
53
54 Glib::RefPtr<Glib::Binding> binding_select_work_layer_only;
55 Glib::RefPtr<Glib::Binding> binding_layer_opacity;
56};
57} // namespace horizon
Definition appearance.hpp:7
Definition layer_box.cpp:196
Definition layer_box.hpp:7
Definition layer_display.hpp:5
Definition layer_provider.hpp:8
a class to store JSON values
Definition json.hpp:177