lol the scrollbar was so wrong

This commit is contained in:
Adam D. Ruppe 2018-11-28 22:27:23 -05:00
parent d7a58821f2
commit aa35f13e60
1 changed files with 11 additions and 7 deletions

View File

@ -546,7 +546,7 @@ version(win32_widgets) {}
else version(custom_widgets) { else version(custom_widgets) {
enum windowBackgroundColor = Color(212, 212, 212); // used to be 192 enum windowBackgroundColor = Color(212, 212, 212); // used to be 192
enum activeTabColor = lightAccentColor; enum activeTabColor = lightAccentColor;
enum hoveringColor = Color(215, 215, 215); enum hoveringColor = Color(228, 228, 228);
enum buttonColor = windowBackgroundColor; enum buttonColor = windowBackgroundColor;
enum depressedButtonColor = darkAccentColor; enum depressedButtonColor = darkAccentColor;
enum activeListXorColor = Color(255, 255, 127); enum activeListXorColor = Color(255, 255, 127);
@ -2304,6 +2304,9 @@ abstract class ScrollbarBase : Widget {
version(custom_widgets) { version(custom_widgets) {
abstract protected int getBarDim(); abstract protected int getBarDim();
int thumbSize() { int thumbSize() {
if(viewableArea_ >= max_)
return getBarDim();
int res; int res;
if(max_) { if(max_) {
res = getBarDim() * viewableArea_ / max_; res = getBarDim() * viewableArea_ / max_;
@ -2315,13 +2318,14 @@ abstract class ScrollbarBase : Widget {
} }
int thumbPosition() { int thumbPosition() {
/*
viewableArea_ is the viewport height/width
position_ is where we are
*/
if(max_) { if(max_) {
auto res = position_ * viewableArea_ / max_; if(position_ + viewableArea_ >= max_)
if(res + thumbSize() > getBarDim()) return getBarDim - thumbSize;
res = getBarDim() - thumbSize(); return getBarDim * position_ / max_;
if(res < 0)
res = 0;
return res;
} }
return 0; return 0;
} }