Paul Davis
b416caf1bb
canvas: several steps further with box packing and size allocation
2021-08-13 12:51:37 -06:00
Paul Davis
a1c67b4ad7
canvas: remove intrinsic size concept, fall back to requested size; converge on gtk style size_request
2021-08-13 12:51:37 -06:00
Paul Davis
6f883650d8
canvas: use combined outline enum value for clarity
2021-08-13 12:51:37 -06:00
Paul Davis
71fe17a241
canvas: impl of Rectangle::dump()
2021-08-13 12:51:37 -06:00
Paul Davis
ad6afbe68a
canvas: use Item::bb_clean() to mark _bounding_box_dirty false
2021-08-13 12:51:36 -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
b18aaf0c7c
Rectangle border/sizing behaves like CSS border-box
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
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
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
Paul Davis
0d5725a63b
Canvas; fix rectangle rendering geometry
2021-08-13 12:51:26 -06:00
Paul Davis
711c1520b5
Revert "towards a very different constraint layout tester"
...
This reverts commit 7f65ffe576 .
2021-08-13 12:51:26 -06:00
Paul Davis
11931f5ffb
towards a very different constraint layout tester
2021-08-13 12:51:26 -06:00
Paul Davis
240cb7b98f
Canvas: make Rectangle work with layouts
2021-08-13 12:51:26 -06:00
Robin Gareus
5957e14259
Remove unused #include<> (2/2)
...
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:57:16 +02:00
Robin Gareus
cec5ce8f45
Update canvas/UI lib GPL boilerplate and (C) from git log
2019-08-03 15:53:17 +02:00
Paul Davis
5102d8fae1
minor code optimization for Rectangle::render()
2018-07-03 09:22:32 -04:00
Robin Gareus
601c317d70
Clean up library inheritance (colors.h, utils.h)
...
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
Paul Davis
4fa4b9a135
remove use of boost::optional to define "undefined" Canvas::Rect, and use Rect::empty instead.
...
This commit includes Rect::operator bool() which might be a candidate for removal in a future commit, in an attempt
to make the meaning clearer
2017-01-19 20:54:54 +01:00
Paul Davis
5d43d2e43f
don't do as much work if a Rectangle has no outline width or outline what values
2016-09-27 14:59:32 -05:00
Robin Gareus
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0
globally remove all trailing whitespace from ardour code base.
...
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Paul Davis
38728f0835
correct implementation for Rectangle::vertical_fraction()
2015-04-29 07:22:21 -04:00
Paul Davis
59ce8663f9
add Rectangle::vertical_fraction() as a convenience method
...
Conflicts:
libs/canvas/rectangle.cc
2015-04-29 07:22:05 -04:00
Robin Gareus
0f2ead3d6b
fix redraw of automation ControlPoints
2015-03-20 23:31:21 +01:00
Paul Davis
a992a2e6e0
simplify Canvas::Rectangle rendering to avoid unnecessary nonsense, and remove TimeRectangle
2015-02-11 21:59:38 -05:00
Paul Davis
c679d616f6
correct drawing of rectangle borders.
...
They need to use fractional coordinates, and the border position needed
generalizing for other border widths. See verbose comment for details
2015-02-09 16:41:28 -05:00
David Robillard
ec17b5388f
Fix bounding box of rectangles with wide outlines.
2015-01-08 18:36:10 -05:00
Paul Davis
a441de1a18
when drawing only part of a Canvas::Rectangle outline, we only need to do the cairo-pixel alignment math for the axis perpendicular to the edge
2014-11-07 12:58:56 -05:00
Paul Davis
ecd618c343
correct the rendering of Rectangle outlines, and the computation of their bounding box
2014-11-05 19:45:23 -05:00
Paul Davis
f1e6b28ab7
use ArdourCanvas::TimeRectangle for regions, notes, markers
2014-11-03 21:48:08 -05:00
Paul Davis
56994e785e
add new TimeRectangle to ArdourCanvas
2014-11-03 21:48:08 -05:00
Paul Davis
90872c2b31
more changes for rectangle outlining
2014-10-31 10:56:08 -04:00
Paul Davis
a942493565
comment fix and expansion re: Canvas::Rectangle outline
2014-10-31 10:56:08 -04:00
Paul Davis
2e2390d053
alter the way the border of Canvas::Rectangle is drawn to meet the intent that a single pixel border passes through the corner coordinates
2014-09-22 11:36:04 -04:00
Robin Gareus
158037bba2
Match canvas outline to rectangle
...
It looks like we're currently [consistently] off by 1px
everywhere. The width-1 is compensated by
TimeAxisViewItem::RIGHT_EDGE_SHIFT = 1
2014-09-01 18:05:09 +02:00
Paul Davis
a8bd6ecc4f
refactor Canvas so that all Items have children; add Container abstract base class; rename Group as "Layout" and retain only drawing semantics
2014-06-21 11:43:42 -04:00
Paul Davis
590882f3c8
change Canvas heirarchy and constructors
...
Items no longer need a parent group (they require a Canvas pointer instead), so all constructors have been rationalized
and have two variants, one with a parent and one with a canvas.
All Items now inherit from Fill and Outline, to banish diagonal inheritance and virtual base classes and all that.
There were zero changes to the Ardour GUI arising from these changes.
2014-06-12 14:53:44 -04:00
Paul Davis
b54a2713a1
When rendering a Canvas::Rectangle take its _position into account, even though in general this is always (0,0) within its parent
2014-06-06 08:33:13 -04:00
Paul Davis
c2946ee00f
don't queue redraws when various canvas item properties are "reset" to the same value, plus supporting functions
2014-03-11 07:36:09 -04:00
Paul Davis
52c8b6d66a
stupid hack to fix rectangle damage noise
2014-03-09 11:39:57 -04:00
Paul Davis
6d3bd4e53c
use fill transparency detection to avoid rendering transparent (invisible) rectangle fill area
2014-03-07 12:29:26 -05:00
Paul Davis
737aae908a
tweak canvas rect drawing to correctly place bottom edge of rectangle inside the bounds (cairo works in mysterious ways)
2014-02-25 12:02:50 -05:00
Paul Davis
1df483d3db
since we now expand rectangles to the right always, adjust the bounding box computation
2014-02-14 09:49:16 -05:00
Paul Davis
1a9076c0ba
remove debug message
2014-02-13 18:18:53 -05:00
Paul Davis
08b86fda5c
fix up some issues with precise placement of ArdourCanvas::Rectangle frame/outline
2014-02-13 18:18:19 -05:00
John Emmas
f889f391a1
Guard some Debug output so that it only appears when applicable ('Item::name' is only available when CANVAS_DEBUG is defined)
2014-02-13 14:12:36 +00:00
Paul Davis
22c303d8f6
final (?) tweaks to rectangle rendering
2014-01-10 14:36:05 -05:00