|
|
@ -196,8 +196,11 @@ protected: |
|
|
|
SetScrollAmount({GetScrollAmount().x,(-newScrollbarTop+1)/scrollBarScale}); |
|
|
|
SetScrollAmount({GetScrollAmount().x,(-newScrollbarTop+1)/scrollBarScale}); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool mouseOverScrollbar=geom2d::overlaps(geom2d::rect<float>(windowAbsPos+vf2d{rect.size.x-12,scrollBarTop+12},{12,scrollBarHeight}),game->GetMousePos()); |
|
|
|
|
|
|
|
if(mouseOverScrollbar||scrollBarSelected)scrollBarHoverTime=std::min(scrollBarHoverTime+game->GetElapsedTime(),"ThemeGlobal.HighlightTime"_F); |
|
|
|
|
|
|
|
else scrollBarHoverTime=std::max(scrollBarHoverTime-game->GetElapsedTime(),0.f); |
|
|
|
|
|
|
|
|
|
|
|
if(scrollBarSelected){ |
|
|
|
if(scrollBarSelected){ |
|
|
|
scrollBarHoverTime=std::min(scrollBarHoverTime+game->GetElapsedTime(),"ThemeGlobal.HighlightTime"_F); |
|
|
|
|
|
|
|
if(game->GetMouse(0).bPressed&&!geom2d::contains(rect,bounds)){ |
|
|
|
if(game->GetMouse(0).bPressed&&!geom2d::contains(rect,bounds)){ |
|
|
|
scrollBarSelected=true; |
|
|
|
scrollBarSelected=true; |
|
|
|
Menu::menus[parentMenu]->alreadyClicked=true; |
|
|
|
Menu::menus[parentMenu]->alreadyClicked=true; |
|
|
@ -211,7 +214,6 @@ protected: |
|
|
|
ScrollToClickedPosition(); |
|
|
|
ScrollToClickedPosition(); |
|
|
|
} |
|
|
|
} |
|
|
|
}else{ |
|
|
|
}else{ |
|
|
|
scrollBarHoverTime=std::max(scrollBarHoverTime-game->GetElapsedTime(),0.f); |
|
|
|
|
|
|
|
//It's possible to still scroll by clicking outside the scrollbar but in the scroll region.
|
|
|
|
//It's possible to still scroll by clicking outside the scrollbar but in the scroll region.
|
|
|
|
if(game->GetMouse(0).bHeld&&!geom2d::contains(rect,bounds)&& |
|
|
|
if(game->GetMouse(0).bHeld&&!geom2d::contains(rect,bounds)&& |
|
|
|
geom2d::overlaps(geom2d::rect<float>(windowAbsPos+vf2d{rect.size.x-12.f,12.f},{12.f,rect.size.y-24.f}),game->GetMousePos())){ |
|
|
|
geom2d::overlaps(geom2d::rect<float>(windowAbsPos+vf2d{rect.size.x-12.f,12.f},{12.f,rect.size.y-24.f}),game->GetMousePos())){ |
|
|
|