/*
- Copyright (C) 2009 Paul Davis
+ Copyright (C) 2009 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
*/
#ifndef __ardour_gtk2_midi_list_editor_h_
#include "evoral/types.hpp"
+#include "ardour/session_handle.h"
+
#include "ardour_dialog.h"
+namespace Evoral {
+ template<typename Time> class Note;
+};
+
namespace ARDOUR {
class MidiRegion;
class MidiModel;
public:
typedef Evoral::Note<Evoral::MusicalTime> NoteType;
- MidiListEditor(ARDOUR::Session&, boost::shared_ptr<ARDOUR::MidiRegion>);
+ MidiListEditor(ARDOUR::Session*, boost::shared_ptr<ARDOUR::MidiRegion>);
~MidiListEditor();
private:
add (start);
add (length);
add (end);
- add (note);
+ add (_note);
};
Gtk::TreeModelColumn<uint8_t> channel;
Gtk::TreeModelColumn<uint8_t> note;
Gtk::TreeModelColumn<boost::shared_ptr<NoteType> > _note;
};
- ARDOUR::Session& session;
MidiListModelColumns columns;
Glib::RefPtr<Gtk::ListStore> model;
Gtk::TreeView view;
Gtk::ScrolledWindow scroller;
+ std::string _current_edit;
boost::shared_ptr<ARDOUR::MidiRegion> region;
- void edited (const Glib::ustring&, const Glib::ustring&);
+ void edited (const std::string&, const std::string&);
+ void editing_started (Gtk::CellEditable*, const std::string& path, int);
+ void editing_canceled ();
+
void redisplay_model ();
+
+ bool key_press (GdkEventKey* ev);
+ bool key_release (GdkEventKey* ev);
+
+ void delete_selected_note ();
};
#endif /* __ardour_gtk2_midi_list_editor_h_ */