gui: proportional scrollbars
- Attribute "recth" in the <fastscroll> element is now the
*minimum* height for the scrollbar.
- Dragging the scrollbar moves the list.
- Touching outside the scrollbar jumps to the relative position.
Change-Id: Ic1f20b5ec68cf49e5be56be34f0c58c0f474618b
diff --git a/gui/objects.hpp b/gui/objects.hpp
index ceb2c6c..00770b3 100644
--- a/gui/objects.hpp
+++ b/gui/objects.hpp
@@ -589,13 +589,18 @@
int mSeparatorH; // Height of the separator between items
COLOR mSeparatorColor; // color of the separator that is between items
- // Scrolling and dynamic state
+ // Scrollbar
int mFastScrollW; // width of the fastscroll area
int mFastScrollLineW; // width of the line for fastscroll rendering
int mFastScrollRectW; // width of the rectangle for fastscroll
- int mFastScrollRectH; // height of the rectangle for fastscroll
+ int mFastScrollRectH; // minimum height of the rectangle for fastscroll
COLOR mFastScrollLineColor;
COLOR mFastScrollRectColor;
+
+ // Scrolling and dynamic state
+ int mFastScrollRectCurrentY; // current top of fastscroll rect relative to list top
+ int mFastScrollRectCurrentH; // current height of fastscroll rect
+ int mFastScrollRectTouchY; // offset from top of fastscroll rect where the user initially touched
bool hasScroll; // indicates that we have enough items in the list to scroll
int firstDisplayedItem; // this item goes at the top of the display list - may only be partially visible
int scrollingSpeed; // on a touch release, this is set based on the difference in the y-axis between the last 2 touches and indicates how fast the kinetic scrolling will go