/*
- Copyright (C) 2007 Paul Davis
- Author: Dave Robillard
+ Copyright (C) 2007 Paul Davis
+ Author: David Robillard
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
class CanvasHit : public Diamond, public CanvasNoteEvent {
public:
+ typedef Evoral::Note<double> NoteType;
+
CanvasHit(
- MidiRegionView& region,
- Group& group,
- double size,
- const boost::shared_ptr<ARDOUR::Note> note = boost::shared_ptr<ARDOUR::Note>())
-
- : Diamond(group, size), CanvasMidiEvent(region, this, note)
- {
- }
-
- double x1() { double x1, y1, x2, y2; get_bounds(x1,y1,x2,y2); return x1; }
- double y1() { double x1, y1, x2, y2; get_bounds(x1,y1,x2,y2); return y1; }
- double x2() { double x1, y1, x2, y2; get_bounds(x1,y1,x2,y2); return x2; }
- double y2() { double x1, y1, x2, y2; get_bounds(x1,y1,x2,y2); return y2; }
-
+ MidiRegionView& region,
+ Group& group,
+ double size,
+ const boost::shared_ptr<NoteType> note = boost::shared_ptr<NoteType>(),
+ bool with_events = true);
+
+ void show() { Diamond::show(); }
+ void hide() { Diamond::hide(); }
+
+ double x1() const { double x1, y1, x2, y2; get_bounds(x1,y1,x2,y2); return x1; }
+ double y1() const { double x1, y1, x2, y2; get_bounds(x1,y1,x2,y2); return y1; }
+ double x2() const { double x1, y1, x2, y2; get_bounds(x1,y1,x2,y2); return x2; }
+ double y2() const { double x1, y1, x2, y2; get_bounds(x1,y1,x2,y2); return y2; }
+
void set_outline_color(uint32_t c) { property_outline_color_rgba() = c; }
void set_fill_color(uint32_t c) { property_fill_color_rgba() = c; }
- bool on_event(GdkEvent* ev) { return CanvasNoteEvent::on_event(ev); }
+ bool on_event(GdkEvent* ev);
+ void move_event(double dx, double dy);
};
} // namespace Gnome