Commit graph

8 commits

Author SHA1 Message Date
Paul Davis
6836c93f21 only switch pianroll to UserRange after a drag actually changed things 2025-10-09 16:25:01 -06:00
Paul Davis
ffa0e3547b pianoroll header: parametize kbd width and use when rendering 2025-08-06 11:11:39 -06:00
Paul Davis
01c57acfac remove now unused PianoRollHeaderBase::event_transform() method 2025-07-09 10:54:41 -06:00
Paul Davis
d847266cd5 more work on scroomer behavior, close to as intended but still a little bit meh 2025-07-07 16:21:52 -06:00
Paul Davis
73f4378a51 more adjustments to scroomer drag logic
1. use an idle callback
2. MidiViewBackground::apply_note_range() now returns true/false
depending on whether or not it was able to make the requested change.
It might fail due to out of bounds note line size, for example.
2025-06-16 23:01:10 -06:00
Paul Davis
06593d1a79 pianoroll note labelling: pixel pushing, crash prevent, theme utilization for fonts 2025-06-03 23:17:53 -06:00
Paul Davis
024dedc446 pianoroll: clarify and resolve some issues caused by confusion over what type the _view member has 2025-06-03 12:14:21 -06:00
Paul Davis
48dde40b4f share piano roll header across both GTK widget and Canvas item implementations
This also uses the new API exposed by MidiViewBackground so that the header simply re-uses
the same exact position & height values computed by the background for its note lines.

PianoRollHeaderBase is the base class with the shared implementation.

PianoRollHeader is the GTK widget derived class.

ArdourCanvas::PianoRollHeader is the canvas item derived class.

Both PianoRollHeader implementations have to implement various methods that gloss
over the differences between drawing and event handling in a GTK widget context
or in a canvas item context
2025-06-02 19:53:34 -06:00