#include <gtkmm/liststore.h>
#include <gtkmm/scrolledwindow.h>
-#include "evoral/types.hpp"
-
#include "ardour/session_handle.h"
#include "ardour_window.h"
namespace Evoral {
template<typename Time> class Note;
+ class Beats;
};
namespace ARDOUR {
class MidiListEditor : public ArdourWindow
{
- public:
- typedef Evoral::Note<Evoral::MusicalTime> NoteType;
+public:
+ typedef Evoral::Note<Temporal::Beats> NoteType;
MidiListEditor(ARDOUR::Session*, boost::shared_ptr<ARDOUR::MidiRegion>,
- boost::shared_ptr<ARDOUR::MidiTrack>);
+ boost::shared_ptr<ARDOUR::MidiTrack>);
~MidiListEditor();
- private:
- struct MidiListModelColumns : public Gtk::TreeModel::ColumnRecord {
+private:
+ struct MidiListModelColumns : public Gtk::TreeModel::ColumnRecord
+ {
MidiListModelColumns() {
add (channel);
add (note);
add (velocity);
add (start);
add (length);
- add (end);
add (_note);
};
Gtk::TreeModelColumn<uint8_t> channel;
Gtk::TreeModelColumn<std::string> note_name;
Gtk::TreeModelColumn<uint8_t> velocity;
Gtk::TreeModelColumn<std::string> start;
- Gtk::TreeModelColumn<int> length;
- Gtk::TreeModelColumn<std::string> end;
+ Gtk::TreeModelColumn<std::string> length;
Gtk::TreeModelColumn<boost::shared_ptr<NoteType> > _note;
};
- struct NoteLengthColumns : public Gtk::TreeModel::ColumnRecord {
+ struct NoteLengthColumns : public Gtk::TreeModel::ColumnRecord
+ {
NoteLengthColumns() {
add (ticks);
add (name);
Gtk::TreeModel::Path edit_path;
int edit_column;
Gtk::CellRendererText* editing_renderer;
+ Gtk::CellEditable* editing_editable;
Gtk::Table buttons;
Gtk::VBox vbox;
- Gtk::ToggleButton additional_info_button;
+ Gtk::ToggleButton sound_notes_button;
boost::shared_ptr<ARDOUR::MidiRegion> region;
boost::shared_ptr<ARDOUR::MidiTrack> track;
bool key_press (GdkEventKey* ev);
bool key_release (GdkEventKey* ev);
+ bool scroll_event (GdkEventScroll*);
void delete_selected_note ();
void selection_changed ();