Mousewheel scrolls ScrollPanel.
This commit is contained in:
@@ -43,10 +43,12 @@ namespace OpenRA
|
||||
[Flags]
|
||||
public enum MouseButton
|
||||
{
|
||||
None = (int)MouseButtons.None,
|
||||
Left = (int)MouseButtons.Left,
|
||||
Right = (int)MouseButtons.Right,
|
||||
Middle = (int)MouseButtons.Middle,
|
||||
None,
|
||||
Left,
|
||||
Right,
|
||||
Middle,
|
||||
WheelDown,
|
||||
WheelUp
|
||||
}
|
||||
|
||||
[Flags]
|
||||
|
||||
@@ -110,12 +110,16 @@ namespace OpenRA.Widgets
|
||||
return EventBounds;
|
||||
}
|
||||
|
||||
void Scroll(int direction)
|
||||
{
|
||||
ListOffset += direction*ScrollVelocity;
|
||||
ListOffset = Math.Min(0,Math.Max(RenderBounds.Height - ContentHeight, ListOffset));
|
||||
}
|
||||
|
||||
public override void Tick ()
|
||||
{
|
||||
if (UpPressed && ListOffset <= 0) ListOffset += ScrollVelocity;
|
||||
if (DownPressed) ListOffset -= ScrollVelocity;
|
||||
|
||||
ListOffset = Math.Min(0,Math.Max(RenderBounds.Height - ContentHeight, ListOffset));
|
||||
if (UpPressed) Scroll(1);
|
||||
if (DownPressed) Scroll(-1);
|
||||
}
|
||||
|
||||
public override bool LoseFocus (MouseInput mi)
|
||||
@@ -127,6 +131,18 @@ namespace OpenRA.Widgets
|
||||
int2 lastMouseLocation;
|
||||
public override bool HandleInputInner(MouseInput mi)
|
||||
{
|
||||
if (mi.Button == MouseButton.WheelDown)
|
||||
{
|
||||
Scroll(-1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mi.Button == MouseButton.WheelUp)
|
||||
{
|
||||
Scroll(1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mi.Button != MouseButton.Left)
|
||||
return false;
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@ namespace OpenRA.Widgets
|
||||
return EventBounds.Contains(pos.ToPoint()) ? GetCursor(pos) : null;
|
||||
}
|
||||
|
||||
public virtual bool HandleInputInner(MouseInput mi) { return !ClickThrough; }
|
||||
public virtual bool HandleInputInner(MouseInput mi) { return !ClickThrough && mi.Button == MouseButton.Left; }
|
||||
|
||||
public static bool HandleInput(MouseInput mi)
|
||||
{
|
||||
|
||||
@@ -143,6 +143,8 @@ namespace OpenRA.Renderer.Cg
|
||||
return b == Sdl.SDL_BUTTON_LEFT ? MouseButton.Left
|
||||
: b == Sdl.SDL_BUTTON_RIGHT ? MouseButton.Right
|
||||
: b == Sdl.SDL_BUTTON_MIDDLE ? MouseButton.Middle
|
||||
: b == Sdl.SDL_BUTTON_WHEELDOWN ? MouseButton.WheelDown
|
||||
: b == Sdl.SDL_BUTTON_WHEELUP ? MouseButton.WheelUp
|
||||
: 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -139,6 +139,8 @@ namespace OpenRA.Renderer.Glsl
|
||||
return b == Sdl.SDL_BUTTON_LEFT ? MouseButton.Left
|
||||
: b == Sdl.SDL_BUTTON_RIGHT ? MouseButton.Right
|
||||
: b == Sdl.SDL_BUTTON_MIDDLE ? MouseButton.Middle
|
||||
: b == Sdl.SDL_BUTTON_WHEELDOWN ? MouseButton.WheelDown
|
||||
: b == Sdl.SDL_BUTTON_WHEELUP ? MouseButton.WheelUp
|
||||
: 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user