scrollbar fix, updated readme

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@988 dfc29bdd-3216-0410-991c-e03cc46cb475
master
bitplane 2007-09-19 15:59:46 +00:00
parent 490609e5e9
commit 4b2edf78e3
2 changed files with 16 additions and 6 deletions

View File

@ -200,6 +200,7 @@ GUI:
Scrollbars are now only visible when the list doesn't fit in the visible area.
You can now type an item's text to select it.
- IGUIScrollBar new methods set/getLargeStep
-------------------------------------------
Changes in version 1.3.1 (20 Jun 2007)

View File

@ -151,6 +151,7 @@ bool CGUIScrollBar::OnEvent(const SEvent& event)
{
Dragging = true;
DraggedBySlider = SliderRect.isPointInside(core::position2di(event.MouseInput.X, event.MouseInput.Y));
TrayClick = !DraggedBySlider;
DesiredPos = getPosFromMousePos(event.MouseInput.X, event.MouseInput.Y);
return true;
}
@ -229,19 +230,27 @@ void CGUIScrollBar::draw()
{
LastChange = now;
s32 oldPos = Pos;
if (DesiredPos >= Pos + LargeStep)
setPos(Pos + LargeStep);
else
if (DesiredPos >= Pos + SmallStep)
setPos(Pos + SmallStep);
else
if (DesiredPos <= Pos - LargeStep)
setPos(Pos - LargeStep);
else
if (DesiredPos <= Pos - SmallStep)
setPos(Pos - SmallStep);
}
if (DesiredPos >= Pos - LargeStep && DesiredPos <= Pos + LargeStep)
setPos(DesiredPos);
if (Pos != oldPos && Parent)
{
SEvent newEvent;
newEvent.EventType = EET_GUI_EVENT;
newEvent.GUIEvent.Caller = this;
newEvent.GUIEvent.Element = 0;
newEvent.GUIEvent.EventType = EGET_SCROLL_BAR_CHANGED;
Parent->OnEvent(newEvent);
}
}
SliderRect = AbsoluteRect;