inline ScrollGroup::canvas_position() for no particular reason
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 21 May 2014 23:13:26 +0000 (19:13 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 3 Jun 2014 20:10:27 +0000 (16:10 -0400)
libs/canvas/canvas/scroll_group.h
libs/canvas/scroll_group.cc

index c2b26bf9d99192bcf3d9e4d4740298e0c300511f..36d98538a16ae736d520eaa3051fc12357f12ca0 100644 (file)
@@ -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;
index bda6911ca71cf52e0b650a77f27d7f3966968ffc..94ea869971d18b321da474a03140a81a82324cdc 100644 (file)
@@ -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);
-}