Paul Davis
0a6ac2678a
canvas: if LineSet does the 0.5 pixel shift, make it the right direction
2023-09-25 20:01:21 -06:00
Paul Davis
5fa5c5d202
canvas: NOOP fix comment about docs on single pixel lines
2023-09-25 19:52:10 -06:00
Paul Davis
bc78694a1a
canvas: fix bounding box of a LineSet (lower edge was not lower enough)
2023-09-25 19:51:33 -06:00
Paul Davis
4c5c7769bb
canvas: skip intermediate Canvas::Rect object (trivial optimization)
2023-09-15 17:34:30 -06:00
Paul Davis
4c845eb2a0
cairo single pixel line offset fix, part 1
2023-07-17 20:54:33 -06:00
Robin Gareus
3ab3ef3b55
Fix lineset drawing (again), apply cairo 0.5px offset
...
see also f08299ea1e
2023-07-17 23:28:36 +02:00
Robin Gareus
f08299ea1e
Fix lineset drawing for lines > 1px width
...
This is a follow up to 248e37ac0c .
A line at 0 with 1px width should draw from 0.5 to 1.5
(cairo pixel offset). The same line with a width of 3px
is -0.5 to 2.5.
The self.intersection code calculates this correctly, subtracting
shift, the drawing code however incorrectly added it.
This fixes MIDI track grid/note offset as well as a bleed
below the track.
2023-07-17 05:05:20 +02:00
Paul Davis
7dc9bf157b
fix measure line drawing (convert to window coords for intersection check)
2023-06-16 09:16:53 -06:00
Paul Davis
248e37ac0c
canvas LineSet: fix rendering to get coordinates precisely correct
2023-06-15 20:10:32 -06:00
Paul Davis
a1e9dfb672
canvas lineset: C++11-ification
2023-04-10 09:18:44 -06:00
Paul Davis
4f87506e5c
do not sort lineset every time a coord is added; use RAII to create scope and sort at end
2023-04-09 14:36:03 -06:00
Robin Gareus
d12dd4015d
Revert canvas debugging
...
This reverts commit 8359311849 .
This reverts commit f377822891 .
This reverts commit 859d6ebe4a .
This reverts commit 4cd7de7a6f .
2023-02-04 18:23:18 +01:00
Paul Davis
4cd7de7a6f
debugging: allow selection no-draw for canvas fill, outline, text, lineset and waveview
2023-01-20 18:13:12 -07:00
Paul Davis
f913373351
canvas: change Item::bb_clean() to better named Item::set_bbox_clean()
2022-04-26 22:04:08 -06:00
Paul Davis
c75ceb31ab
canvas: when an item has its bbox marked dirty, this should propagate to all parents
2022-04-26 22:04:08 -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
82bad0725a
libcanvas: reapply LineSet::add_line -> add_coord change after rebase conflicts with master
2021-08-13 12:51:27 -06:00
Paul Davis
b90332b439
Canvas: change LineSet::add() to ::add_line()
...
Preparation for virtualization of Item::add()
2021-08-13 12:51:25 -06:00
Robin Gareus
cec5ce8f45
Update canvas/UI lib GPL boilerplate and (C) from git log
2019-08-03 15:53:17 +02: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
Robin Gareus
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +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
7a3a66db72
fix Canvas::LineSet implementation to support horizontal and vertical linesets
2014-06-09 15:39:19 -04:00
Paul Davis
6473cc7cb4
drop use of bounding box to determine whether an item covers a point; add Item::covers(Duple const&)
...
Default implementation for Item still uses bounding box, but specializations for Arc (Circle), Polygon, Line and PolyLine have been added
2013-11-04 11:56:10 -05:00
Paul Davis
c21ed2b877
fix drawing of a canvas LineSet object
2013-10-24 17:13:22 -04:00
Paul Davis
192f22d89e
fix confusion in Canvas::LineSet over window vs. item coordinates that affected redraw (or not) of MIDI track note lines when the canvas origin != 0
2013-10-22 21:12:47 -04:00
Paul Davis
77f5f4c4bf
basically operational switch to canvas drawing coordinates, although text and waves don't work, and redraw areas are too small
2013-06-18 08:23:06 -04:00
Paul Davis
37dd7e952b
add headers to all canvas .cc and .h files
2013-04-15 22:10:18 -04:00
Paul Davis
64d3763652
remove all xml++.h inclusion by canvas implementations
2013-04-15 22:00:13 -04:00
Paul Davis
84fb0a8dce
remove all XML related API from canvas. it may have been useful during development, but it is just a distraction - we will NEVER be saving or restoring canvas state via XML or any kind of serialized state
2013-04-15 21:57:08 -04:00
Paul Davis
aaea166135
initial commit of hand merging, plus getting "ancient" waf script to work correctly
2013-04-04 00:32:52 -04:00