13
0
Commit Graph

802 Commits

Author SHA1 Message Date
1a70cf5b8e canvasL Item gets packing options similar to GTK 2021-08-13 12:51:37 -06:00
5e3460aaae canvas: start to extend size allocation process for box packing 2021-08-13 12:51:37 -06:00
4a700f270d canvas: remove debug output 2021-08-13 12:51:37 -06:00
dc6a162ca1 canvas: remove Box::render() (it should just use Rectangle::render()) 2021-08-13 12:51:37 -06:00
85edd83338 canvas: correctly set Box _rect after repositioning children 2021-08-13 12:51:37 -06:00
da3ea7e236 canvas: rename variable for clarity 2021-08-13 12:51:37 -06:00
6f883650d8 canvas: use combined outline enum value for clarity 2021-08-13 12:51:37 -06:00
71fe17a241 canvas: impl of Rectangle::dump() 2021-08-13 12:51:37 -06:00
b2aa14a90b canvas; remove already-commented debug output 2021-08-13 12:51:37 -06:00
341a355de4 canvas: remove debug output 2021-08-13 12:51:37 -06:00
a55a004142 canvas: another fix to bounding box computation, this time for Item itself 2021-08-13 12:51:37 -06:00
b8b392f729 canvas: use whoami() instead of whatami() in some debugging output 2021-08-13 12:51:37 -06:00
a36d43c845 canvas: NOOP whitespace/indent a line 2021-08-13 12:51:37 -06:00
16bbf79cae canvas: decl for Rectangle::dump() 2021-08-13 12:51:37 -06:00
dc48f55285 canvas: bounding box changes for Container 2021-08-13 12:51:37 -06:00
9095057675 canvas: call Item::bounding_box() to recompute bounding box when needed
Since 74fe396cc5 compute_bounding_box() by itself does not do the entire computation, so we
must call into Item::bounding_box() to get the result with children added also
2021-08-13 12:51:37 -06:00
c0425ba70f canvas: items should not add child bboxes in their ::compute_bounding_box() method, Item::bounding_box() does that 2021-08-13 12:51:37 -06:00
ad6afbe68a canvas: use Item::bb_clean() to mark _bounding_box_dirty false 2021-08-13 12:51:36 -06:00
5b123441f4 canvas; change operator<<() for Rect to show BIG instead of gigantic 64 bit numbers 2021-08-13 12:51:36 -06:00
ddcd004350 canvas: only reset _bounding_box_dirty in the parent if the child's bbox did change 2021-08-13 12:51:36 -06:00
c1fa1e1a29 canvas: when an item's position is set, its bounding box has changed 2021-08-13 12:51:36 -06:00
f5753dcd07 missing member initialization 2021-08-13 12:51:36 -06:00
7066db16bd remove dangling method from rebase issues 2021-08-13 12:51:36 -06:00
14621f3634 add missing Box::set_homogenous() method 2021-08-13 12:51:36 -06:00
5153124664 change (GUI) Marker objects to accept any Canvas::Item as parent, and use this to draw BBT position markers in the BBT ruler 2021-08-13 12:51:34 -06:00
749a49c278 incorporating new tempo map API 2021-08-13 12:51:29 -06:00
82bad0725a libcanvas: reapply LineSet::add_line -> add_coord change after rebase conflicts with master 2021-08-13 12:51:27 -06:00
54de7c70ee Canvas: print item colors in hex when debugging 2021-08-13 12:51:27 -06:00
86a31e34ba Canvas: fix recursive calling of Item::size_allocate()
ConstraintPacker is the one Item-derivative that should NOT call Item::size_allocate_children()
because it just did the size computation for its children and called their
::constrained() method, which in turns calls size_allocate() with the correct size
2021-08-13 12:51:27 -06:00
dbe37d2752 Canvas: make possible even more debugging of constraint packing 2021-08-13 12:51:27 -06:00
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
1d96bad59f Canvas: remove cBox (API fully merged into ConstraintPacker) 2021-08-13 12:51:27 -06:00
1b66890547 Canvas: continuing move of cBox functionality into ConstraintPacker 2021-08-13 12:51:27 -06:00
4e82279ce4 Canvas: next step of merging cBox and ConstraintPacker 2021-08-13 12:51:27 -06:00
af60c50990 first steps in merging cBox into constraint packer 2021-08-13 12:51:27 -06:00
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
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
3c2bd05750 Canvas: remove debug output 2021-08-13 12:51:27 -06:00
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
9909917976 Canvas: remove unnecessary and conflicting enum 2021-08-13 12:51:27 -06:00
2e4d228f54 manual fixes for constraint-packer -> newbbgui merge 2021-08-13 12:51:27 -06:00
93d2f6f433 remove debug output 2021-08-13 12:51:27 -06:00
b18aaf0c7c Rectangle border/sizing behaves like CSS border-box 2021-08-13 12:51:27 -06:00
27919fec61 items should not round their bounding box when requesting a redraw 2021-08-13 12:51:27 -06:00
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
35a9bcc409 add Rectangle::size_request() which returns actual rectangle size, not bounding box 2021-08-13 12:51:26 -06:00
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
03e32a22d0 make Item::add() virtual 2021-08-13 12:51:26 -06:00
9869b0266b add support for rounded corners to Canvas::Rectangle 2021-08-13 12:51:26 -06:00
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
8fb67e15ea steps in the evolution of beatbox 2021-08-13 12:51:26 -06:00
91de7ba60b do not double-translate Canvas::Rectangle by _position; item_to_window() already includes it by calling item_to_canvas() 2021-08-13 12:51:26 -06:00
aca1db2d06 add step_button to wscript 2021-08-13 12:51:26 -06:00
e35e5ff3e5 step button for Canvas (used by BeatBox GUI) 2021-08-13 12:51:26 -06:00
ff6fe51d76 Canvas: improve implementation/design of ConstraintPacker::preferred_size() 2021-08-13 12:51:26 -06:00
502a9e80dc Canvas: add a nice new syntax for constraint packing 2021-08-13 12:51:26 -06:00
d6745f043c Canvas: clean up Constraint expressions to avoid compiler warnings 2021-08-13 12:51:26 -06:00
aa62460081 Canvas: re-use Solver as much as possible, with possible (but not substantive) speedup; remove debug output 2021-08-13 12:51:26 -06:00
815eb82882 Canvas: partially improve/fix cBox rendering 2021-08-13 12:51:26 -06:00
2598bdef2c Canvas: mark constraint-layout containers as layout-sensitive (like their children) 2021-08-13 12:51:26 -06:00
f5d67e6520 Canvas: temporary easy way to get debug output from Canvas::render() in a test program 2021-08-13 12:51:26 -06:00
427998e2d2 Canvas: cleanup first constraint test 2021-08-13 12:51:26 -06:00
be481ec266 Canvas: fix fill/outline area for a cBox 2021-08-13 12:51:26 -06:00
0823a6328b Canvas: third constraint test 2021-08-13 12:51:26 -06:00
a349d7e49b remove debug output 2021-08-13 12:51:26 -06:00
94b44ceb52 Canvas: add second constraint tester 2021-08-13 12:51:26 -06:00
0d5725a63b Canvas; fix rectangle rendering geometry 2021-08-13 12:51:26 -06:00
04d00da461 Canvas: fix text rendering geometry 2021-08-13 12:51:26 -06:00
7153544b52 Canvas: many changes to cBox implementation 2021-08-13 12:51:26 -06:00
d37202585f Canvas: root group should not fill or outline itself 2021-08-13 12:51:26 -06:00
2e993c6f86 Canvas: tweak test script runner 2021-08-13 12:51:26 -06:00
61742ededf Canvas: change behavior of Item::preferred_size() for items without an intrinsic size 2021-08-13 12:51:26 -06:00
ea96798ee9 Canvas: tweak debug output for canvas rendering 2021-08-13 12:51:26 -06:00
0434f00a47 remove debug output 2021-08-13 12:51:26 -06:00
711c1520b5 Revert "towards a very different constraint layout tester"
This reverts commit 7f65ffe57685304f59bb336c9701c3a9d5cdc1a7.
2021-08-13 12:51:26 -06:00
11931f5ffb towards a very different constraint layout tester 2021-08-13 12:51:26 -06:00
f0a0104087 Canvas: add shell scrip to run cnnstraint_test 2021-08-13 12:51:26 -06:00
504d8fdab3 Canvas: size request using preferred_size() callstack 2021-08-13 12:51:26 -06:00
5650d4f5bb Canvas: container supports option to do fill & outline 2021-08-13 12:51:26 -06:00
55deb1261a Canvas: use whomami() not earlier debug_name() API 2021-08-13 12:51:26 -06:00
811a893583 Canvas: some tidying in layout test app 2021-08-13 12:51:26 -06:00
240cb7b98f Canvas: make Rectangle work with layouts 2021-08-13 12:51:26 -06:00
e0c58a2736 Canvas: add aliases to Canvas::Rect for comprehension 2021-08-13 12:51:26 -06:00
2423994029 Canvas: add aliases to Canvas::Rect for comprehension 2021-08-13 12:51:26 -06:00
f47deb717c Canvas: add layout-related methods and members to Item 2021-08-13 12:51:25 -06:00
6d89d3afef Canvas: add Item::whoami() for debugging output 2021-08-13 12:51:25 -06:00
f17160ee0e Canvas: modify Arc to work with layout 2021-08-13 12:51:25 -06:00
ad39faeb3e Canvas: alter RootGroup to work with layout 2021-08-13 12:51:25 -06:00
baea368223 Canvas: initiate size allocation process from GTK-level size allocate event 2021-08-13 12:51:25 -06:00
84afcb62c4 Canvas: child_changed() API fix for Box 2021-08-13 12:51:25 -06:00
fc9840f2a9 Canvas: change API of Item::child_changed() to include bool indicate bounding_box change 2021-08-13 12:51:25 -06:00
d6fa458f3b Canvas: Text item should take position into account when rendering 2021-08-13 12:51:25 -06:00
1baa8d68c7 Canvas: reindent Kiwi code, and provide operator<<(ostream&) for several objects 2021-08-13 12:51:25 -06:00
ba3515e619 NOOP: remove whitespace 2021-08-13 12:51:25 -06:00
b1a6982064 Canvas::Arc obey fill/outline conditionals 2021-08-13 12:51:25 -06:00
a3039d3895 add/update constraint packing containers, test code 2021-08-13 12:51:25 -06:00
606866ea00 add small dev/test utility for working on constraint packer 2021-08-13 12:51:25 -06:00
1c3e743d2a Canvas: continued work on constraint packer 2021-08-13 12:51:25 -06:00
01137cbbf3 Canvas: change container-related methods in Item to be virtual 2021-08-13 12:51:25 -06:00
b90332b439 Canvas: change LineSet::add() to ::add_line()
Preparation for virtualization of Item::add()
2021-08-13 12:51:25 -06:00