/*
Copyright (C) 2007 Paul Davis
- Author: Dave Robillard
+ Author: David Robillard
Author: Hans Baier
This program is free software; you can redistribute it and/or modify
namespace Gnome {
namespace Canvas {
-class CanvasNote : public SimpleRect, public CanvasNoteEvent {
-public:
- typedef Evoral::Note<double> NoteType;
+class CanvasNote : public SimpleRect, public CanvasNoteEvent
+{
+ public:
+ typedef Evoral::Note<Evoral::MusicalTime> NoteType;
- double x1() { return property_x1(); }
- double y1() { return property_y1(); }
- double x2() { return property_x2(); }
- double y2() { return property_y2(); }
+ CanvasNote (MidiRegionView& region,
+ Group& group,
+ const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>(),
+ bool with_events = true);
+
+ double x1() const { return property_x1(); }
+ double y1() const { return property_y1(); }
+ double x2() const { return property_x2(); }
+ double y2() const { return property_y2(); }
void set_outline_color(uint32_t c) { property_outline_color_rgba() = c; hide(); show(); }
void set_fill_color(uint32_t c) { property_fill_color_rgba() = c; hide(); show(); }
void hide() { SimpleRect::hide(); }
bool on_event(GdkEvent* ev);
+ void move_event(double dx, double dy);
+};
- enum NoteEnd {
- NOTE_ON,
- NOTE_OFF
- };
-
- enum NoteState {
- None,
- RelativeResize,
- AbsoluteResize
- };
-
- CanvasNote(
- MidiRegionView& region,
- Group& group,
- const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>())
- : SimpleRect(group), CanvasNoteEvent(region, this, note), _note_state(None)
- {
+class NoEventCanvasNote : public CanvasNote
+{
+ public:
+ NoEventCanvasNote (MidiRegionView& region,
+ Group& group,
+ const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>())
+ : CanvasNote (region, group, note, false) {}
+
+ double point_vfunc(double, double, int, int, GnomeCanvasItem**) {
+ /* return a huge value to tell the canvas that we're never the item for an event */
+ return 9999999999999.0;
}
-
-protected:
- NoteState _note_state;
};
} // namespace Gnome