Extend LV2UI-Request-Parameter File/Path GUI
[ardour.git] / gtk2_ardour / session_metadata_dialog.h
index e1d02337b43e1c17262b1c440d5ee3f8a685716d..72e56effc5f64a2d00acab9fedab8cbf98b30996 100644 (file)
 #undef interface
 #endif
 
-#include <gtkmm.h>
+#include <gtkmm/box.h>
+#include <gtkmm/button.h>
+#include <gtkmm/checkbutton.h>
+#include <gtkmm/entry.h>
+#include <gtkmm/label.h>
+#include <gtkmm/liststore.h>
+#include <gtkmm/notebook.h>
+#include <gtkmm/table.h>
+#include <gtkmm/textview.h>
+#include <gtkmm/treemodel.h>
+#include <gtkmm/treeview.h>
+
 #include <boost/shared_ptr.hpp>
 
 #include <string>
@@ -65,7 +76,7 @@ protected:
 /// MetadataField that contains text
 class TextMetadataField : public MetadataField
 {
-private:
+protected:
        typedef std::string (ARDOUR::SessionMetadata::*Getter) () const;
        typedef void (ARDOUR::SessionMetadata::*Setter) (std::string const &);
 public:
@@ -78,7 +89,7 @@ public:
        Gtk::Widget & name_widget ();
        Gtk::Widget & value_widget ();
        Gtk::Widget & edit_widget ();
-private:
+protected:
        void update_value ();
 
        Getter getter;
@@ -91,6 +102,20 @@ private:
        guint width;
 };
 
+/// MetadataField that contains longform text
+class LongTextMetadataField : public TextMetadataField
+{
+public:
+       LongTextMetadataField (Getter getter, Setter setter, std::string const & field_name, guint width = 50);
+       MetadataPtr copy ();
+
+       Gtk::Widget & edit_widget ();
+private:
+       void update_value ();
+
+       Gtk::TextView* tview;
+};
+
 /// MetadataField that accepts only numbers
 class NumberMetadataField : public MetadataField
 {
@@ -276,6 +301,7 @@ protected:
 
 private:
        void init_user_data ();
+       void init_description_data ();
        void init_track_data ();
        void init_album_data ();
        void init_people_data ();