summaryrefslogtreecommitdiff
path: root/libs/canvas/scroll_group.cc
AgeCommit message (Collapse)Author
2017-01-19remove use of boost::optional to define "undefined" Canvas::Rect, and use ↵Paul Davis
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
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-01-24ScrollGroup::covers_{window,canvas}() need to account for possible non-zero ↵Paul Davis
position of the group. They also do NOT need to consider scroll offset
2015-01-16Revert "Kludgey fix for invisible playhead when scrolled."David Robillard
This reverts commit 8f823388d9bd5aa8e297ab05be8c9fb323518945.
2015-01-16Kludgey fix for invisible playhead when scrolled.David Robillard
The problem this is avoiding makes absolutely no sense. Either I'm dumb, or something is more deeply wrong with scroll group bounding boxes, or both, but I don't care anymore. This works. Viva release mode.
2015-01-16Fix clipping for scroll groups an offset bbox.David Robillard
2014-06-22more canvas refactoring.Paul Davis
Remove Canvas::Layout, use Canvas::Container for the same purpose, move child-rendering into Item::render_children() so that it could theoretically be used by any derived type.
2014-06-21refactor Canvas so that all Items have children; add Container abstract base ↵Paul Davis
class; rename Group as "Layout" and retain only drawing semantics
2014-06-12change Canvas heirarchy and constructorsPaul Davis
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-05clip rendering of ScrollGroup to just the part of the canvas covered by the ↵Paul Davis
scroll group. This stops tracks from appearing to scroll up under the rulers, among other things.
2014-06-03more profound changes to canvas scrolling, in particular find appropriate ↵Paul Davis
ScrollGroup for Canvas::{window,canvas}_to_{canvas,window}()
2014-06-03various changes to get independent scrolling to work better in canvas. ↵Paul Davis
mostly tweaks relating to how scroll offsets are used during rendering. Event handling offsets still require work.
2014-06-03inline ScrollGroup::canvas_position() for no particular reasonPaul Davis
2014-06-03different approach to independent scrolling, involving ArdourCanvas::ScrollGroupPaul Davis
The idea now is that a scroll group item can be added to the canvas which will causes its children to scroll in either or both directions (horizontal or vertical). There are few complications: the position() of the ScrollGroup is ambiguous depending on whether you want it with scroll taken into account or not, so Item::canvas_position() was added, which defaults to the same value as Item::position() but is overridden by ScrollGroup to return the position independent of scrolling. This method is used when translating between item/canvas/window coordinate systems. Note that the basic idea is that we MOVE the scroll group when a scroll happens. This mirrors what happens in the GnomeCanvas, where Nick Mainsbridge came up with a great idea that allowed unification of the time bar and track canvases.