Commit graph

17547 commits

Author SHA1 Message Date
Paul Davis
f118b3ab53 Canvas: remove dangling cairo path in Arc or ConstraintPacker if fill was requested but not outline 2021-08-13 12:51:27 -06:00
Paul Davis
1d96bad59f Canvas: remove cBox (API fully merged into ConstraintPacker) 2021-08-13 12:51:27 -06:00
Paul Davis
1b66890547 Canvas: continuing move of cBox functionality into ConstraintPacker 2021-08-13 12:51:27 -06:00
Paul Davis
4e82279ce4 Canvas: next step of merging cBox and ConstraintPacker 2021-08-13 12:51:27 -06:00
Paul Davis
af60c50990 first steps in merging cBox into constraint packer 2021-08-13 12:51:27 -06:00
Paul Davis
860d43697c Canvas: propagate ::size_allocate() down the item tree
This previously wasn't done because of fear that it would affect the traditional fixed-sized canvas,
but only items that _layout_sensitive (i.e. are packed into a constraint packer directly) will
actually do anything in ::size_allocate().

Possibly might want to relax this to cover items that have a constraint packer between them
and a root group.
2021-08-13 12:51:27 -06:00
Paul Davis
28f85747ca Canvas: fix behavior of Rectangle when used in a constraint packer
::size_allocate() sets the _position *and* the "self" rect appropriately
2021-08-13 12:51:27 -06:00
Paul Davis
3c2bd05750 Canvas: remove debug output 2021-08-13 12:51:27 -06:00
Paul Davis
fa2885d2d6 Canvas: do not fill containers by default (added during constraint packing work; badly affects the regular canvas) 2021-08-13 12:51:27 -06:00
Paul Davis
9909917976 Canvas: remove unnecessary and conflicting enum 2021-08-13 12:51:27 -06:00
Paul Davis
2e4d228f54 manual fixes for constraint-packer -> newbbgui merge 2021-08-13 12:51:27 -06:00
Paul Davis
2b39c5e0f0 fix header file rename that happened since this branch was last worked on 2021-08-13 12:51:27 -06:00
Paul Davis
1dcf797311 probably fix compilation with newer Boost::Rational library 2021-08-13 12:51:27 -06:00
Paul Davis
5c886ecb6e export step sequencer pattern to SMF 2021-08-13 12:51:27 -06:00
Paul Davis
617fcd660c add operator% and operator%= to Temporal::Beats (taken from nutempo) 2021-08-13 12:51:27 -06:00
Paul Davis
93d2f6f433 remove debug output 2021-08-13 12:51:27 -06:00
Paul Davis
b18aaf0c7c Rectangle border/sizing behaves like CSS border-box 2021-08-13 12:51:27 -06:00
Paul Davis
27919fec61 items should not round their bounding box when requesting a redraw 2021-08-13 12:51:27 -06:00
Paul Davis
9c071cd6ef Canvas::queue_draw_item_area() now expands the passed-in rect appropriately
This means that a request to (re)draw the Rect (0.5,0.5,9.5,9.5)
will actually generate an expose event for (0,0,10,10)

Note: the above rects are of the form (x0,y0,x1,y1)
2021-08-13 12:51:27 -06:00
Paul Davis
35a9bcc409 add Rectangle::size_request() which returns actual rectangle size, not bounding box 2021-08-13 12:51:26 -06:00
Paul Davis
a9c2e2f7e5 expose step sequencer's step's index 2021-08-13 12:51:26 -06:00
Paul Davis
60f3985957 replace push2 call to Canvas::Box::pack_start() with Canvas::Box::add() which is equivalent
::pack_start() was removed
2021-08-13 12:51:26 -06:00
Paul Davis
210702481b add required virtual method to Push2Canvas 2021-08-13 12:51:26 -06:00
Paul Davis
12b4807bc9 add a very (very) basic resize/layout design to the canvas
Items call ::queue_resize(), which sets a flag in the canvas; at next idle, we call
Canvas::layout() which walks the item tree and recursively calls layout (depth first)
on all items needing a resize.

Only Container types implement layout, and so far only Box
2021-08-13 12:51:26 -06:00
Paul Davis
03e32a22d0 make Item::add() virtual 2021-08-13 12:51:26 -06:00
Paul Davis
2ae616bf44 fix incorrect location of step sequencer request object "deletion" (really: pool return) 2021-08-13 12:51:26 -06:00
Paul Davis
1edcc3d279 remove debug output 2021-08-13 12:51:26 -06:00
Paul Davis
c9e4d3f045 alter note off handling in step sequencer to be global to the whole sequencer 2021-08-13 12:51:26 -06:00
Paul Davis
eb139acab6 change API to adjust note timing 2021-08-13 12:51:26 -06:00
Paul Davis
aceec18510 adjust StepSequence API(s) to meet needs 2021-08-13 12:51:26 -06:00
Paul Davis
9869b0266b add support for rounded corners to Canvas::Rectangle 2021-08-13 12:51:26 -06:00
Paul Davis
4f671a0950 make ArdourCanvas::Rectangle render its children
it is common to want to pack things inside a rectangle, so make it work
2021-08-13 12:51:26 -06:00
Paul Davis
c0edd61d75 more redesign of beatbox fundamentals, adding back RT-safe modifications to sequencer 2021-08-13 12:51:26 -06:00
Paul Davis
8fb67e15ea steps in the evolution of beatbox 2021-08-13 12:51:26 -06:00
Paul Davis
ba84a1ccc7 API to set step velocity to absolute value 2021-08-13 12:51:26 -06:00
Paul Davis
62eb966dae comment updates 2021-08-13 12:51:26 -06:00
Paul Davis
25f67e3f16 use rational number for step durations 2021-08-13 12:51:26 -06:00
Paul Davis
870b142f9b API for adjusting step duration (gate length) 2021-08-13 12:51:26 -06:00
Paul Davis
b9c26ee4c4 add octave shifting and other API changes to better support beatbox GUI 2021-08-13 12:51:26 -06:00
Paul Davis
07a60ecb8b some API changes to help support developing GUI 2021-08-13 12:51:26 -06:00
Paul Davis
d37a61707b extend parts of StepSequencer API for better coding 2021-08-13 12:51:26 -06:00
Paul Davis
a5fd4c0c8a velocity editing games 2021-08-13 12:51:26 -06:00
Paul Davis
b2e111f491 extend step sequencer API to start data mods 2021-08-13 12:51:26 -06:00
Paul Davis
07640ff488 add missing file 2021-08-13 12:51:26 -06:00
Paul Davis
c41c622b37 another BBT comparator fix 2021-08-13 12:51:26 -06:00
Paul Davis
d682e61b99 step sequencer now follows tempo map precisely; beatbox loses some functionality (for now) 2021-08-13 12:51:26 -06:00
Paul Davis
be831c6870 fix logic error in BBT_Time::operator>= 2021-08-13 12:51:26 -06:00
Paul Davis
2d6eaad775 missing header file, added 2021-08-13 12:51:26 -06:00
Paul Davis
a38677cfd4 compiling and running, but not working step sequencer 2021-08-13 12:51:26 -06:00
Paul Davis
6905a705a9 initial landing of new internal StepSequencer object 2021-08-13 12:51:26 -06:00