+/* LongTextMetadataField */
+
+LongTextMetadataField::LongTextMetadataField (Getter getter, Setter setter, string const & field_name, guint width ) :
+ TextMetadataField (getter, setter, field_name, width)
+{
+ tview = 0;
+ label = 0;
+ value_label = 0;
+}
+
+MetadataPtr
+LongTextMetadataField::copy ()
+{
+ return MetadataPtr (new TextMetadataField (getter, setter, _name, width));
+}
+
+Gtk::Widget &
+LongTextMetadataField::edit_widget ()
+{
+ tview = Gtk::manage (new Gtk::TextView());
+
+ tview->get_buffer()->set_text (_value);
+ tview->set_wrap_mode (Gtk::WRAP_WORD);
+ tview->set_size_request (-1, 400);
+ tview->set_editable (true);
+
+ Glib::RefPtr<Gtk::TextBuffer> tb (tview->get_buffer());
+ tb->signal_changed().connect (sigc::mem_fun(*this, &LongTextMetadataField::update_value));
+
+ return *tview;
+}
+
+void
+LongTextMetadataField::update_value ()
+{
+ _value = tview->get_buffer()->get_text ();
+}
+