+bool
+MidiListEditor::key_press (GdkEventKey* ev)
+{
+ bool editing = !_current_edit.empty();
+ bool ret = false;
+
+ if (editing) {
+ switch (ev->keyval) {
+ case GDK_Tab:
+ break;
+ case GDK_Right:
+ break;
+ case GDK_Left:
+ break;
+ case GDK_Up:
+ break;
+ case GDK_Down:
+ break;
+ case GDK_Escape:
+ break;
+ }
+ }
+
+ return ret;
+}
+
+bool
+MidiListEditor::key_release (GdkEventKey* ev)
+{
+ bool ret = false;
+
+ switch (ev->keyval) {
+ case GDK_Delete:
+ delete_selected_note ();
+ ret = true;
+ break;
+ default:
+ break;
+ }
+
+ return ret;
+}
+
+void
+MidiListEditor::delete_selected_note ()
+{
+ Glib::RefPtr<TreeSelection> selection = view.get_selection();
+ TreeView::Selection::ListHandle_Path rows = selection->get_selected_rows ();
+
+ if (rows.empty()) {
+ return;
+ }
+
+ TreeView::Selection::ListHandle_Path::iterator i = rows.begin();
+ TreeIter iter;
+
+ /* selection mode is single, so rows.begin() is it */
+
+ if ((iter = model->get_iter (*i))) {
+ boost::shared_ptr<NoteType> note = (*iter)[columns._note];
+ cerr << "Would have deleted " << *note << endl;
+ }
+
+}
+
+void
+MidiListEditor::editing_started (CellEditable*, const string& path, int colno)
+{
+ _current_edit = path;
+ cerr << "Now editing " << _current_edit << " Column " << colno << endl;
+}
+
+void
+MidiListEditor::editing_canceled ()
+{
+ _current_edit = "";
+}
+