Horizon
parameter_set_editor.hpp
1 #pragma once
2 #include <gtkmm.h>
3 #include "parameter/set.hpp"
4 #include "util/changeable.hpp"
5 
6 namespace horizon {
7 class ParameterSetEditor : public Gtk::Box, public Changeable {
8  friend class ParameterEditor;
9 
10 public:
11  ParameterSetEditor(ParameterSet *ps, bool populate_init = true);
12  void populate();
13  void focus_first();
14  void set_button_margin_left(int margin);
15  void add_or_set_parameter(ParameterID param, int64_t value);
16 
17  typedef sigc::signal<void> type_signal_activate_last;
18  type_signal_activate_last signal_activate_last()
19  {
20  return s_signal_activate_last;
21  }
22 
23  typedef sigc::signal<void, ParameterID> type_signal_apply_all;
24  type_signal_apply_all signal_apply_all()
25  {
26  return s_signal_apply_all;
27  }
28 
29 protected:
30  virtual Gtk::Widget *create_extra_widget(ParameterID id);
31  virtual void erase_cb(ParameterID id)
32  {
33  }
34 
35 private:
36  Gtk::MenuButton *add_button = nullptr;
37  Gtk::ListBox *listbox = nullptr;
38  Gtk::Menu menu;
39  std::map<ParameterID, Gtk::MenuItem &> menu_items;
40  ParameterSet *parameter_set;
41  Glib::RefPtr<Gtk::SizeGroup> sg_label;
42  void update_menu();
43 
44  type_signal_activate_last s_signal_activate_last;
45 
46 protected:
47  type_signal_apply_all s_signal_apply_all;
48 };
49 } // namespace horizon
horizon::ParameterEditor
Definition: parameter_set_editor.cpp:20
horizon::ParameterSetEditor
Definition: parameter_set_editor.hpp:7
horizon::Changeable
Definition: changeable.hpp:5
libzip::int64_t
zip_int64_t int64_t
zip_int64_t typedef.
Definition: zip.hpp:103