inline ScrollGroup::canvas_position() for no particular reason
This commit is contained in:
parent
5696199daf
commit
22e7252729
@ -35,8 +35,16 @@ class LIBCANVAS_API ScrollGroup : public Group
|
||||
explicit ScrollGroup (Group *, Duple, ScrollSensitivity);
|
||||
|
||||
void scroll_to (Duple const& d);
|
||||
Duple canvas_position() const;
|
||||
|
||||
/** return the normal "base" position of this item
|
||||
rather its position as affected by any scroll
|
||||
offset.
|
||||
*/
|
||||
Duple canvas_position() const {
|
||||
return _position.translate (_scroll_offset);
|
||||
}
|
||||
|
||||
Duple scroll_offset() const { return _scroll_offset; }
|
||||
private:
|
||||
ScrollSensitivity _scroll_sensitivity;
|
||||
Duple _scroll_offset;
|
||||
|
@ -37,27 +37,26 @@ ScrollGroup::ScrollGroup (Group* parent, Duple position, ScrollSensitivity s)
|
||||
void
|
||||
ScrollGroup::scroll_to (Duple const& d)
|
||||
{
|
||||
Duple base_pos (position().translate (_scroll_offset));
|
||||
/* get the nominal position of the group without scroll being in effect
|
||||
*/
|
||||
|
||||
Duple base_pos (_position.translate (_scroll_offset));
|
||||
|
||||
/* compute a new position given our sensitivity to h- and v-scrolling
|
||||
*/
|
||||
|
||||
if (_scroll_sensitivity & ScrollsHorizontally) {
|
||||
base_pos.x -= d.x;
|
||||
_scroll_offset.x = d.x;
|
||||
}
|
||||
}
|
||||
|
||||
if (_scroll_sensitivity & ScrollsVertically) {
|
||||
base_pos.y -= d.y;
|
||||
_scroll_offset.y = d.y;
|
||||
}
|
||||
|
||||
/* move there */
|
||||
|
||||
set_position (base_pos);
|
||||
}
|
||||
|
||||
Duple
|
||||
ScrollGroup::canvas_position() const
|
||||
{
|
||||
/* return the normal "base" position of this item
|
||||
rather its position as affected by any scroll
|
||||
offset.
|
||||
*/
|
||||
return _position.translate (_scroll_offset);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user