X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmidi_list_editor.h;h=67b2f9192365059bfa862a20ef128e86aca5b29d;hb=99aa8c6338e47b41143f799fdcb35d1699548076;hp=ac931dcca6b881854635ce258cd566aaec490a1b;hpb=3845af6ce92ef15637ffb09410f442e7b4a104c3;p=ardour.git diff --git a/gtk2_ardour/midi_list_editor.h b/gtk2_ardour/midi_list_editor.h index ac931dcca6..67b2f91923 100644 --- a/gtk2_ardour/midi_list_editor.h +++ b/gtk2_ardour/midi_list_editor.h @@ -1,4 +1,4 @@ -/* +/* Copyright (C) 2009 Paul Davis This program is free software; you can redistribute it and/or modify @@ -26,22 +26,27 @@ #include "evoral/types.hpp" +#include "ardour/session_handle.h" + #include "ardour_dialog.h" namespace ARDOUR { class MidiRegion; class MidiModel; + class Session; }; class MidiListEditor : public ArdourDialog { public: - MidiListEditor(boost::shared_ptr); + typedef Evoral::Note NoteType; + + MidiListEditor(ARDOUR::Session*, boost::shared_ptr); ~MidiListEditor(); private: struct MidiListModelColumns : public Gtk::TreeModel::ColumnRecord { - MidiListModelColumns() { + MidiListModelColumns() { add (channel); add (note); add (note_name); @@ -49,25 +54,36 @@ class MidiListEditor : public ArdourDialog add (start); add (length); add (end); + add (_note); }; Gtk::TreeModelColumn channel; Gtk::TreeModelColumn note; Gtk::TreeModelColumn note_name; Gtk::TreeModelColumn velocity; - Gtk::TreeModelColumn start; - Gtk::TreeModelColumn length; - Gtk::TreeModelColumn end; + Gtk::TreeModelColumn start; + Gtk::TreeModelColumn length; + Gtk::TreeModelColumn end; + Gtk::TreeModelColumn > _note; }; - + MidiListModelColumns columns; Glib::RefPtr model; Gtk::TreeView view; Gtk::ScrolledWindow scroller; + std::string _current_edit; boost::shared_ptr 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_ */