summaryrefslogtreecommitdiffstats
path: root/src/gui/PropertiesWindow.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-07-29 03:21:46 +0000
committerDavid Robillard <d@drobilla.net>2012-07-29 03:21:46 +0000
commit67531458e321e130b46a60557536eebe8ba91eea (patch)
tree086648d30e98a617826dc78a37149a7594c5bc36 /src/gui/PropertiesWindow.hpp
parent445604bff1dafe415014035ffa8f704c9538b4ed (diff)
downloadingen-67531458e321e130b46a60557536eebe8ba91eea.tar.gz
ingen-67531458e321e130b46a60557536eebe8ba91eea.tar.bz2
ingen-67531458e321e130b46a60557536eebe8ba91eea.zip
Add UI for adding arbitrary object properties to properties dialog.
Property information is loaded from installed LV2 data, so any appropriate properties will automatically be shown. Currently only implemented for object properties where the LV2 world contains appropriate values, needs extending for datatype properties. At the moment, only "unit" and "port property" show up for ports. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4566 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui/PropertiesWindow.hpp')
-rw-r--r--src/gui/PropertiesWindow.hpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/gui/PropertiesWindow.hpp b/src/gui/PropertiesWindow.hpp
index 31fd0388..e62fb07f 100644
--- a/src/gui/PropertiesWindow.hpp
+++ b/src/gui/PropertiesWindow.hpp
@@ -23,6 +23,8 @@
#include <gtkmm/box.h>
#include <gtkmm/builder.h>
#include <gtkmm/button.h>
+#include <gtkmm/liststore.h>
+#include <gtkmm/combobox.h>
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/table.h>
@@ -64,6 +66,18 @@ private:
int row;
};
+ struct ComboColumns : public Gtk::TreeModel::ColumnRecord {
+ ComboColumns() {
+ add(label_col);
+ add(uri_col);
+ }
+ Gtk::TreeModelColumn<Glib::ustring> label_col;
+ Gtk::TreeModelColumn<Glib::ustring> uri_col;
+ };
+
+ void add_property(const Raul::URI& uri,
+ const Raul::Atom& value);
+
Gtk::Widget* create_value_widget(const Raul::URI& uri,
const Raul::Atom& value);
@@ -72,9 +86,9 @@ private:
void on_show();
void property_changed(const Raul::URI& predicate, const Raul::Atom& value);
-
void value_edited(const Raul::URI& predicate);
-
+ void key_changed();
+ void add_clicked();
void cancel_clicked();
void apply_clicked();
void ok_clicked();
@@ -83,10 +97,16 @@ private:
Records _records;
SharedPtr<const Client::ObjectModel> _model;
+ ComboColumns _combo_columns;
+ Glib::RefPtr<Gtk::ListStore> _key_store;
+ Glib::RefPtr<Gtk::ListStore> _value_store;
sigc::connection _property_connection;
Gtk::VBox* _vbox;
Gtk::ScrolledWindow* _scrolledwindow;
Gtk::Table* _table;
+ Gtk::ComboBox* _key_combo;
+ Gtk::ComboBox* _value_combo;
+ Gtk::Button* _add_button;
Gtk::Button* _cancel_button;
Gtk::Button* _apply_button;
Gtk::Button* _ok_button;