Horizon
property_panel.hpp
1 #pragma once
2 #include <gtkmm.h>
3 #include "common/common.hpp"
4 #include "canvas/selectables.hpp"
5 #include "common/object_descr.hpp"
6 #include <set>
7 
8 namespace horizon {
9 
10 class PropertyPanel : public Gtk::Expander {
11  friend class PropertyEditor;
12 
13 public:
14  PropertyPanel(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &x, ObjectType ty, class Core *c);
15  static PropertyPanel *create(ObjectType t, Core *c, class PropertyPanels *parent);
16  ObjectType get_type();
17  void update_objects(const std::set<SelectableRef> &selection);
18  class PropertyPanels *parent;
19  void reload();
20 
21  virtual ~PropertyPanel(){};
22 
23 private:
24  ObjectType type;
25  class Core *core;
26  Gtk::MenuButton *button_sel;
27  Gtk::Label *button_sel_label;
28  Gtk::Button *button_prev;
29  Gtk::Button *button_next;
30 
31  Gtk::Menu sel_menu;
32 
33  void update_selector();
34  void go(int dir);
35 
36  Gtk::Box *editors_box = nullptr;
37  std::deque<UUID> objects;
38  int object_current = 0;
39 
40  void handle_changed(ObjectProperty::ID property, const class PropertyValue &value, bool all);
41  void handle_apply_all(ObjectProperty::ID property, const class PropertyValue &value);
42 
43  ObjectProperty::ID last_property;
44  gint64 last_property_time;
45 
46  sigc::connection throttle_connection;
47 };
48 } // namespace horizon
Where Tools and and documents meet.
Definition: core.hpp:42
Definition: property_editor.hpp:9
Definition: property_panel.hpp:10
Definition: property_panels.hpp:8
Definition: core_properties.hpp:7